jef*_*091 3 iphone macos objective-c plist
我喜欢小型对象集合的plist序列化功能:它很简单,存储是XML等.但我发现字典中的设置值很麻烦:
[myDict setObject:keepThis forKey:@"ivar"];
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用派生类的对象(甚至只是结构):
myObj.ivar = keepThis
Run Code Online (Sandbox Code Playgroud)
...然后向集合发送消息以获取plist.可以限制用于此目的的类/结构,以便它们可以直接轻松地映射到plist原语; 例如,myObj可以映射到NSDictionary,并且可以将要求放在ivars上,使得它们是plist原语之一.
有人已经为此建立了一个设施,还是我应该自己动手?
我不确定这是你所说的,但是Key Value Coding会让你从实例的数据中获取一个包含实例数据值的字典,并从字典中设置实例数据.
还有一种方法可以向实例询问其属性列表,但事实证明您必须自己编写一些代码才能使其工作.(但是,您可以使用运行时内省来实现,如果您愿意的话.)编辑2011年1月2日: -[NSObject attributeKeys] iOS文档中不再出现.我已经编辑了链接以指向Mac文档,但请注意,这可能只是该平台上的一个选项.
(该NSCoding协议是让您的对象自行存储/恢复的另一种方式,但存储是二进制的,而不是XML,并且当系统要求您执行此操作时,您仍然负责获取/放置您关心的每个值.)
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |