保存上下文时我遇到了这个问题。它是间歇性的。一半的时间,上下文正确保存,一半的时间,对象的成员变为空(实际上上下文中没有任何内容。
“mylist”是 NSManagedObject 的列表,它属于我正在保存的上下文。“结果”始终为 YES,因此没有错误。
// prints out results before save
for (MyObj* obj in mylist) {
NSLog(@"%p, %@", obj, [obj message]);
}
//context save here
NSError *error;
BOOL result = [[[Core appDelegate] managedObjectContext] save:&error];
if (!result) {
NSLog(@"Save Failed!");
NSLog(@"report: %@, %@, %@", error, [error userInfo],[error localizedDescription]);
} else {
NSLog(@"Save succeeded");
}
// prints out results after save
for (MyObj* obj in mylist) {
NSLog(@"%p, %@", obj, [obj message]);
}
控制台显示如下内容:
0x9af6990, message0
0x9af8910, message1
0x9afa390, message2
0x9afa5a0, message3
Save succeeded
0x9af6990, (null)
0x9af8910, (null)
0x9afa390, (null)
0x9afa5a0, (null)
我也尝试从上下文中重新获取,保存后我得到 0 个对象。这一切都在主线程中完成。有任何想法吗?在这一点上我真的很难过。