在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 可以看官方文档:swift.org/blog/swift-…

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

cc网总结帖:[总结帖]关于升级xcode8

iOS10整理资料:ios.jobbole.com/89028/

iOS swift2.3 迁移到3.0 遇到的一些问题相关推荐

  1. Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)

    Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...

  2. mysql为什么直接8.0_为什么要迁移到MySQL8.0?

    原标题:为什么要迁移到MySQL8.0? 来自公众号:老叶茶馆,作者:lefred,翻译:徐晨亮 原文链接:https://lefred.be/content/replace-mariadb-10-3 ...

  3. tensorflow1.0代码迁移到2.0官方指导

    https://www.tensorflow.org/guide/migrate 解决源代码中tensorflow版本过低问题(tensorflow1.x代码迁移到2.0) 原创风一样的rain 最后 ...

  4. 从 Vuex 0.6.x 迁移到 1.0

    从 Vuex 0.6.x 迁移到 1.0 Vuex 2.0 已经发布了,但是这份指南只涵盖迁移到 1.0?这是打错了吗?此外,似乎 Vuex 1.0 和 2.0 也同时发布.这是怎么回事?我该用哪一个 ...

  5. 迁移至Android3.0遇到一些问题

    一.AS3.0新增功能 此处略(自行Google ) 官方文档 二.迁移后速度对比 gradle2.2 gradle3.0 首次 770s 260s 修改代码(一行) 291s 123s 修改代码(一 ...

  6. mongodb从2.6迁移到3.0过程

    首发于 搞起博客 总共有这么几个问题需要解决: 1. mongodb3.0版本的二进制包 1. wiredTiger引擎的配置 1. 数据的迁移 1. 权限 mongodb3.0的二进制包 这个就不用 ...

  7. 【MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记】

    MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录-1 - likingzi - 博客园 MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录-2 - likingzi ...

  8. 体验VMware Converter Client 6.2与Veeam BR 10迁移ESXi 6.0 vm到vCenter 6.7 u3

    体验VMware Converter Client 6.2与Veeam BR 10迁移ESXi 6.0 vm到vCenter 6.7 u3 https://www.charflower.com/?p= ...

  9. 关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流

    原文地址:http://www.hankcs.com/program/cpp/cin-tie-with-sync_with_stdio-acceleration-input-and-output.ht ...

最新文章

  1. mysql 去重求总数_Mysql获取去重后的总数
  2. matlab 自动控制仿真,Matlab在自动控制系统建模与仿真中的应用
  3. Android 屏幕适配
  4. Python 循环列表删除元素的注意事项
  5. Java Web——ResponseBean类DEMO
  6. 使用ArrayList时设置初始容量的重要性
  7. 阿里P8架构师谈:Zookeeper的原理和架构设计,以及应用场景
  8. mysql长连接_mysql.connector 数据库长连接
  9. 缓存穿透,缓存击穿,缓存雪崩以及解决方案
  10. android+表情雨,微信8.0.1掉落表情雨2021下载
  11. 爱奇艺视频怎么下载,如何将qsv格式转为mp4格式
  12. 移动终端3D地图应用普及或带来app产业心蓝海
  13. 新晋云计算工程师就业的感受和经验分享
  14. 设置python程序开机自启动
  15. ABAQUS运行问题总结
  16. 微信点餐系统html,微信点餐系统,一种新型的点餐方式
  17. [vue] transition animate.js
  18. 【小程序】小程序起步、WXML模板语法和WXSS模板样式
  19. ASEMI整流桥KBJ610,KBJ610浪涌电流,KBJ610反向电流
  20. MLdonkey与sancho安装使用及设置详解

热门文章

  1. 所谓的创业分享,都是一堆骗人骗己的谎言?
  2. Rainmeter 一部分 语法 中文教程
  3. SQL注入漏洞的检测与防范技术
  4. 到隔壁便利商店买东西,不要开车!
  5. 莫比乌斯反演专题学习笔记
  6. 【QwQ】乱七八糟的置顶
  7. 政务数据放开在即 政策红利下大数据投资亮点凸显
  8. C# 写入和读出文本文件
  9. spark-机器学习实践-K近邻应用实践一
  10. [转]linux文件同步工具Unison的使用