각 과제에 대해 맞춤 과제 개체를 사용하는 숙제 앱을 만들고 있습니다. standardUserDefaults있는 NSMutableArray (NSWray를 통해 캐스팅 된 initWithArray :) 저장할 시도하고 있지만 저장 및 배열을 다시로드하는 데 문제가 있습니다.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에 대한 정보는 일반적으로 크게 감사하겠습니다.