Ответ 1
Вам не нужен NSArrayController для наблюдения за изменениями в NSArray
. Однако вы не можете непосредственно наблюдать эти изменения, т.е. Вы не можете вызвать -addObserver:forKeyPath:options:context:
непосредственно на NSArray
. В вашем случае вы хотите вызвать его на GameModel
с помощью @"playerNameArray"
в качестве ключа.
Вы еще не закончили. Обычные автоматические уведомления KVO будут срабатывать, только если вы вызываете -setPlayerNameArray:
, тем самым заменяя весь массив. Если вы хотите получить более подробные уведомления, вам нужно использовать -willChange:valuesAtIndexes:forKey:
и -didChange:valuesAtIndexes:forKey:
всякий раз, когда вы вставляете, удаляете или заменяете элементы в этом массиве.
Это отправит уведомление при каждом изменении содержимого массива. В зависимости от NSKeyValueObservingOptions
, который вы используете при добавлении наблюдателя, вы также можете получить инкрементные изменения, которые были сделаны - классная функция, но в этом случае вам может не понадобиться.
Примечание. NSArrayController не существует в iOS. Это часть Cocoa Bindings, которая в настоящее время существует только в AppKit в Mac OS X. К счастью, вам это не нужно.