NSUserDefaults против SQLite3. NSUSerDefaults неизменный? - PullRequest
0 голосов
/ 08 сентября 2011

Прошу прощения, я знаю, что на этот вопрос уже есть ответы.Но я хотел бы знать, правильный ли мой подход выбора NSUserDefaults для моей реализации.

Я пытаюсь создать «список избранного», который будет отображаться в UITableView, где мне нужно будет сохранить около 5 объектов.для каждого списка.Поэтому я решил, что у меня будет NSDictionary в пределах NSArray для моего источника данных tableView.

Я опешил от использования NSUserDefaults, когда прочитал «Значения, возвращаемые из NSUserDefaults, являются неизменяемыми».Есть ли способ, которым я могу манипулировать сохраненными объектами?Например, прочитайте массив из NSUSerDefaults, затем добавьте в него новые объекты и сохраните его.

NSUserDefaults выглядит очень простым в использовании.

EDIT Можем ли мы вставить изменяемые объекты в?

Ответы [ 2 ]

0 голосов
/ 08 сентября 2011

Вы можете прочитать объект из NSUserDefaults так:

//Read from NSUSerDefaults
NSMutableArray* favListArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"listArray"]];

//Add objects to array
[favListArray addObject:@"NewObject1"];
[favListArray addObject:@"NewObject2"];

//Overwrite the NSUSerDefaults valueForKey:@"listArray"
[[NSUserDefaults standardUserDefaults] setObject:favListArray forKey:@"listArray"];
[[NSUserDefaults standardUserDefaults] synchronize];
0 голосов
/ 08 сентября 2011

Вы можете вызвать mutableCopy для получения копии объекта, если он является частью изменяемого / неизменяемого кластера, такого как NSArray / NSMutableArray NSDictionary / NSImmutableDictionary и т. Д.

Итак, достаньте объект из словаря - вызовите mutableCopy, и вы сможете изменить его и сохранить обратно.

Помните, что у этого метода есть копия в названии, поэтому вам нужно выпустить копию, когда вы закончите с ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...