46 votes

Case à cocher Core Data "utiliser les propriétés scalaires pour les types de données primitifs".

Quand dois-je cocher la case "utiliser les propriétés scalaires pour les types de données primitifs" lors de la création d'une base de données ? NSManagedObject des objets ?
Ce que cela va me coûter (ma base de données va-t-elle améliorer ses performances ou être plus légère) ?

47voto

Evgeny Shurakov Points 3392

Avant iOS 5 et OSX 10.7, les propriétés scalaires ne pouvaient pas être générées automatiquement et vous deviez ajouter des implémentations setter et getter, ce qui entraînait des pénalités. Les propriétés auto-générées sont optimisées. Je ne suis pas au courant d'autres pénalités.

Les propriétés scalaires et non scalaires sont représentées par les mêmes types dans la BD, il n'y aura donc aucun changement dans la taille de la BD.

Vous devez choisir quand utiliser scalaire en fonction de la façon dont vous allez accéder à ces propriétés. Par exemple, vous devrez envelopper les propriétés scalaires dans un objet cacao si vous comptez les ajouter à une collection (NSArray, NSSet, NSDictionary).

29voto

Perry Points 19

Core Data prend en charge de nombreux types de données courants tels que les entiers, les flottants, les booléens, etc. Cependant, par défaut, l'éditeur de modèle de données génère ces attributs sous la forme de NSNumber dans les sous-classes de l'objet géré. Il en résulte souvent d'interminables floatValue , boolValue , integerValue ou des appels similaires sur ces NSNumber dans le code de l'application.

Mais nous pouvons aussi simplement spécifier ces propriétés avec leur type scalaire correct, par exemple sous la forme suivante int64_t , float_t o BOOL et il fonctionnera avec Core Data. Xcode a même une petite case à cocher dans la boîte de dialogue de sauvegarde de l'application NSManagedObject ("Use scalar properties for primitive data types") qui fait cela pour vous.

Source : objc.io - Modèles de données et objets modèles

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X