Я получаю свой пользовательский объект класса после действия кнопки. Теперь мне нужно сохранить несколько настраиваемых объектов в NSMutableArray
, а затем сохранить этот массив в NSUserDefaults
.Как сохранить пользовательские объекты в массиве и сохранить его в NSUserDefaults - iPhone
Вот мой код:
-(IBAction)onClickSubmitLater:(id)sender
{
//Saving store in user defaults for later upload data.
NSMutableArray *arrayStoreList = [[NSMutableArray alloc] init];
arrayStoreList = [Util getArrayPreference:@"Store"];//arrayStoreList is the list of all stores.
Store *store = [[Store alloc] init];
store = [arrayStoreList objectAtIndex:self.selectedStoreIndex];//here i am getting particular store that i need to save in array.
//archive
NSData *dataStore = [NSKeyedArchiver archivedDataWithRootObject:store];
[[NSUserDefaults standardUserDefaults] setObject:dataStore forKey:@"resultStore"];
//unarchive
NSData *dataResultStore = [[NSUserDefaults standardUserDefaults] objectForKey:@"resultStore"];
Store *resultStore = (Store *)[NSKeyedUnarchiver unarchiveObjectWithData:dataResultStore];
NSLog(@"%@", resultStore);
}
Используя выше код, он сохраняет единый таможенный класс Store
объект в NSUserDefaults
. Поэтому я хотел бы сохранить весь объект Store
в NSMutableArray
после отправки позже ibaction. Позже я выберу массив магазинов для загрузки хранилища на сервере один за другим.
Спасибо.
- (void) encodeWithCoder: (NSCoder *) кодирует; - (id) initWithCoder: (NSCoder *) декодирует; я реализовал в магазине. Почему downvote? –
NSUserDefaults используются для сохранения предпочтений, поэтому задайте этот вопрос себе: «Нужно ли использовать NSUserDefaults»? Есть много других возможностей для сохранения данных, таких как сохранение в виде plist, использование кодера и декодера и т. Д. Существует красивый многоразовый класс, написанный nick lockwood. Посмотрите на https://github.com/nicklockwood/BaseModel. Я предлагаю вам использовать его. Благодаря! – iCoder
Да, согласно моему требованию, я должен использовать userDefaults. После остановки приложения из Xcode. он останется тем же магазином. –