gpt4 book ai didi

iphone - 有没有更好的方法在 Objective-C 中序列化 plist-y 对象?

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

我喜欢用于小型对象集合的 plist 序列化功能:它很简单,存储是 XML 等。但我发现在字典中设置值很麻烦:

[myDict setObject:keepThis forKey:@"ivar"];

我更愿意使用从类(甚至只是结构)派生的对象:

myObj.ivar = keepThis

...然后向集合发送消息以获取plist。可以限制用于此目的的类/结构,以便它们直接且轻松地映射到 plist 原语;例如,myObj 可以映射到 NSDictionary,并且可以对 ivar 提出要求,使它们成为 plist 原语之一。

有人已经为此建立了设施,还是我应该自己动手?

最佳答案

我不确定这是否正是您所说的,但是 Key Value Coding将,除其他外,让你get a dictionary with values from an instance's data , 还有 set instance data from a dictionary .

还有一种方法可以ask an instance for a list of its attributes ,尽管事实证明您必须自己编写一些代码才能使其工作。 (不过,如果你愿意,你可以使用 runtime introspection 来实现它。)2011 年 1 月 2 日编辑: -[NSObject attributeKeys] 不再出现在iOS 文档。我已经编辑了指向 Mac 文档的链接,但请注意,这可能只是该平台上的一个选项。

(NSCoding 协议(protocol)是让您的对象存储/恢复自身的另一种方式,但存储是二进制的,而不是 XML,并且您仍然负责在系统要求时获取/放置您关心的每个值这样做。)

关于iphone - 有没有更好的方法在 Objective-C 中序列化 plist-y 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1652479/

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