【问题标题】:Trying to use NSCoder crashes the app on start-up尝试使用 NSCoder 会使应用程序在启动时崩溃
【发布时间】:2012-05-13 21:46:40
【问题描述】:

我在 NSDictionary 中存储了一些详细信息。我在 iPad 上使用 Master-Detail 视图,添加 initWithCoder 方法后,我的应用程序在启动时崩溃,我不知道如何让它工作。

我想使用 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];
}

谁能告诉我如何正确使用它?

【问题讨论】:

  • 这个问题还有用吗? stackoverflow.com/questions/3943801/…
  • 它有点帮助 - 它不再崩溃了。你能告诉我编码后如何保存这些数据吗?
  • 可能不会;我对可可一无所知:-)。但是,如果您的代码不再崩溃,但您仍然对其所做的事情不满意,您可能应该修改问题以反映世界的新状态或发布新问题。 (如果最初的错误现在已修复,您可以发布一个答案,解释问题是什么以及如何修复它,并接受您自己的答案。这可能对未来的读者有所帮助。)

标签: objective-c ipad ios5 nscoding nscoder


【解决方案1】:

我只是说解决了它

self = [super initWithCoder:aDecoder]

而不仅仅是

self = [super init]

【讨论】:

    猜你喜欢
    • 2013-12-18
    • 2017-02-07
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多