iOS: 在这种情况下我应该使用委托还是 NSNotification?

iOS: Should I use a delegate or an NSNotification in this situation?

我有一个不断更新新数据的数据库。我将此数据用作 UITableView 的数据源。目前,我正在使用 NSNotifications 提醒我的 UITableView 插入、删除或更新新数据。但是,我一直认为使用 delegates 会好得多,因为它是一对一的。

这里有一些代码可以更好地演示正在发生的事情。

- (void)insertObject:(NSNotification *)notification {
    NSNumber *object = [notification object];

    [self.tableView beginUpdates];
    [self.data insertObject:object atIndex:0];
    [self.tableView insertRowsAtIndexes:[NSIndexSet indexSetWithIndex:0] withAnimation:NSTableViewAnimationEffectNone];
    [self.tableView endUpdates];
 }

在更大的范围内,数据库更新通常是项目的许多部分可能感兴趣的事件。这就是 Core Data 本身使用通知而不是委托方法的原因。是的,你可以选择任何一种方式,但我倾向于跟随 Apple 在这种模式上的领先地位。 (maddy 对你的 post 的评论确实有很好的解释 btw)