J'ai cette classe dans DNS.hlibérer
@interface DNS : NSObject <NSXMLParserDelegate, NSNetServiceDelegate> {
NSMutableArray *servsPublished;
}
@property(nonatomic, retain) NSMutableArray *servsPublished;
Ensuite, dans le mise en œuvre DNS.m il y a une méthode où je le libère et je reçois l'erreur de mémoire mauvaise exec. Ceci est la méthode, il est conforme au protocole NSXMLParserDelegate
-(void) parserDidEndDocument:(NSXMLParser *)parser {
NSNetService *client;
for (NSDictionary *aService in servToPublish) {
client = [[NSNetService alloc] initWithDomain:@"local"
type:[aService objectForKey:@"serviceType"]
name:[aService objectForKey:@"name"]
port: [(NSNumber *)[aService objectForKey:@"port"] intValue]];
[client setDelegate: self];
[client publish];
//release this service and the client
[aService release];
//[client release];
}
//free the array of Dictionary containing the services
[servToPublish release];
}
Peut-être la première pensée est que est nul, mais en fait je l'utiliser dans la méthode de vérifier si est nul ou non, puis le libérer.
Cela a-t-il quelque chose à voir avec la propriété retain? THX.
Libérer nil ne peut pas poser de problème - vous pouvez apparemment envoyer n'importe quel message à zéro. Pourriez-vous poster du code où vous initialisez et où vous libérez votre variable servsPublished? – Vladimir
montrez le code où vous lâchez "it" –
@Robot, oui, ai-je dit quelque chose de différent? – Vladimir