NSManagedObject属性为空
问题描述:
我有一个UIButton子类,其中我将属性concert
设置为子类NSManagedObject
。当我设置此属性时,我确信NSManagedObject
不为空,并且它的属性不为null。此外,对象的数据显示正确的数据。NSManagedObject属性为空
当使用concert
后来被点击并发送至方法sender
按钮时,我会投的sender
我的UIButton
子类和concert
的属性现在将返回null但concert
本身不为空。此外,数据将是fault
。
有谁知道为什么发生这种情况,我该如何解决这个问题?
在这里,我初始化我的按钮:
NFConcertButton *button = [NFConcertButton buttonWithConcert:concert tileSize:self.tileSize];
在initWithButton:tileSize:
(这是由静态方法调用)我存储供以后使用的音乐会。
- (id)initWithConcert:(NFConcert *)concert tileSize:(CGSize)tileSize
{
if (self = [super init])
{
// Store concert
_concert = concert;
/*
<NFConcert: 0xde67eb0> (entity: Concert; id: 0xde63f60 <x-coredata://F027F762-2F30-4A43-898B-42ECC199DE97/Concert/p2> ; data: {
band = "SomeBand";
})
*/
// concert is not null
// concert.band is not null
// .... //
}
return self;
}
当按下按钮时,以下方法被调用和concert
属性现在为空。
- (void)concertButtonPressed:(id)sender
{
NFConcert *concert = ((NFConcertButton *) sender).concert;
// <NFConcert: 0xde67eb0> (entity: Concert; id: 0xde63f60 <x-coredata://F027F762-2F30-4A43-898B-42ECC199DE97/Concert/p2> ; data: <fault>) => (null)
// concert is not null.
// concert.band is now null.
}
UPDATE:
如果我取NSManagedObject
再次使用objectId
,我将获得的数据和属性将不会返回null。我不明白为什么这是必要的。谁能告诉我?
以下将工作。
NFConcert *concert = ((NFConcertButton *) sender).concert;
concert = (NFConcert *) [managedObjectContext existingObjectWithID:concert.objectID error:nil];
你能否发表有关财产音乐会宣言的代码? – 2012-07-31 17:56:59
@luyuan我的房产被宣布为'@property(nonatomic,strong)NFConcert * concert'' – simonbs 2012-07-31 18:36:59
和@synthesize? – 2012-07-31 18:39:56