0

코어 데이터와 NSArrayController를 사용하여 테이블의 일부 객체를 관리하는이 애플리케이션을 사용하고 있습니다. 아래의 코드를 사용하여 디렉토리에서 객체를 선택하십시오. 내 질문은 아래 "Handle Files"섹션에 관한 것입니다. URL을 사용하여 새 Video 객체를 만들고, 내가 작성한 사용자 정의 함수를 사용하여 메타 데이터 속성을 복사합니다. 이제 객체가 managedObjectContext에 삽입됩니다. 내 질문은, 내 NSArrayController 내 managedObjectContext에 바인딩 된 이후, 왜 여전히해야합니까 [자체 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

글쎄, 내 바인딩을 잘못 배열 컨트롤러가 내 테이블에 올바르게 먹이지 않았어. 어레이 컨트롤러 뒤에 객체를 몰래 넣을 수 없습니다. 어레이 컨트롤러를 구현하는 경우 작업을 수행해야하며 객체 추가 및 제거가 필요합니다. 그는 상황이 바뀌었을 때 tableview에 알려주는 역할을 할 것입니다.