创建NSDictionary支持的对象



我想创建一个基于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];

您应该向您的类KVC投诉。KVC有魔力。看这里。Ex,

   // assume inputValues contains values we want to
// set on the person
NSDictionary * inputValues;
YOURCLASS    * person = [[YOURCLASS alloc] init];
[person setValuesForKeysWithDictionary: inputValues];

"最小阻力路径"原来是使用NSCoding

最新更新