這裏是我的工作了:
上的負載,我們知道我們面對的是一個新的事務,我創建了一個斷章取義之一。
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Transaction" inManagedObjectContext:self.managedObjectContext];
transaction = (Transaction *)[[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
那麼,當它來建立關係,船我這樣做:
if(transaction.managedObjectContext == nil){
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Category" inManagedObjectContext:self.managedObjectContext];
Category *category = (Category *)[[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
category.title = ((Category *)obj).title;
transaction.category = category;
[category release];
}
else {
transaction.category = (Category *)obj;
}
,並在年底節省:
if (transaction.managedObjectContext == nil) {
[self.managedObjectContext insertObject:transaction.category];
[self.managedObjectContext insertObject:transaction];
}
//NSLog(@"\n saving transaction\n%@", self.transaction);
NSError *error;
if (![self.managedObjectContext save:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
嗨@tc。我嘗試了第一個是insertIntoManagedObjectContext的響應:nil,但是當我想分配一個關係時,應用程序崩潰了:reason:'非法嘗試在不同上下文中的對象之間建立關係「類別」。所以我想我的問題是因爲它是不合法的上下文NSManaged對象和上下文管理對象之間的關係,什麼是解決方案? – 2010-10-06 14:09:38
我最終創建了一個類別實體沒有上下文相同的方式,但是當它來保存我添加到上下文,然後它運作良好。 – 2010-10-06 14:31:04
我可以證實此答案的正確性。我剛剛遇到了一個與上下文無關的問題。添加上下文之前分配給對象的屬性值在最終將對象添加到子上下文時不會傳播到父上下文。屬性在持久性存儲中以「nil」存儲。當我切換順序時(即在將屬性值插入上下文之後賦值),事情正常運行。這個故事的道德觀點是,沒有上下文的情況下實例化一個對象並不是一個好主意。 – 2014-03-21 07:06:38