我有一個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