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

本文共 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://suogx.baihongyu.com/

你可能感兴趣的文章
I/O流的文件输入输出四部曲
查看>>
SMR磁盘学习6---SMR之Shingled magnetic recording Area Density Increase Requires New Data Management...
查看>>
HDU ACM 1496 Equations
查看>>
一个基于Asp.net MVC的博客类网站开源了!
查看>>
bootstrap(图标,导航)
查看>>
MySQL基础之 AUTO_INCREMENT
查看>>
keepalived高可用系列~通用基础
查看>>
Junit 并行执行测试
查看>>
课后作业和动手动脑(字符串)
查看>>
Robot Framework常用库简介
查看>>
软件开发工程师技术能力层次模型
查看>>
iOS端弱网测试
查看>>
网页瀑布流布局jQuery实现代码
查看>>
陶哲轩实分析 习题 12.5.8 :度量空间中有界闭集不一定是紧集
查看>>
[转]Debian 7 安装 Java JDK
查看>>
ASP.NET MVC 4 让数据库自动迁移
查看>>
GC算法 垃圾收集器
查看>>
jquery Tabs选项卡切换
查看>>
战略游戏题解
查看>>
Hibernate全套增删改查+分页
查看>>