Переработка методов
Переработка методов cellForRowAtlndexPath u didSelectRowAtlndexPath.
NSFetchedResultsController позволяет легко реализовать эти методы с использованием его метода objectAtlndexPath.
Запустите приложение iBountyHunter и убедитесь в том, что внесенные изменения ничего не нарушили. Представления должны загружаться так, как они загружались. Проверьте сами, если пометить преступника как пойманного, он переходит в другой список? А если выйти из приложения кнопкой Ноте и запустить его снова?
Теперь вместо простого предиката в нашем приложении используется контроллер, но это не должно повлиять на его поведение. Но преступники отображаются в списке пойманных, хотя они и не были помечены как пойманные!
Данные необходимо обновить.
Преступники не переходят в нужный список при изменении флага поимки, потому что мы не обновляем данные при каждом отображении списка Captured. Необходимо приказать NSFetchedResultsController сообщать об изменениях, чтобы мы могли обновить таблицу.
NSFetchedResultsController умеет обнаруживать изменения.
Теперь наше приложение использует объект NSFetchedResultsController вместо простого массива, и методы контроллера могут помочь нам в решении наших задач. Контроллер имеет встроенную поддержку отслеживания изменений в данных через делегата. Мы еще не реализовали код обработки изменений в данных.
Полная перезагрузка представления при обнаружении изменений может отнимать слишком много ресурсов при большом объеме данных; однако делегат FetchedResultsController также поддерживает оповещения об изменении конкретной ячейки. За дополнительной информацией обращайтесь к документации Apple.
Сделайте то же, что в прошлый раз: постройте и запустите приложение. Измените признак поимки одного из преступников, чтобы исключить его из списка пойманных.
При определении предикатов в программном коде легко допустить ошибку. Ведь это что-то вроде встроенного SQL?
Да, и среда Xcode вам поможет. Вместо того чтобы вставлять предикаты в код, вы можете строить их в графическом виде в редакторе модели данных Xcode. Для этого выберите сущность в Xcode, затем щелкните на значке «+», как при добавлении атрибута. Выберите команду Add Fetch Request для создания нового запроса на выборку, после чего откройте графический редактор командой Edit Predicate.
- Дата: 5-01-2015, 21:42