加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Swift中保存结构

发布时间:2020-12-14 04:26:53 所属栏目:百科 来源:网络整理
导读:刚刚从WWDC观看了一些关于 Swift价值类型的视频, Building Better Apps With Value Types in Swift Protocol-Oriented Programming in Swift 我发现自己完全准备好在我的应用程序中使用值类型.这意味着更少的类类型和更多的结构.但是如何保存这些数据呢?以
刚刚从WWDC观看了一些关于 Swift价值类型的视频,

Building Better Apps With Value Types in Swift
Protocol-Oriented Programming in Swift

我发现自己完全准备好在我的应用程序中使用值类型.这意味着更少的类类型和更多的结构.但是如何保存这些数据呢?以前,使用Classes,我会采用NSCoding,但这要求我采用NSObject,这将要求我使用Class而不是Struct.

以下是我看到的选项:

>如果需要保存,则模型对于Struct来说太复杂,应该重新设计为类
> Design my own serialization
>使用中介类

我该怎么办呢?

解决方法

据我所知,整个NSCoding业务旨在用于存储/检索对象树.因此需要将NSObject作为基类(可能在将来的某个时候,它可能会被移动到AnyObject,我猜).

因此,来自这种树的每个类的责任是编码/解码(某些)其属性的值,包括结构.所有这些结构都将不可避免地保留在某个层面上作为对象的属性,对吧?

鉴于上述情况,我认为探索的方向是使用encodeFoo(foo:Foo,forKey key:String)和decodeFooForKey(key:String) – >等函数扩展NSCoder协议. Foo,其中Foo将是您的自定义结构之一,然后在实现NSCoding协议的类中使用这些函数,就像使用类似函数的基本Obj-C类型一样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读