2014-02-07 7 views
1

Я хочу сделать приложение iOS, где пользователи могут хранить списки основных объектов. Эти объекты будут иметь только 3-4 свойства.Сохранение неизвестного количества NSArrays

Пользователь может создать как можно больше из этих списков (NSArray).

У меня есть два вопроса:

  1. Как бы идти о сохранении этих NSArrays на диск? Некоторые люди говорят, что используют NSUserDefaults, а другие говорят, что используют NSKeyedArchiver.

  2. Каков наилучший способ отслеживания этих массивов? Было бы разумно использовать массив для хранения этих массивов?

Заранее благодарен!

ответ

0

вы можете использовать массивы для хранения ваших массивов.
и используйте plist для сохранения их в массив, чтобы вы могли иметь преимущество сохранения в том же формате, который вы хотите в памяти для отображения результата.
вы можете прочитать следующий учебник для PLIST enter link description here

1

Если массивы содержат все объекты списка свойств (NSString, NSData, NSDate, NSNumber, NSArray или NSDictionary объектов), то вы можете сохранить массив (или массив массивов) напрямую на plist или на пользовательские значения по умолчанию.

Если у вас есть объекты без объектов свойств в вашем массиве, вам необходимо будет соответствовать протоколу NSCoding и использовать NSKeyedArchiver.

Списки свойств проще.

0
 //Initialize an array with 3 objects and store to NSUserDefaults 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSArray *arrayOfUserA = [[NSArray alloc] initWithObjects:@"Obj1", @"Obj2", @"Obj3", nil]; 
[defaults setValue:arrayOfUserA forKey:@"arrayOfUserA"]; 
[defaults synchronize]; 

//Get the array back, modify and save again 
arrayOfUserA = [defaults valueForKey:@"arrayOfUserA"]; 
NSMutableArray *modifiedArray = [[NSMutableArray alloc] initWithArray:arrayOfUserA copyItems:YES]; 
[modifiedArray addObject:@"Obj4"]; 
arrayOfUserA = [modifiedArray copy]; 
[defaults setValue:arrayOfUserA forKey:@"arrayOfUserA"]; 
[defaults synchronize]; 
Смежные вопросы