0

У меня есть это приложение, которое использует основные данные и NSArrayController для управления некоторыми объектами в таблице. У меня есть код ниже, чтобы забрать некоторые объекты в каталоге. Мои вопросы касаются раздела под названием «Ручные файлы». Я создаю новый объект Video с использованием URL-адреса, копируя атрибуты метаданных, используя специальную функцию, которую я написал. Теперь объект вставлен в управляемый объект. Мой вопрос в том, что, поскольку у меня есть NSArrayController связанный с моим managedObjectContext, почему я должен все еще делать [self addObject: newVideo], чтобы объект был показан на моей таблице? Есть ли способ заставить контроллер массива вытащить объект из управляемого объекта управления без необходимости его вручную добавлять? Это будет хлопот, когда нужно обновлять обе вещи каждый раз, когда я добавляю или удаляю объект.Добавление объектов managedObjectContext с NSArrayController

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

Ну, у меня были неправильные привязки, контроллер массива правильно не кормил мой стол. Вы не можете скрывать объекты за контроллером массива, если вы реализуете контроллер массива, вы должны позволить ему выполнять свою работу, а также добавлять и удалять объекты. Он позаботится о том, чтобы позволить настольному знанию, когда все изменилось.

Смежные вопросы