Метод по умолчанию для встроенного постоянного типа хранения основных данных в Xcode

#core-data #swift4 #swift4.2

#core-data #swift4 #swift4.2

Вопрос:

В соответствии с типами и поведением постоянных хранилищ Apple doc, типы встроенных постоянных хранилищ основных данных: 1. XML 2. Двоичный 3. SQLite 4. В памяти

Мой вопрос в том, какой из них является типом хранилища по умолчанию, когда мы используем модель основных данных в xcode, и как мы можем его изменить

Ответ №1:

Ну, NSPersistentStore это абстрактный базовый класс. Один из его четырех подклассов должен быть специально создан в коде. Итак, на самом деле нет типа хранилища по умолчанию.

Однако существует некоторый код шаблона, который генерируется при выборе одного из новых шаблонов проекта или новых целевых шаблонов в Xcode. В текущей версии (Xcode 10), когда вы включаете флажок Использовать основные данные, вы получаете в AppDelegate реализации lazy var persistentContainer свойство, которое предоставляет одноэлементный NSPersistentContainer объект. По умолчанию это хранилище, которое вы будете использовать в новой цели. Но что это за тип хранилища? Ну, постоянные хранилища a NSPersistentContainer указаны в его persistentStoreDescriptions свойстве array . По умолчанию этот массив содержит одно постоянное хранилище типа SQLite, поддерживаемое файлом в Application Support папке контейнера вашего приложения. Это, в общем, тип хранилища по умолчанию, о котором вы спрашивали.

Процедура изменения этого типа хранилища объясняется в разделе Обсуждения документации NSPersistentContainer.persistentstoredescriptions.

Итак, вы видите, что значение по умолчанию фактически находится в шаблонах проекта Xcode. Чтобы получить то, что вы хотите, вы можете поместить код, который вы написали после прочтения этой документации, в новый шаблон проекта и добавить его в свой ~/Library . Вы можете либо переопределить один из шаблонов проекта по умолчанию, либо создать свой собственный с новым именем. Базовый пример приведен в этом сообщении в блоге Джейка Крейджа. Если вам этого недостаточно, Кит Харрисон опубликовал довольно тщательный анализ шаблонов проектов Xcode.

Комментарии:

1. Спасибо за четкое объяснение