swift3升级到swift4 填坑

  1. @objc
    swift3使用#selector指定的方法,只有当方法权限为private时需要加@objc修饰符,现在Swift4.0全都要加@objc修饰符
    自定义的protocol协议中,有optional修饰的非必须实现的方法,需要用@objc修饰
    oc调用swift类中方法 和属性时, swift类中的属性和方法 也要加上@objc修饰
  2. NSAttributedString 相关的全局变量无法再swift4继续使用
    苹果爸爸声明了一个NSAttributedStringKey类型的结构体. 并在此结构体扩展内声明若干此类型的常量 用以代替之前oc中的全局常量. 嗯, 这很swift! 新的写法如下:
    NSAttributedStringKey.font
    当然还有其他类似常量的改变 类推即可
  3. 还有就是尽量尽量不要用不再维护的swift第三方库 因为一般情况下我不会改 😂
  4. 常量参数 变量参数
    目前swift中的函数参数都是常量, 也就是说函数内部只能读取值, 而不能修改值, swift3中可以用var关键字来修饰参数 , 不过swift4中废弃了. 如果有需要的话, 可以在函数内部定义一个同名变量.
    func test( param:Int){
    var param = param //定义一个同名的变量
    param = param * 2
    print(param)
    }

test(param: 10)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考资源《swifter》https://github.com/iOS-Swift-Developers/Swif...
    柯浩然阅读 5,296评论 0 6
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32
  • 也许是潜在的缘 注定在特珠的时间呈现 也许是今世的分 注定在收获的季节相见 眼里含着的犹疑与惶恐 在山道的逶迤中消...
    一门桐梓阅读 1,878评论 0 1
  • 最近爱上画画,然而没有任何基础,无从下笔,以下都是临摹简书里小伙伴的作品,自娱自乐挺好的。 好喜欢这个裙子的,可惜...
    南有西风阅读 2,962评论 5 5
  • 昨晚喝了点酒,半夜起来喝了点水就睡不着了。好久没有这样了,这次有一种深深的无力感,原来我还是那个脆弱的人...
    甚嚣尘世我自悠然阅读 1,287评论 0 0