Я хочу создать «бизнес-объект» на основе NSDictionary
. Причина этого заключается в том, что я хочу, чтобы реализации могли расширять этот объект с помощью произвольных ключей, и другая причина заключается в том, что я сохраняю его с использованием удобного формата plist (хранящиеся объекты - целые числа, поплавки или строки).Создание объектов с NSDictionary-backed
Бизнес-объект содержит ряд предопределенных свойств, например.
@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 (без проверки и т. Д.). Но как мне перейти оттуда к планете? Наверное, это ядро моего вопроса. EDIT: Я думаю, что переход от * plist сложнее, но мне это не нужно для этого случая. – Krumelur
@ Krumelur. Ред. – Vignesh
Спасибо. Я также обновил свой вопрос :) – Krumelur