Ответ 1
Я думаю, что вы будете заинтересованы в ответах на этот вопрос.
Ключевым моментом является то, что вы не можете наблюдать какие-либо свойства массива напрямую - массив является просто хранилищем - но вы можете наблюдать отношение ко многим, которое поддерживается этим массивом (здесь я предполагаю, что ваш массив является свойством объекта где-то).
Если вы не хотите использовать эти специальные средства доступа повсеместно, ваш код, которому принадлежит массив, может вызвать
-willChange:valuesAtIndexes:forKey:
и
-didChange:valuesAtIndexes:forKey:
как описано в этом ответе.
И если вы на Mac, а не iOS, вы должны рассмотреть NSArrayController
.