#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 пожалуйста, объясните мне, как мы можем это сделать