J'ai une classe de données très basique qui est sous-classée à partir de NSObject. Je déclare quelques chaînes, m'assure qu'elles ont des propriétés (nonatomic, copy), et les synthétise. La seule méthode que j'ai implémentée était dealloc() qui libère mes chaînes. Est-ce que des problèmes de mémoire peuvent surgir de cela? Y a-t-il d'autres méthodes à mettre en place?Sous-classe NSObject, peut-elle causer des problèmes?
Répondre
Sous-classe NSObject est quelque chose que nous faisons tout le temps. Suivez simplement les règles de gestion de la mémoire, et vous êtes prêt à partir.
Vous pouvez implémenter un init personnalisé si vous voulez configurer quelque chose.
-(id)init {
if (!(self = [super init]))
return nil;
// Set things up you might need setting up.
return self;
}
Mais seulement si vous voulez que quelque chose soit prêt avant d'appeler quoi que ce soit d'autre sur la classe. Juste avoir une méthode dealloc devrait être bien, sinon.
Il n'y aura pas de problème. Sous-classement NSObject
est parfaitement accepté, et dans 99% des cas requis.
En sous-classe NSObject
, votre sous-classe reçoit tout le comportement requis attendu de tout objet dans Cocoa/Cocoa Touch. Cela inclut des choses comme le système de gestion de la mémoire de comptage de référence utilisant retain
et release
etc.
Ce que vous faites est bien. Assurez-vous de composer le [super dealloc]
à la fin de la méthode -dealloc
de votre sous-classe.