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

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

我更喜欢使用类的派生对象(甚至只是结构):

myObj.ivar = keepThis

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

是否有人已经为此建立了设施,或者我应该自己建立设施?

有帮助吗?

解决方案 5

我看到这张贴在其他地方,但它正是我一直在寻找。上述观点的答案,原材料,但在这里,所有包裹式:的http:// retaincount.com/blog/?p=7

其他提示

我不确定这就是你所说的,但是 键值编码 除其他事项外,将让您 获取包含实例数据值的字典, ,并且 从字典中设置实例数据.

还有一种方法可以 向实例询问其属性列表, ,尽管事实证明您必须自己编写一些代码才能使其工作。(不过,您可以使用 运行时自省 如果您愿意的话,可以实现这一点。) 2011 年 1 月 2 日编辑: -[NSObject attributeKeys] 不再出现在 iOS 文档中。我已编辑了指向 Mac 文档的链接,但请注意,这可能只是该平台上的一个选项。

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

您可能要检查出的该SO质疑其论述了在运行时把一个实例的实例变量在字典中。

为了用于该属性时,将需要具有预定的一组可能的密钥。您不能使用与点语法的任意名称 - 它必须是一个已知的属性或访问的第一个操作数。所以不可能有这种情况的一般形式。但是,如果你做你自己的,变成一本字典是因为这样做[self dictionaryWithValuesForKeys:listOfProperties]一样简单。

scroll top