我正在爲每個作業使用自定義作業對象的作業應用程序。我試圖存儲一個NSMutableArray(通過initUserDefaults中的initWithArray :)轉換爲NSArray,但我在保存和重新加載數組時遇到了問題。UserDefaults/KeyedArchiver挫折
我有一個表格視圖,您可以從中選擇添加一個新的任務(加載NewAssignmentViewController)。保存賦值時,它會被推回AssigmentsViewController中的一個數組。然後在每次加載顯示賦值的UITableView時調用它。
下面是有關代碼:
-(void)saveToUserDefaults:(NSArray*)myArray{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:[NSKeyedArchiver archivedDataWithRootObject:myArray] forKey:@"Assignments"];
[standardUserDefaults synchronize];
}
}
-(void)retrieveFromUserDefaults{
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefaults objectForKey:@"Assignments"];
if (dataRepresentingSavedArray != nil) {
NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
if ([oldSavedArray count] != 0) {
[assignments setArray:[[NSMutableArray alloc] initWithArray:oldSavedArray]];
}
else {
assignments = [[NSMutableArray alloc] initWithCapacity:100];
}
}
}
-(void)backButtonPressed {
[self saveToUserDefaults:[[NSArray alloc] initWithArray:assignments]];
[self.navigationController popViewControllerAnimated:YES];
}
請幫助。它不會加載數組,但不會給出任何錯誤。有關UserDefault或KeyedArchiver的一般提示將不勝感激。