2012-05-13 187 views
0

我有一些細節存儲在NSDictionary中。我在iPad上使用Master-Detail視圖,添加了initWithCoder方法後,我的應用在啓動時崩潰,我不知道如何使其工作。嘗試使用NSCoder在啓動時崩潰應用程序

我想使用NSCoder的原因是存儲我的用戶數據,並能夠顯示一次他再次啓動應用程序。 NSUserDefaults不可行,因爲我在字典中存儲了UITextFields和UISegmentedControls,以便於處理數據。

- (id)initWithCoder:(NSCoder *)aDecoder { 
    if (self = [super init]) { 
     personInfo = [aDecoder decodeObjectForKey:myString]; 
    } 

    return self; 
} 

- (void)encodeWithCoder:(NSCoder *)aCoder { 
    [aCoder encodeObject:personInfo forKey:myString]; 
} 

任何人都可以請告訴我如何正確使用它?

+0

這是其他問題的任何使用固定的呢? http://stackoverflow.com/questions/3943801/objective-c-how-do-i-use-initwithcoder-method –

+0

它有點幫助 - 它不再崩潰。你能告訴我如何在編碼後保存這些數據嗎? –

+0

可能不是;我不知道有關可可的事情:-)。但是如果你的代碼不再崩潰,但你仍然不滿意它正在做什麼,那麼你應該修改這個問題來反映新的狀態或者發佈一個新的狀態。 (如果最初的錯誤現在已經修復,你可以發佈一個答案來解釋問題是什麼以及如何解決問題,並接受你自己的答案。這對未來的讀者可能會有所幫助。) –

回答

0

我簡單地說

self = [super initWithCoder:aDecoder] 

,而不是僅僅

self = [super init]