gpt4 book ai didi

ios - 在 iOS 中存储自定义对象(未实现 NSCoding)的方法

转载 作者:行者123 更新时间:2023-11-30 12:27:07 26 4
gpt4 key购买 nike

我想在 NSUserDefaults 中存储一些自定义对象。我知道,它应该实现 NSCoding 协议(protocol)。但问题是,我无法更改该类,因为它是由某些 SDK 提供的。

那么有什么方法可以存储这些自定义对象吗?

最佳答案

您可以创建自己的自定义类,其中包含原始类的所有字段。然后您就可以免费获得大部分(如果不是全部)编码。最终结果与对原始对象实现 NSCoding 非常相似,因为所有更改都仅限于“编码”和“解码”(保存/恢复)功能。您的项目中没有其他内容需要更改。

编辑:

您可以创建两个特殊的存档函数

func saveToArchive(customObject: CustomObject) -> Bool {  
<your code; return true if succeeded>
}

func loadFromArchive(identifier: Int) -> CustomObject? {
let newObject = CustomObject
< again your code to retrieve the correct object (your version);
assign each field to newObject and return it, return nil you have an issue>
}

通过遵循这种方法,您基本上永远不会使用您的对象版本,除非在持久存储(数据库、存档等)之间进行转换,类似于“适配器”软件设计模式(或包装器)。

关于ios - 在 iOS 中存储自定义对象(未实现 NSCoding)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048206/

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