2012-05-13 140 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]