Подтвердить что ты не робот

Основные данные "используют скалярные свойства для примитивных типов данных".

Когда я должен проверять "использовать скалярные свойства для примитивных типов данных" во время создания объектов NSManagedObject?
Что это будет стоить мне (улучшит ли моя база данных производительность или станет более легким)?

4b9b3361

Ответ 1

До того, как скалярные свойства iOS 5 и OSX 10.7 не могут быть автоматически сгенерированы, вам необходимо добавить реализаторы сеттера и геттера, которые вызывают некоторое наказание. Оптимизированы автоматически генерируемые свойства. Я не знаю никаких других наказаний.

Скалярные и нескалярные свойства представлены теми же типами в БД, поэтому изменений в размере БД не будет.  

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

Ответ 2

Core Data поддерживает многие распространенные типы данных, такие как целые числа, float, booleans и т.д. Однако по умолчанию редактор модели данных генерирует эти атрибуты как свойства NSNumber в подклассах управляемых объектов. Это часто приводит к бесконечным floatValue, boolValue, integerValue или аналогичным вызовам этих NSNumber объектов в коде приложения.

Но мы также можем просто указать эти свойства с их правильным скалярным типом, например. как int64_t, float_t или BOOL, и он будет работать с Core Data. Xcode даже имеет небольшой флажок в диалоговом окне сохранения генератора NSManagedObject ( "Использовать скалярные свойства для примитивных типов данных" ), который делает это для вас.

Источник: objc.io - Модели данных и объекты модели