У "Основних даних" немає "рідного" масиву чи типу словника. Ви можете зберігати NSArray
або NSDictionary
як атрибут, що перетворюється. Це використовуватиме NSCoding
серіалізацію масиву чи словника до NSData
атрибуту (та належним чином дезаріалізувати його при доступі). Перевага такого підходу полягає в тому, що це легко. Мінус полягає в тому, що ви не можете запитувати в масив чи словник (він зберігається як BLOB у сховищі даних), і якщо колекції є великими, можливо, вам доведеться перемістити багато даних у / із сховища даних (якщо це сховище даних SQLite) просто для читання або зміни невеликої частини колекції.
Альтернативою є використання базових відносин Core Data для багатьох моделей семантики масиву або колекції словників. Масиви простіші, тому давайте почнемо з цього. Взаємозв'язки "Основні дані" для багатьох дійсно моделюють набір, тому якщо вам потрібна функція, схожа на масив, вам доведеться або сортувати набір (використання вилученого властивості - це зручний спосіб зробити це), або додати додатковий атрибут індексу сутності що зберігає елементи масиву та керує індексами самостійно. Якщо ви зберігаєте однорідний масив (усі записи одного типу), легко моделювати опис сутності для об'єктів масиву. Якщо ні, то вам доведеться вирішити, чи використовувати атрибут, що трансформується, для зберігання даних про об'єкт або створення сімейства об'єктів елементів.
Моделювання словника, ймовірно, потребуватиме багато відношення до набору сутностей, що зберігає ключ і значення. І ключ, і значення аналогічні об'єкту елемента для масиву, описаному вище. Таким чином вони можуть бути або власними типами (якщо ви їх знаєте достроково), атрибутом, що перетворюється, або відношенням до екземпляра з родини сукупностей, характерних для типу.
Якщо все це звучить трохи непросто, це так. Встановлення довільних даних у схему, залежну від схеми, як Core Data, є жорсткою.
Для структурованих даних, таких як адреси, майже завжди простіше витратити час на чітке моделювання об'єктів (наприклад, атрибут для кожної частини адреси). Окрім уникнення всього зайвого коду для моделювання словника, це полегшує ваш інтерфейс користувача (прив’язки будуть просто працювати), а логіка валідації тощо набагато чіткіше, оскільки велика частина з них може оброблятися основними даними.
Оновлення
Станом на ОС X 10.7, Основні дані включають впорядкований тип набору, який можна використовувати замість масиву. Якщо ви можете націлити на 10.7 або новішої версії, це найкраще рішення для упорядкованих (схожих на масив) колекцій.