"MainClass"클래스가 있습니다. 이 클래스는 NSCoding 프로토콜을 구현합니다. 이 클래스에는 NSCoding 프로토콜을 구현하는 또 다른 클래스 "Object"의 객체가있는 배열이 있습니다. 그때 NSUserDefaults에서 "MainClass"의 객체를 보관하고 때를 보관 해제 및 배열 클래스 "개체"의 목적을 얻을 내가 메시지를 얻을 다음 그것을 속성을 사용하려고 :nsuserdefaults에서 데이터로 작업 할 때 응용 프로그램이 작동하지 않습니다.
[NSConcreteMutableData 속성] : 인식 할 수없는 선택기를 인스턴스로 보냈습니다.
내가 뭘 잘못 했니? 그것을 고치는 방법?
편집 : 이 내가 NSUserDefaults에 사용하는 코드입니다 :
- (Settings *) readData
{
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSettings = [currentDefaults objectForKey:@"data"];
if (dataRepresentingSettings != nil) {
return (MainClass *)[NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSettings];
}
return nil;
}
- (void) saveData
{
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:self] forKey:@"data"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
언제든지 nsuserdefaults를 저장 /로드/사용하는 코드를 추가 할 수 있습니까? 함수를 잘못 호출 한 것처럼 보이지만 코드가없는 코드는 어디서나 말할 수 없습니다. –
'NSUserDefaults'에 접근하는 곳에 관련 코드를 게시하십시오. –