首页 文章

Core Data仅在iOS 5中崩溃

提问于
浏览
1

我正在编写一个与服务器通信的应用程序 . 服务器使用json,所以我在我的应用程序中使用这个json,然后将结果序列化为 NSMutableDictionary ,然后用于创建新实体 .

这是代码:

if (context == nil) {
    context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}

UserTable *ut = [NSEntityDescription insertNewObjectForEntityForName:@"UserTable" inManagedObjectContext:context];
ut.user = [Diz objectForKey:@"user"];
ut.email = [Diz objectForKey:@"email"];
ut.phone = [Diz objectForKey:@"phone"];

NSError *error = nil;    
if (![context save:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);        
}

一切都在iOS 4.3,iOS 6.0和6.1中完美运行 . 在iOS 5.0.1中,此代码引用了一个位于 [context save:&error] 中的exc_bad_Address,或者有时在 ut.phone=[Diz objectForKey:@"phone"] 中进行了本地化 .

我只使用一个上下文(我有测试线程组成与“isMainThread”功能),我能做什么?我的错误日志为空,应用程序只是崩溃 .

编辑

谢谢你的建议 . 我已经从设备中删除了我的应用,但我会尝试进行迁移 . 我启用了异常断点,但它是一样的...应用程序崩溃没有记录任何错误(我也启用了NsZombie) . 在崩溃期间,绿色断点在实体“UserTable”的属性上设置,如果我从保存中删除此属性,则在保存功能中设置断点 .

编辑

经过多次测试后,我发现了这次崩溃的标准行为 . 我的实体UserTable有31个属性,如果我删除一个属性都正常工作...我已经尝试用另一个名称和其他属性的名称重新创建实体但行为是相同的...这意味着什么?实体的属性数量有限制吗?还有其他建议吗?

1 回答

  • 0

    没有进一步的细节,很难理解发生了什么 .

    同时很少有建议 .

    第一 . 提供有关您的Core Data模型的一些有用信息 . 也许,这只是一个假设,你已经改变了模型中的某些东西,现在你需要删除已安装的应用程序或执行迁移 .

    第二 . 启用例外以查看发生的情况您可以在此处讨论"Run > Stop on Objective-C exception" in Xcode 4? .

    第三 . 使用camelCase表示法 . Diz 应该是 diz 或更明确的名称,如 resultDictionary 或任何你想要的 .

    第四 . 您确定单个上下文是否正确?当您从服务器下载大量数据时,UI可能会冻结 .

    最后,有一个错误日志可能会更好 . 这是空的意味着什么?

相关问题