Простой способ сделать класс с поддержкой NSCoder

У меня есть тонны объектов, которые я хочу сохранить для автономного использования. В настоящее время я использую создание классов, совместимых с NSCoder, для объектов и кодированных данных в файл, чтобы они были доступны в автономном режиме.

Поэтому в .h я ввожу объекты:

@interface MyClass : NSObject<NSCoding>{
NSNumber* myObject;}
@property(nonatomic,retain) NSNumber* myObject;

А в .m я делаю иниты:

- (id) initWithCoder: (NSCoder *)coder {
   if (self = [super init]) {
        [self setMyObject: [coder decodeObjectForKey:@"myObject"]];
   }
}

- (void) encodeWithCoder: (NSCoder *)coder { 
    [coder encodeObject: myObject forKey:@"myObject"];
}

Таким образом, класс - это просто фиктивное хранилище с getter и setter. Есть ли какой-нибудь лучший способ сделать декодирование / кодирование. Могу ли я как-то использовать @dynamic или кодирование по ключу-значению для кодирования и декодирования? В основном я хочу, чтобы все переменные класса сохранялись в файл и возвращались в объект при запуске программы. Этот подход работает, но создание всех классов требует времени и усилий.

6
задан MapaX 20 January 2012 в 07:21
поделиться