Как сохранить массив с пользовательскими объектами в файле plist и снова загрузить его при запуске приложения

#ios #ios-4.2 #ios4

#iOS #ios-4.2 #ios4

Вопрос:

У меня есть массив с пользовательскими объектами, который я хочу сохранить в файле plist, поэтому я уже пробовал этот код для сохранения массива

 NSMutableData *data = [[NSMutableData alloc] init];
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];

    [archiver encodeObject: myArray  forKey:@"ArrayKey"];

    [archiver finishEncoding];

    NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];    

    // get the path to our Data/plist file
    NSString *plistPath = [docsDir stringByAppendingPathComponent:@"Data.plist"];



    [data writeToFile:plistPath atomically:YES];

    [data release];
    [archiver release];
  

Здесь «myarray» — это мой пользовательский массив, теперь я могу сохранить массив, но я хочу знать, как я могу загрузить массив из файла plist

Спасибо и с уважением, Ранджит

Комментарии:

1. Этот код неверен. Вам нужно зайти в свои пользовательские объекты и настроить NSCoder для каждого отдельного свойства в этом объекте. Посмотрите документы Apple по использованию NSCoder. developer.apple.com/library/mac/#documentation/Cocoa/Conceptual /…

2. привет, данкрик, я могу сохранить данные …. Я перешел по вашей ссылке и выполнил NSCoding так, как вы сказали, теперь, как я могу показать таблицу, заполненную сохраненным массивом при запуске приложения..

3. Эта ссылка объясняет, как кодировать и декодировать. Что касается получения декодированных данных в таблицу, существуют всевозможные руководства по настройке таблиц.

4. привет, dancreek, я смог сохранить пользовательский массив в plist, а также отобразить массив в таблице, но теперь, когда я нажимаю на ячейку таблицы, он переходит в другой tableview, заполненный другим пользовательским array..so как мне теперь поступить

5. Привет, dancreek, я использовал вышеуказанный метод для переноса данных в plist, но происходит то, что он перезаписывает данные каждый раз, когда я сохраняю, но я не хочу перезаписывать data..so пожалуйста, объясните мне, как мы можем это сделать