J'essaie de trouver un moyen de stocker un CGPoint dans une base de données Core. Après avoir parcouru les pages, j'ai trouvé quelque part qu'une façon de le faire serait d'avoir une Entité (Point2D dans mon cas) avec les attributs x et y. Les deux flottants sont mappés à NSNumber.Stocker efficacement CGPoint dans les données de base
Le problème est que pour obtenir le point de retour, j'ai la méthode suivante de mon Point2D NSManagedObject sublass:
- (CGPoint) cgPointValue {
return CGPointMake([self.x floatValue], [self.y floatValue]);
}
Et cela fonctionne, mais comme je l'ai beaucoup de points, il semble être monopolisant le CPU.
Je me demande s'il existe un moyen plus efficace de le faire.
Ok, merci. Je l'ai en quelque sorte fixé le CGPoint généré dans un ivar (NSValue) et vérifié s'il existait avant de le générer de nouveau. Puis sur willChangeValueForKey: J'ai mis l'ivar à zéro. Alors maintenant, il ne le génère que quand il change. – Odrakir