【swift 实践】使用Property Wrappers 简化 UserDefaults

作者 : 开心源码 本文共603个字,预计阅读时间需要2分钟 发布时间: 2022-05-13 共226人阅读

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


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

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 【swift 实践】使用Property Wrappers 简化 UserDefaults

发表回复