Comme je ne peux pas créer une propriété synthétisée dans une catégorie en Objective-C, je ne sais pas comment optimiser le code suivant :
@interface MyClass (Variant)
@property (nonatomic, strong) NSString *test;
@end
@implementation MyClass (Variant)
@dynamic test;
- (NSString *)test {
NSString *res;
//do a lot of stuff
return res;
}
@end
Le site méthode d'essai est appelé plusieurs fois lors de l'exécution et je fais beaucoup de choses pour calculer le résultat. Normalement, en utilisant une propriété synthétisée, je stocke la valeur dans un IVar _test la première fois que la méthode est appelée, et je retourne cet IVar la fois suivante. Comment puis-je optimiser le code ci-dessus ?
2 votes
Pourquoi ne pas faire ce que vous faites normalement, mais au lieu d'une catégorie, ajouter la propriété à une classe de base MyClass ? Et pour aller plus loin, effectuez vos tâches lourdes en arrière-plan et faites en sorte que le processus déclenche une notification ou appelle un gestionnaire pour MyClass lorsque le processus est terminé.
4 votes
MyClass est une classe générée à partir de Core Data. Si je mets mon code objet personnalisé dans la classe générée, il disparaîtra si je régénère la classe à partir de mes données de base. Pour cette raison, j'utilise une catégorie.
1 votes
Acceptez peut-être la question qui correspond le mieux au titre ("Propriété dans la catégorie").
0 votes
Pourquoi ne pas simplement créer une sous-classe ?