В моем приложении iPhone я хотел бы перезагрузить представление таблицы, когда список элементов, используемых для его заполнения (этот список является свойством NSMutableArray для приложения делегат).
Каков наилучший способ сделать это?
Сначала я, хотя и из NSTimer, но думаю, что это не правильный путь ... May KVO pattern делает трюк?Перезагрузите представление таблицы UITableController при изменении свойства делегирования приложения
ответ
KVO - это путь, но вы должны убедиться, что внесите изменения в массив, используя соответствующие аксессоры (а), чтобы механизм KVC/KVO работал только.
Как минимум, измените свойство NSMutableArray
с использованием измененного прокси-сервера, возвращаемого mutableArrayValueForKey:
. Apple's documentation suggests that you go further:
Вам настоятельно рекомендуется реализовать эти изменчивые аксессор скорее , чем полагаться на аксессору, который возвращает изменяемый набор непосредственно. Изменчивые аксессоры намного эффективнее при внесении изменений в данные в связи.
Для того, чтобы иметь ключ-значение кодирования уступчивый изменяемый заказал ко-многим необходимо реализовать следующие методы:
-insertObject:in<Key>AtIndex:
или-insert<Key>:atIndexes:
. По крайней мере, один из этих методов должен быть реализован. Они аналогичны Методам NSMutableArrayinsertObject:atIndex:
иinsertObjects:atIndexes:
.
-removeObjectFrom<Key>AtIndex:
или-remove<Key>AtIndexes:
. По крайней мере, один из этих методов должен быть реализован. Эти методы соответствуют методам NSMutableArrayremoveObjectAtIndex:
иremoveObjectsAtIndexes:
соответственно.
-replaceObjectIn<Key>AtIndex:withObject:
или-replace<Key>AtIndexes:with<Key>:
. Необязательный. Внедрение, если бенчмаркинг указывает на то, что производительность является проблемой.Метод
-insertObject:in<Key>AtIndex:
передается объект вставки, а такжеNSUInteger
, что указывает индекс, где он должен быть вставлен . Метод-insert<Key>:atIndexes:
вставляет массив из объектов в коллекцию по индексам, указанным принятымиNSIndexSet
. Вам нужно только реализовать один из этих двух методов .
Это то, что вы хотите сделать;) http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueObserving_Protocol/Reference/Reference.html#//apple_ref/occ/instm/NSObject/addObserver:forKeyPath:options:context:
И это мой рекомендуется, и я очень уверен, что лучший способ.
- 1. Ошибка приложения при выполнении метода делегирования таблицы
- 2. Ошибка при объявлении свойства делегирования
- 3. NSFetchedResultsController метод делегирования вызовов при изменении предикатов
- 4. iPhone: Техника UITableController сказать предыдущий UITableController, который необходимо обновить
- 5. Как отправить параметр при переключении с UITableController на другой UITableController?
- 6. Перезагрузите док из приложения
- 7. Обновить представление при изменении области
- 8. Как автоматически переопределить представление при изменении базовой таблицы (новый столбец)?
- 9. Вызов OnPropertyChanged при изменении свойства свойства
- 10. Изменение свойства свойства при программном изменении SelectedIndex
- 11. Активировать элемент при изменении свойства?
- 12. UnicodeDecodeError при изменении таблицы
- 13. Как повысить событие при изменении текущего свойства приложения
- 14. Не обновлять дискриминатор при изменении типа свойства
- 15. NSFetchedResultsController crash при изменении свойства атрибута categoryNameKeyPath
- 16. как использовать метод делегирования приложения в iphone
- 17. Сбой при изменении свойства источника изображения
- 18. Основные данные Изменение значения свойства при изменении другого свойства
- 19. Обновить директивное представление при изменении значения атрибута
- 20. AngularJS обновляет представление при изменении $ rootScope
- 21. Метод, который перезагружает представление при изменении дня
- 22. Как отображать представление при изменении ориентации быстро?
- 23. Невозможно обновить представление QT при изменении модели
- 24. Перезагрузите устройство с Android-приложения
- 25. Перезагрузите компьютер из приложения WinForms?
- 26. WPF UI не обновляется при изменении свойства
- 27. При изменении значения таблицы lua?
- 28. Ошибка приложения при изменении ImageView
- 29. Сбой приложения при изменении ориентации
- 30. перезагрузка приложения для Android при изменении макета при изменении ориентации