我有一個一對多的CoreData模型。有任務列表和任務屬於任務列表。我的問題是,每當我創建一個新任務時,任務列表也會被創建。查看仿真器中核心數據的內容
「新的任務列表」是在數據庫名稱字段的默認值。 「新任務列表」是View創建新任務時所存儲的值。可以看出,每次創建任務時,都會自動創建一個具有默認名稱值的任務列表。
問題 這是它應該看起來如何?如果是這樣,我該如何做一個查詢來選擇Z_ENT = 1的任務列表名稱(這些是父母,對吧?) 如果這看起來很不對,我該如何正確插入東西。我認爲我的桌子關係是正確的 - 但如果這可能是問題,我會張貼截圖。
模型圖
我的代碼
當選擇了一個清單:
NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
TaskViewController *taskViewController = [[TaskViewController alloc] init];
taskViewController.managedObjectContext = [self.fetchedResultsController managedObjectContext];
taskViewController.tasklist = managedObject;
在TaskViewController,我得到的fetchedResultsController這樣的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"(tasklistOfTask == %@)", tasklist];
[fetchRequest setPredicate: predicate];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
,然後插入,
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newManagedObject setValue:@"dummy" forKey:@"task"];
[newManagedObject setValue:tasklist forKey:@"tasklistOfTask"];
的managedobjectcontext從AppDelegate中傳遞英寸
你能告訴我你的模型圖的截圖,知道你是如何連接關係的嗎? – 2012-04-29 17:13:54
添加了模型圖。謝謝! – crazyphoton 2012-04-30 03:40:09
看圖,底部的箭頭看起來是正確的,一對多。它上面的箭頭看起來可疑和可能的罪魁禍首 - 雖然我從來沒有見過它,並可能使用舊版本的Xcode。你們的關係是建立在彼此的反面還是彼此的目的地之間?逆向是非常需要的。 – Wienke 2012-04-30 05:17:26