创建NSDictionary支持的对象

时间:2012-03-26 06:55:30

标签: iphone objective-c dictionary 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];

2 个答案:

答案 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