Классы коллекций


Классы коллекций

Но если бы у нас был массив архивируемых объектов, например класса FourLines (который мы только что построили), то мы могли бы заархивировать весь массив, архивируя сам экземпляр массива. При архивировании такие классы коллекций, как NSArray, архивируют все объекты, которые они содержат. Поскольку каждый объект, который мы поместили в массив или словарь, соответствует протоколу NSCoding, можем архивировать этот массив или словарь и восстанавливать его так, чтобы все объекты, которые в нем содержались при архивировании, находились и в восстановленном массиве или словаре.

Другими словами, этот подход резко "перевешивает чашу весов" (по крайней мере, если говорить о размере кода). Независимо от того, сколько объектов вы добавите, объем работы по записи этих объектов на диск (в предположении, что вы используете одно файловый вариант сохранения данных) останется тем же. И наоборот, объем работы при использовании списков свойств увеличивается с каждым добавляемым вами объектом.

Использование встроенной в iOS базы данных SQLite3

Третий вариант обеспечения персистентности данных, который мы рассмотрим, состоит в использовании встроенной в iOS SQL-базы данных SQLite3. База данных SQLite3 отличается высокой эффективностью при сохранении и извлечении больших объемов данных. Она также может выполнять сложные операции по агрегированию данных, причем гораздо с большим быстродействием по сравнению с использованием с той же целью объектов.

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

Наконец, воспользуемся редактором Interface Builder для создания экземпляра нашего корневого контроллера и соединим его с тем выходом, который только что создали.
  • Дата: 30-12-2014, 10:49

Предыдущие статьи сайта:

Понравилась статья? Ставь лайки, рассказывай друзьям!



Отзывы о статье: Классы коллекций

Технологии, секреты и фишки Apple: Iphone, iPad, iPod