KVO и NSMutableArray

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

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

Ответ 1

Я думаю, что вы будете заинтересованы в ответах на этот вопрос.

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

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

-willChange:valuesAtIndexes:forKey: и

-didChange:valuesAtIndexes:forKey:

как описано в этом ответе.

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

Ответ 2

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

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