Objective-C: Propriété / variable d'instance dans la catégorie

Que je ne peux pas créer un synthétisé propriété dans une Catégorie Objective-C, je ne sais pas comment faire pour 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

La d'essai-méthode est appelé plusieurs fois l'exécution et que je fais beaucoup de choses pour calculer le résultat. Normalement à l'aide d'un synthétisé bien je stocker la valeur dans un IVar _test la première fois, la méthode est appelée, et juste retour de ce IVar la prochaine fois. Comment j'ai optimisé le code ci-dessus?

  • Pourquoi ne pas faire ce que vous le faites normalement, seulement au lieu d'une catégorie, ajouter la propriété à un MyClass de la classe de base? Et pour aller encore plus loin, effectuez votre lourd sur l'arrière-plan et le processus d'incendie à une notification ou d'appeler un gestionnaire pour MyClass lorsque le processus est terminé.
  • MyClass est une classe générée à partir de Données de Base. Si je mais mon objet personnalisé code à l'intérieur de la classe générée, celle-ci disparaîtrait si je régénérer la classe à partir de ma Base de Données. De ce fait, je suis en utilisant une catégorie.
  • Peut-être accepter la question qui s'applique le mieux pour le titre? ("De la propriété dans la catégorie")
  • Pourquoi ne pas créer une sous-classe?
InformationsquelleAutor dhrm | 2012-01-04