Список пойманных преступников
Пора заполнять список пойманных преступников! Для этого мы сначала приведем это представление в соответствие с общим списком преступников, а затем отфильтруем список до нужного подмножества.
Пометьте некоторых преступников как пойманных.
Постройте и запустите старую версию приложения. Прежде чем вносить какие-либо изменения, установите у нескольких преступников флаг поимки. Это нам понадобится для тестирования.
Приведите представление Captured в соответствие с представлением Fugitive.
На последних страницах прошлой статьи мы так и не заполнили список пойманных преступников. Так как он будет получен фильтрацией общего списка, проще всего начать с полного списка, а затем добавить код фильтрации. Не забудьте о источнике данных табличного представления и методах делегатов.
Добавьте код предиката.
Измените объект NSFetchRequest, чтобы он использовал NSPredicate и находил только пойманных преступников. Изменения вносятся в методе viewWillAppear в файле CapturedViewController.m.
Вероятно, вы узнаете код из статьи написанной нами раньше, обеспечивающий работу представления Captured. Добавьте в него предикат для фильтрации данных.
Пометьте некоторых преступников как пойманных. Приведите представление Captured В соотВетстВие с представлением Fugitive.
Работает! В списке перечислены пять преступников, которых мы пометили как пойманных.
Погодите, но ведь вы говорили, что нам нужно обращать внимание на затраты памяти, быстродействие и все такое. А теперь в приложении используются два массива, и мы перезагружаем их каждый раз, когда представление отображается на экране. Выглядит довольно глупо. Нельзя ли переместить этот код в viewDidLoad, чтобы он выполнялся только один раз для каждого представления?
Правда, код можно сделать более эффективным.
Но только не перемещением в viewDidLoad. Перемещение кода только создаст две новые проблемы. Нужно найти другое решение.
С какими проблемами мы столкнемся при перемещении кода выборки в viewDidLoad? Что еще можно сделать для повышения быстродействия?
Классы контроллеров Core Data обеспечивают эффективную обработку результатов.
Код FugitiveListViewController и CapturedListViewController находится в viewWillAppear. К сожалению, метод viewWillAppear вызывается при каждом отображении представления; это означает, что данные всех преступников (как пойманных, так и разыскиваемых) будут перезагружаться каждый раз независимо от того, изменялся список или нет.
У всех у нас есть входные двери в квартирах и частный домах. Но все ли задумывались о красоте и индивидуальности наших дверей. Так вот, для этого и делается металлическая http://www.servislock.ru/uslugi/obivka_door/, быстро и недорого.
- Дата: 4-01-2015, 23:56