Использование NSSet для хранения списка делегатов в Objective C

#iphone #objective-c #ios #xcode #design-patterns

#iPhone #objective-c #iOS #xcode #шаблоны проектирования

Вопрос:

Я пишу компонент (например VeryLongJobExecuter ) в Objective C.

Я хочу VeryLongJobExecuter , чтобы это могло уведомлять другие объекты ( one to many ) о завершении его задания и выполнять обычный метод, например ( jobExecuted ) .

Я думаю сохранить ссылку на этих делегатов в любом NSArray / NSSet, выполнить итерацию делегатов и вызвать метод.

Или я должен вместо этого использовать уведомление?

Ответ №1:

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

Ответ №2:

Уведомление было сделано для этой цели, поэтому я бы использовал это вместо этого.