我有兩個NSManagedObject
的子類。 Flight
和Aircraft
。每個Flight
與一個Aircraft
相關聯。沒有上下文的CoreData關係設置?
當用戶創建Flight
,我只做到以下幾點:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Flight" inManagedObjectContext:self.managedObjectContext];
self.flight = [[Flight alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
創建對象,但直到用戶是肯定的,他們想要保存它不將其插入到managedObjectContext
。如果他們保存,我插入對象,如果他們取消,它的丟棄。
這是一個很好的解決方案,直到現在。當用戶選擇一個Aircraft
,我這樣做:
[self.flight setAircraft:aircraft];
但是,因爲flight
對象尚未插入managedObjectContext
與此錯誤的應用程序崩潰:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Illegal attempt to establish a relationship 'aircraft' between objects in different contexts
這是有道理的。如果我一旦插入flight
對象,就不會發生此錯誤。但是這樣會產生一個問題,即如果用戶取消並且不再需要這個飛行物體呢?
我同意OP和蘋果確實太AFAICS - >他們推薦了一個從無到有方面 –
我不會把未完成的數據到任何「全球背景下」 –