objective-c - property - swift core data model class




Dati principali "seleziona le proprietà scalari per i tipi di dati primitivi" (2)

Quando dovrei controllare "usa le proprietà scalari per i tipi di dati primitivi" durante la creazione NSManagedObject oggetti NSManagedObject ?
Quanto mi costerà (la mia base di dati migliorerà le prestazioni o sarà più leggera)?


I dati principali supportano molti tipi di dati comuni come interi, float, booleani e così via. Tuttavia, per impostazione predefinita, l'editor del modello dati genera questi attributi come proprietà NSNumber nelle sottoclassi degli oggetti gestiti. Ciò si traduce spesso in infinite floatValue , boolValue , integerValue o chiamate simili su questi oggetti NSNumber nel codice dell'applicazione.

Ma possiamo anche solo specificare quelle proprietà con il loro tipo scalare corretto, ad esempio int64_t , float_t o BOOL , e funzionerà con i dati principali. Xcode ha anche una piccola casella di controllo nella NSManagedObject di NSManagedObject generatore NSManagedObject ("Usa le proprietà scalari per i tipi di dati primitivi") che fa questo per te.

Fonte: objc.io - Modelli di dati e oggetti del modello


Prima che le proprietà scalari di iOS 5 e OSX 10.7 non possano essere generate automaticamente e si debbano aggiungere implementazioni setter e getter, che causano alcune penalità. Le proprietà generate automaticamente sono ottimizzate. Non sono a conoscenza di altre sanzioni.

Le proprietà scalari e non scalari sono rappresentate dagli stessi tipi nel DB, quindi non ci saranno cambiamenti nelle dimensioni del DB.

Dovresti scegliere quando usare lo scalare a seconda del modo in cui accedi a queste proprietà. Ad esempio, sarà necessario racchiudere le proprietà scalari nell'oggetto cacao se si desidera aggiungerli alla raccolta (NSArray, NSSet, NSDictionary).





core-data