1
Je subclassed NSObject:Les propriétés doivent-elles être désaffectées?
#import <Foundation/Foundation.h>
@interface STObject : NSObject {
NSString *message_type;
NSString *twitter_in_reply_to_screen_name;
}
@property(nonatomic, copy) NSString *message_type;
@property(nonatomic, copy) NSString *twitter_in_reply_to_screen_name;
@end
Ma mise en œuvre ressemble:
#import "STObject.h"
@implementation STObject
@synthesize message_type, twitter_in_reply_to_screen_name;
@end
Ai-je besoin de créer une méthode dealloc pour mes deux propriétés où je libérer les chaînes?
Ou, de manière équivalente, 'self.message_type = nil; self.twitter_in_reply_to_screen_name = nil; ' –
Je préfère libérer les variables d'instance, car votre programme va exploser si vous faites référence à l'ivar après son désallocation; par conséquent, définir comme «néant» empêchera votre programme d'exploser, mais il cachera également les bogues. –
Jonathan Sterling: C'est seulement un problème si vous le faites * après * l'envoi de [super dealloc] ', et c'est un problème de quelque façon que vous le fassiez. La bonne solution consiste à envoyer vous-même les messages 'release' (ne pas utiliser les propriétés, au cas où les accesseurs - qui peuvent avoir été remplacés - ne sont pas purs http://developer.apple.com/mac/library/documentation/DeveloperTools/gcc -4.0.1/gcc/Fonction-Attributs.html # index-g_t_0040code_007bpure_007d-function-attribute-1206) et faire '[super dealloc]' dernier. –