KVO и NSMutableArray - PullRequest
       6

KVO и NSMutableArray

10 голосов
/ 02 августа 2011

Как я могу установить KVO (наблюдение значения ключа) с помощью NSMutableArray?

Я хочу получать уведомления, когда в массиве появляется изменение.Я никогда раньше не использовал KVO с коллекцией, подобной массиву.

Ответы [ 2 ]

9 голосов
/ 02 августа 2011

Думаю, вам будут интересны ответы на этот вопрос .

Ключ в том, что вы не можете наблюдать какие-либо свойства массива напрямую - массив является просто хранилищем- но вы можете наблюдать отношение ко многим, которое поддерживается этим массивом (здесь я предполагаю, что ваш массив является свойством где-то объекта).

Если вы не хотитечтобы использовать эти специальные средства доступа повсеместно, ваш код, которому принадлежит массив, может вызывать

-willChange:valuesAtIndexes:forKey: и

-didChange:valuesAtIndexes:forKey:

, как описано в thisответ .

А если вы на Mac, а не на iOS, вы должны рассмотреть NSArrayController.

0 голосов
/ 21 ноября 2016

Вы можете использовать KVOMutableArray . Это подкласс NSMutableArray, и он поддерживает KVO.

отказ от ответственности: я автор:)

...