博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS swift2.3 迁移到3.0 遇到的一些问题
阅读量:6529 次
发布时间:2019-06-24

本文共 1905 字,大约阅读时间需要 6 分钟。

       在swift2.3的时候,因为项目需求,需要做一个能够根据加速度来得到你行走的计步器,然后做完计步器,每走一步路后,通过跳转,跳到主线程进行画图画点。

       然而最近一段时间,电脑更新到了Xcode8.0 ,一下子就能用swift3.0了,想到swift3.0官方说明是可以进行版本继承的,所以就将计步器改成3.0版本,但是遇到了以下的一些问题:

以下由这个几个错误组成:

错误一: (data[0] as AnyObject) .doubleValue

错误原因: '(AnyObject)' is not a subtype of 'NSNumber'

错误二:userInfo: nil

错误原因: Extra argument 'userInfo' in call

错误三: for  i = 4 ; i < len-1 ; i += 1

错误原因:C-style for statement has been removed in Swift 3

错误四: aez = (Double)((userAccelerationx*orientationycos*orientationzsin)-(userAccelerationy*orientationysin)+(userAccelerationz*orientationycos*orientationzcos))

错误原因:: Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

第一个错误是在类型转换时遇到的错误,原来现在的版本数据类型可以直接将double放在最前面,然后要加上数据类型,应该改成以下几个版本:

(data[0]as!NSNumber) .doubleValue

Double(self.acclerometerdata[0]as!NSNumber)

Double((self.acclerometerdata[0]asAnyObject)as!NSNumber)

以上的三种写法都是正确的。

第二个错误是在写通知时遇到的错误:

原先的通知写法是:

NotificationCenter.defaultCenter.postNotificationName("Notificationaddstteps",object: self, userInfo: ["value3":5])

以上写法是swift2.3版本写法,swift3.0不支持,需要改成下面版本写法:

NotificationCenter.default.post(name: NSNotification.Name(rawValue:"Notificationaddstteps"), object:self, userInfo:["value3":5])

第三个错误是,因为版本改变出现了一些变化:

Swift 3.0更加规范化,当项目从Swift 2.0升级至Swift 3.0时,需要注意以下几点:

1、方法的参数标签不可省略,从第一个参数就必须指定参数名,除非使用"_"明确指出省略参数;

2、枚举值的首字母统一为小写;

3、Swift 3.0取消了C风格的for循环,for var i = 0 ;i < 10 ; i += 1语句变更为:for i in 0 ..< 10

4、枚举成员首字母变成小写;

5、按钮的Normal状态去掉,按钮状态UIControlState()相当于原来的.Normal;

6、取消++、--操作符;

7、方法名使用动词,其他名词、介词等作为参数或移除

所以需要使用for i in 0 ..< 10 这种方法了。

第四个错误是因为它现在似乎不支持超长数据的转换,我将它进行一个一个数据转换久可以成功运行了,及改成如下版本:

aez = (Double)(userAccelerationx*orientationycos*orientationzsin)-Double(userAccelerationy*orientationysin)+Double(userAccelerationz*orientationycos*orientationzcos)

就不会报错。

更加具体的swift3.0 可以看官方文档:

现在版本Xcode8.0和 iOS10可以看看下面大家整理的资料:

cc网总结帖:

iOS10整理资料:

转载地址:http://dkxbo.baihongyu.com/

你可能感兴趣的文章
Windows2008 R2 GAC权限问题
查看>>
洛谷——P1469 找筷子
查看>>
几句话就能让你明白:网络地址转换(NAT)
查看>>
springboot项目自定义注解实现的多数据源切换
查看>>
如何用javascript正则表达式验证身份证号码是否合法
查看>>
ccf 201803-1 跳一跳(Python实现)
查看>>
特此说明
查看>>
使用flume替代原有的scribe服务
查看>>
用脚本来定制ESXI安装镜像
查看>>
微软企业级加解密解决方案MBAM架构
查看>>
没有苦劳,只有功劳!
查看>>
基于ThinkPHP写的一个简单的CMS系统
查看>>
笔记——搭建简易NFS服务
查看>>
Exchange 2010 DAG local and Site DR/Failover and Fail back
查看>>
LigerUI - 树表格的数据来自Server
查看>>
认证技术概述
查看>>
制作Windows Server 2003/08 image详细步骤与OpenStack介绍
查看>>
2016国赛小结
查看>>
Android Studio 第六十四期 - Android业务组件化之URL Scheme使用
查看>>
Hyper-V 2016 系列教程41 Windows 10 Hyper-V 系统要求
查看>>