我之後按鈕的操作方法讓我的自定義類對象。現在我需要在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 *)encode; - (id)initWithCoder:(NSCoder *)decode;我已經在Store實體中實現。爲什麼downvote? –
NSUserDefaults的用於存儲的偏好,所以問這個問題給自己「是否有必要使用NSUserDefaults的」?還有很多其他選項可以保存數據,如存儲爲plist,使用編碼器和解碼器等。有一個由nick lockwood編寫的漂亮的可重用類,請參閱https://github.com/nicklockwood/BaseModel。我建議你使用它。謝謝! – iCoder
是的,根據我的要求,我必須使用userDefaults。停止從Xcode的應用程序。它仍然是同一家商店。 –