1

我有一个核心数据应用程序,可以添加或删除客户的许多约会之一,其中按钮绑定在 IB 到我的约会 ArrayController。约会内容来自提要列表中选择的任何客户端。我希望使用 SegmentedControl,据我所知,这需要我以编程方式添加和删除约会中的对象。我已经成功地使用 Marcus Zarra 在 p54 上的核心数据一书中的代码添加了一个约会,但是我无法删除一个选定的约会。我正在使用自定义表格单元格,我怀疑这可能会使事情复杂化。

简而言之,我希望以编程方式在选定对象上实现 ArrayController 的 remove: 方法的等价物。

有人可以帮忙吗?

4

2 回答 2

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;
        }
    }
}
于 2010-07-15T06:20:35.363 回答
0

从绑定到 UI 的 ArrayController 获取当前选择

- (NSArray *)selectedObjects

使用上下文删除这些对象

-(void) deleteObject:(NSManagedObject*) object

样本:

NSArray* objectsToDelete = [NSArray arrayWithArray:[arrayController selectedObject]];
for (NSManagedObject* objectToDelete in objectsToDelete)
{
  [arrayController.managedObjectContext deleteObject:objectToDelete];
}
于 2010-06-25T10:24:32.220 回答