美文网首页程序员Swift编程
【swift 实践】使用Property Wrappers 简化

【swift 实践】使用Property Wrappers 简化

作者: SmartisanBool | 来源:发表于2020-03-23 22:43 被阅读0次

    Property Wrappers是Swift 5引入的新特性,并且在SwiftUI中有比较广泛的应用,比如@State、@Binding、@ObservedObject、 @Environment,该特性可以将声明的属性及对应的逻辑提取到一个单独的结构体中,从而可以大大的复用和简化我们的代码及逻辑。在日常开发中,我们也可以使用该特性来重构我们的代码。

    扩展UserDefaults并结合枚举实现初版封装

    如下代码所示,我们可以直接扩展UserDefaults来实现对内容的存取,这样我们在使用的时候就可以避免重复代码的粘贴复制,而且规避了直接使用字符串。

    image

    虽然通过这种封装,我们在调用的时候非常的方便,但是随着需要存储的字段越来越多时,UserDefaults的这个扩展类就会变得越来越臃肿,因为每增加一个字段,都要编写对应的setter/getter。当出现这种重复的属性处理代码块的时候,我们就可以考虑使用PropertyWrappers来提取一下了。

    使用Property Wrappers 提取属性逻辑代码

    参照官方示例,我们创建一个UserDefault结构体,并使用关键字@propertyWrapper标注。

    image

    因为在类扩展中无法声明存储属性,因此需要创建一个UserDefaultsConfig来使用刚创建的property wrapper。代码如下:

    image
    【关注微信公众号 发现更多精彩】

    相关文章

      网友评论

        本文标题:【swift 实践】使用Property Wrappers 简化

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