美文网首页
Swift4.0的小改动

Swift4.0的小改动

作者: ibiaoma | 来源:发表于2017-11-28 11:13 被阅读87次

    1、字体方面的一些重命名

        NSFontAttributeName --- .font 
        //或者NSAttributedStringKey.font
    
        NSForegroundColorAttributeName --- .foregroundColor
        //NSAttributedStringKey.foregroundColor
    
        NSStrikethroughStyleAttributeName --- .strikethroughStyle
        //NSAttributedStringKey.strikethroughStyle
    
        //字符串类型的,添加rawValue
        NSAttributedStringKey.font.rawValue
    
        //大部分类似以下,涉及富文本的方法均已改为了NSAttributedStringKey类型
        addAttributes(_ attrs: [NSAttributedStringKey : Any] = [:], range: NSRange)
    

    2、Swift4.0中不再允许复写扩展中的方法

        父类
        extension BaseViewController{
            @objc func setupUI()  {
                view.backgroundColor = UIColor.orange
            }    
        }
    
        子类
        extension HomeViewController{
            override func setupUI()  {
                super.setupUI()
            }
        }
    

    在父类的方法名前加@objc,否则报错 Declarations in extensions cannot override yet

    3、 @objcMembers

         在Swift 4中继承 NSObject 的 swift class 不再默认全部 bridge 到 OC,
    
        如果我们想要使用的话我们就需要在    class前面加上@objcMembers 这么一个关键字
    
        引用: 在 swift 3 中除了手动添加 @objc 声明函数支持 OC 调用还有另外一种方式:继承 NSObject。
    
        class 继承了 NSObject 后,编译器就会默认给这个类中的所有函数都标记为 @objc ,支持 OC 调用。
    
        苹果在Swift 4 中苹果修改了自动添加 @objc 的逻辑:一个继承 NSObject 的 swift 类不再默认给所有函数添加 @objc。
    
        只在实现 OC 接口和重写 OC 方法时才自动给函数添加 @objc 标识。

    相关文章

      网友评论

          本文标题:Swift4.0的小改动

          本文链接:https://www.haomeiwen.com/subject/esysbxtx.html