【发布时间】:2013-11-26 16:51:58
【问题描述】:
我对核心数据有点陌生,但因此我认为我在这里没有做任何复杂的事情。我有一个对象持久化到核心数据,它与另一个对象具有非常简单的一对一关系。我用一个简单的获取请求和一个表格视图来显示我的对象的所有实例。一切都很好。
如果您停留在表格视图上并滚动足够长的时间,突然间所有表格单元格都会变为空白。我已经将问题追溯到我的核心数据对象数组;数组仍然存在,持久对象仍然存在,但我的所有属性突然设置为零。
什么会导致这种行为?我已经订阅了 Core Data Will 和 Did 保存方法,它们没有被解雇。我可以使用其他技巧来调试此问题吗?
EDIT - 包括用于持久化对象的方法如下:
- (void) persistLongActivity: (NSDictionary*) longActivityData
{
PersistedLongActivity *toPersist = [NSEntityDescription insertNewObjectForEntityForName: @"PersistedLongActivity" inManagedObjectContext: [self managedObjectContext]];
toPersist.startDate = [longActivityData valueForKey:@"startDate"];
toPersist.endDate = [longActivityData valueForKey:@"endDate"];
toPersist.type = [longActivityData valueForKey:@"type"];
[self saveContext];
}
【问题讨论】:
-
您需要发布一些代码,也许是您如何创建新实体并保存它的示例。
-
在你的保存方法中,是否检查是否有保存错误?
-
可以发
saveContext的方法吗? -
如何创建上下文?你保留它吗?你在重置你的上下文吗?
-
谢谢@DanShelly 我有很多样板核心数据代码从其他管理上下文的地方复制。看来上下文是线程相关的,我认为这导致了我的问题(见下面的答案)。
标签: ios objective-c core-data