我想基于NSDictionary
创建“业务对象”。这样做的原因是我希望实现能够使用任意键扩展此对象,另一个原因是我使用方便的plist格式持久化它(存储的对象是整数,浮点数或字符串)。
业务对象包含许多预定义属性,例如
@property NSString* customerName;
@property NSString* productCode;
@property int count;
@property double unitPrice;
我想序列化这个,例如到属性列表(这不是一个严格的要求,它可能是一些其他易于使用的格式)。优选地,该类的实现应该只是
@synthesize customerName, productCode, count, unitPrice:
以上例子。要使用这个类,我想做类似的事情:
MyBusinessObject* obj = [MyBusinessObject businessObjectWithContentsOfFile:fileName];
obj.productCode = @"Example";
[obj setObject:@"Some data" forKey:@"AnExtendedProperty"];
[obj writeToFile:fileName atomically:YES];
答案 0 :(得分:2)
你应该让你的班级KVC投诉。 KVC做了神奇的事。 Look here.Ex,
// assume inputValues contains values we want to
// set on the person
NSDictionary * inputValues;
YOURCLASS * person = [[YOURCLASS alloc] init];
[person setValuesForKeysWithDictionary: inputValues];
答案 1 :(得分:0)
“阻力最小的路径”原来是使用NSCoding
。