【问题标题】:CoreData fault and data not read when I need themCoreData 故障和数据在我需要时未读取
【发布时间】:2012-06-29 11:29:47
【问题描述】:

我需要将一个由CoreData管理的对象传递给一个视图,所以我在UITableViewController类的后代中创建了一个相同类型的属性:

@property (strong) Event *udalostTermin;

在@interface 和

@synthesize udalostTermin;

在 @implementation 中并在视图的 pushViewController:animated: 调用之前填充此属性。

在 viewDidLoad 中,一切都还可以,打印说:

<Event: 0x868c160> (entity: Event; id: 0x8684220 
    <x-coredata:///Event/t22D3C10C-1BFC-40DE-918F-0E12A5473CA03> ; data: {
createDate = "2012-06-29 11:21:37 +0000";
doctor = nil;
end = "2012-06-29 11:21:37 +0000";

等等。但是当应用程序运行到 tableView:cellForRowAtIndexPath: 我需要显示数据的地方时,对象的打印显示:

<Event: 0x868c160> (entity: Event; id: 0x8684220 
    <x-coredata:///Event/t22D3C10C-1BFC-40DE-918F-0E12A5473CA03> ; data: <fault>)

之前没有明确地对对象做任何事情,因此对象给了我错误的空数据。请问我做错了什么?

【问题讨论】:

  • 这里有两个不同的东西:一个对象变成了一个故障和错误的数据。即使它是一个错误,当你要求它时它仍然应该得到正确的数据。当您尝试访问Event 的属性时,您会看到什么? (另外,您可以在Event 中创建一个didTurnIntoFault 方法并在其中放置一个断点以查看它被调用的原因。)
  • 在 viewDidLoad 中,po [udalostTermin createDate] 给出了(id) $2 = 0x08647be0 2012-06-29 12:28:06 +0000。在 tableView:cellForRowAtIndexPath: 中它给出了(id) $3 = 0x00000000 &lt;nil&gt;。当应用程序停止在 didTurnIntoFault:, NSLog: 上调用自我打印&lt;Event: 0x807ff60&gt; (entity: Event; id: 0x805bc00 &lt;x-coredata://6C8D076F-BC40-4DB0-894F-BD5175E1EE33/Event/p1&gt; ; data: { createDate = nil; doctor = nil; end = nil; 等。
  • 我的想法已经不多了。 :) 在didTurnIntoFault 中,如果你输入NSLog(@"didTurnIntoFault: %@", [NSThread callStackSymbols]);,它会提示为什么调用它吗?
  • 打印(缩短):0 -[Event didTurnIntoFault] + 51 1 -[NSFaultHandler turnObject:intoFaultWithContext:] + 555 2 -[NSManagedObjectContext reset] + 803 3 -[UIUdalostDetail viewWillDisappear:] + 505 UIUdalostDetail 是“旧”视图,正在为新视图让位。 NSManagedObjectContext reset 可能会破坏数据——但即使在新视图中我也想使用它们。你能帮忙吗?

标签: objective-c core-data ios4


【解决方案1】:

从您的 cmets 看来,答案似乎是在您的 NSManagedObjectContext 上调用 resetreset 的文档中:“所有接收者的托管对象都被“遗忘了。 ”' ...这基本上意味着在内存中无效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 2016-10-22
    • 2012-02-11
    • 2015-02-03
    相关资源
    最近更新 更多