Извлечение NSUserDefaults .
Для архивации вашего массива вы можете использовать следующий код:
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:myArray] forKey:@"mySavedArray"];
А затем для загрузкипользовательские объекты в массиве вы можете использовать этот код:
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *savedArray = [currentDefaults objectForKey:@"mySavedArray"];
if (savedArray != nil)
{
NSArray *oldArray = [NSKeyedUnarchiver unarchiveObjectWithData:savedArray];
if (oldArray != nil) {
customObjectArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
} else {
customObjectArray = [[NSMutableArray alloc] init];
}
}
Убедитесь, что вы убедитесь, что данные, возвращаемые по умолчанию пользователя не является nil
, потому что это может привести к сбою вашего приложения.
Еще одна вещь, которую вам нужно будет сделать, - это сделать ваш пользовательский объект соответствующим протоколу NSCoder
.Вы можете сделать это, используя методы -(void)encodeWithCoder:(NSCoder *)coder
и -(id)initWithCoder:(NSCoder *)coder
.