0
我有一個「MainClass」類。該類實現NSCoding協議。在那個類中,我有一個數組與另一個類「對象」的對象,它也實現NSCoding協議。當我存檔在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'的地方發佈相關代碼。 –