1

我有一個核心數據應用程序,用於添加或刪除一個客戶端的許多約會與IB綁定到我約會陣列控制器的按鈕。約會內容來源於在供稿列表中選擇的任何客戶端。 我希望使用SegmentedControl,並且據我所知,這需要我以編程方式在約會中添加和刪除對象。我已經成功地使用Marcus Zarra的代碼從他的第64頁的核心數據中添加了一個約會,但是我無法刪除所選的約會。我正在使用一個自定義表格單元格,我懷疑這可能會使問題複雜化。使用NSSegmentedControl與CoreData

總之,我希望以編程方式實現對所選對象的ArrayController remove:方法的等效操作。

任何人都可以幫忙嗎?

回答

0

獲取當前選擇從您ArrayController綁定到您的UI

- (NSArray *)selectedObjects 

使用上下文

-(void) deleteObject:(NSManagedObject*) object 

樣品刪除這些對象:

NSArray* objectsToDelete = [NSArray arrayWithArray:[arrayController selectedObject]]; 
for (NSManagedObject* objectToDelete in objectsToDelete) 
{ 
    [arrayController.managedObjectContext deleteObject:objectToDelete]; 
} 
1

謝謝,馬丁。我的代碼最終看起來像這樣。

-(IBAction) notesEditorSegClicked:(id)sender{ 
    int clickedSegment = [sender selectedSegment]; 
    switch (clickedSegment) { 
     case 0:{ // add new object 
      NSManagedObject *newNote = [NSEntityDescription 
      insertNewObjectForEntityForName:@"Note" 
      inManagedObjectContext:notes.managedObjectContext]; 
      [notes addObject:newNote]; 
      break; 
     } 
     case 1:{ // delete selected object 
      NSArray *objectsToDelete = [notes selectedObjects]; 
      for (NSManagedObject* objectToDelete in objectsToDelete){ 
       [notes.managedObjectContext deleteObject:objectToDelete]; 
      } 
      break; 
     } 
     case 2:{// close view 
      [self loadClientSummary:sender]; 
      break; 
     } 
    } 
}