2012-06-29 22 views
0

我需要通过由CoreData管理的视图中的对象,所以我的UITableViewController类的后代创建相同类型的属性是这样的:CoreData故障和数据无法读取,当我需要他们

@property (strong) Event *udalostTermin; 

在@interface和

@synthesize udalostTermin; 

在@implementation和填充这个属性只是pushViewController前:动画:观被调用。

当viewDidLoad中,一切都还OK,打印表示:

<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>) 

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

+0

这里有两个不同的东西:一个物体变成故障和错误的数据。即使它是一个错误,它仍然应该得到正确的数据,当你要求它。当你尝试访问'Event'的属性时,你会看到什么? (也可以在'Event'中创建一个'didTurnIntoFault'方法,并在其中放置一个断点,以了解它为什么被调用。) –

+0

在viewDidLoad中,'po [udalostTermin createDate]'给出 '(id)$ 2 = 0x08647be0 2012-06-29 12:28:06 + 0000'。在tableView:cellForRowAtIndexPath中:它给出'(id)$ 3 = 0x00000000 '。当应用程序在didTurnIntoFault中停止时,NSLog:调用自身的打印函数:(entity:Event; id:0x805bc00 ;数据:{ CREATEDATE =零; 医生=零; 结束=零;' 等 – MoreFamed

+0

我跑出来的想法:)在'didTurnIntoFault',如果你把'的NSLog(@“didTurnIntoFault:%@。 “,[NSThread callStackSymbols]);',它给出了为什么被调用的任何提示? –

回答

0

从您的意见,这听起来好像答案是通话resetNSManagedObjectContextreset的文档:“所有接收机的管理对象是‘忘了。’” ......这基本上意味着无效记忆。

+0

哦,谢谢!有用。 – MoreFamed