首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在退出[managedObjectContext保存:]上的应用程序,未出现错误

正在退出[managedObjectContext保存:]上的应用程序,未出现错误
EN

Stack Overflow用户
提问于 2012-09-30 19:52:38
回答 1查看 276关注 0票数 0

我的代码使用核心数据执行许多任务,然后当我保存时,它崩溃了,没有任何错误。我的保存代码很简单:

代码语言:javascript
复制
[[self managedObjectContext] save:&error];

NSLog(@"Error: %@", error);

它没有到达错误行,它崩溃了,并退出到主屏幕。

我在Diagnostics中选择了除'Guard Malloc‘之外的所有内容。

这是我在运行save命令时得到的日志:

代码语言:javascript
复制
CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: SELECT Z_MAX FROM Z_PRIMARYKEY WHERE Z_ENT = ?
CoreData: sql: UPDATE Z_PRIMARYKEY SET Z_MAX = ? WHERE Z_ENT = ? AND Z_MAX = ?
CoreData: sql: COMMIT
CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: INSERT INTO ZENTRY(Z_PK, Z_ENT, Z_OPT, ZLOCATION, ZBOOKMARKED, ZCREATIONDATE, ZENTRYID, ZMESSAGE, ZSECTIONIDENTIFIER, ZTICDSSYNCID, ZVERSION) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
CoreData: sql: COMMIT
CoreData: sql: pragma page_count
CoreData: annotation: sql execution time: 0.0047s
CoreData: sql: pragma freelist_count
CoreData: annotation: sql execution time: 0.0069s

在此之前没有提到任何错误。我怎样才能得到一些关于我的应用程序崩溃的迹象呢?

编辑:我现在知道这是在调用[NSEntityDescription insertNewObjectForEntityForName:@"Entry" inManagedObjectContext:[self managedObjectContext]];之后发生的,并且它是由TICoreDataSync在此之前对我的核心数据存储执行的一个方法引起的。我不能更改该代码,也不能将其从核心数据存储中删除。我认为在多个线程上访问存储是一个问题,所以现在我需要知道如何在主线程上处理这个问题?

EN

回答 1

Stack Overflow用户

发布于 2012-09-30 20:46:39

很明显,MOC已经损坏了。是否正在从多个线程访问它?

我要做的是,对每个更改(其中moc是可保存的-一致的),尝试保存。发生损坏的地方将会崩溃,因此您现在至少知道问题所在。

我在我的应用程序中做到了这一点--事实上,所有的开发版本都会经常保存,只有部署和QA版本才会关闭它。我用这种方式发现了很多bug。在一些if标志语句中包装保存,或者编写宏。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12661038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档