0

我有這個應用程序使用核心數據和一個NSArrayController來管理表中的一些對象。我有下面的代碼來獲取目錄上的一些對象。我的問題是關於下面標有「處理文件」的部分。我使用url創建一個新的Video對象,我使用我寫的自定義函數複製元數據屬性。該對象現在被插入到managedObjectContext中。我的問題是,因爲我有我的NSArrayController綁定到我的managedObjectContext,爲什麼我還必須[self addObject:newVideo]讓我的表上顯示對象?有沒有辦法強制數組控制器從managedObjectContext中提取對象而無需手動添加它?每次添加或刪除對象時,都必須更新這兩項操作。使用NSArrayController添加managedObjectContext對象

for (NSURL *url in _dirEnumerator) { 
    NSNumber *_isDirectory = nil; 
    [url getResourceValue:&_isDirectory forKey:NSURLIsDirectoryKey error:NULL]; 
    if (![_isDirectory boolValue]) { 
     if (([_mediaTypes containsObject:[[url pathExtension]uppercaseString]])) { 
      // Handle the files 
      Video *newVideo = [NSEntityDescription insertNewObjectForEntityForName:@"Video" inManagedObjectContext:_managedObjectContext]; 
      [newVideo copyAttributesFrom:url]; 
      [self addObject:newVideo]; 
      NSLog(@"Inserting video: %@",[newVideo valueForKey:@"name"]); 
     } 
    } 
} 

回答

0

那麼,我有我的綁定都錯了陣控制器沒有正確餵我的表。你不能在數組控制器後面偷窺對象,如果你實現了數組控制器,你必須讓他做他的工作,包括添加和刪除對象。當事情發生變化時,他會照顧桌面視圖。