gpt4 book ai didi

swift - 在 Swift 中保存结构

转载 作者:搜寻专家 更新时间:2023-10-31 19:39:00 24 4
gpt4 key购买 nike

刚刚看了今年 WWDC 的几个关于 Swift 值类型的视频,

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

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

以下是我看到的选项:

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

我该怎么办?

最佳答案

据我了解,整个 NSCoding 业务旨在并设计用于存储/检索对象树。因此需要将 NSObject 作为基类(我想也许在未来的某个时候它可能会被移动到 AnyObject)。

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

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

关于swift - 在 Swift 中保存结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31003501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com