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)

你可能感兴趣的:(swift3升级到swift4 填坑)