J'ai une question sur le fonctionnement des variables d'instance et quand utiliser @property. Voici un exemple de fichier d'interface avec lequel je travailleQuestion sur ivars et @ property's sur l'iPhone
@interface PackageModel : NSObject {
NSString *tracking;
NSString *carrier;
NSString *status;
NSMutableDictionary *events;
// Connection ivars
NSMutableData *receivedData;
// Parsing ivars
int tagLevel;
NSMutableArray *tagTree;
NSString *parentTag;
NSString *currentTag;
}
@property (nonatomic, retain) NSMutableData *receivedData;
- (id)initWithTrackingString:(NSString *)string;
- (void)getPackageDataWithEvents;
- (void)printMe;
@end
Comment puis-je y accéder dans le code du fichier. Puis-je avoir accès à un suivi, le transporteur et l'état dans les méthodes de cette classe juste en utilisant quelque chose comme
tracking = [[NSString alloc] initWithString:@"Hello World"];
En outre, quelles variables doivent être mises en dealloc? Seules les variables que j'ai dans la @ propriété/@ synthétisent? Ou dois-je libérer toutes les variables d'instance dans la méthode dealloc.
Je cherche simplement à savoir comment les variables d'instance fonctionnent en Objective-C. Merci.
Maintenant, pour la currentTag et parentTag j'y ai défini, je les mettre dans les méthodes de délégué NSXMLParser par currentTag = qName. Je n'ai pas besoin de les libérer dans le dealloc parce qu'ils ne sont que des pointeurs vers ces autres cordes, n'est-ce pas? Mais, si je les ai fait @property, je devrais les libérer correctement? – rickharrison
rickharrison: '@ property' n'a rien à voir avec si vous possédez l'objet. Peu importe * comment * vous êtes venu le posséder; Si vous le possédez, vous devez le libérer. Voir les règles de gestion de la mémoire: http://developer.apple.com/mac/library/documentation/General/Conceptual/DevPedia-CocoaCore/MemoryManagement.html –