J'ai un problème que j'obtiens EX_BAD_ACCESS lors de l'appel de la libération sur un objet NSStream dans mon dealloc sur l'iPhone.Objective-C sur iPhone problème de publication
Le code suivant
- (void)dealloc {
DLog(@"dealloc started for: %@",self);
@synchronized(self) {
lookupCount--;
if (lookupCount==0) {
UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = NO;
}
}
DLog(@"inStream retain count before release: %d",[inStream retainCount]);
[inStream release];
DLog(@"outStream retain count before release: %d",[outStream retainCount]);
[outStream release];
[queryToSend release];
[resultString release];
[data release];
[super dealloc];
NSLog(@"dealloc finsihed for : %@",self);
}
des collisions avec EX_BAD_ACCESS sur le [communiqué de outstream]; ligne.
sortie du journal se présente comme suit
2009-04-29 13:16:28.547 App[30580:20b] -[SimpleQuery dealloc] [Line 160] dealloc started for: <SimpleQuery: 0x56e540>
2009-04-29 13:16:28.547 App[30580:20b] -[SimpleQuery dealloc] [Line 168] inStream retain count before release: 1
2009-04-29 13:16:28.548 App[30580:20b] -[SimpleQuery dealloc] [Line 170] outStream retain count before release: 1
Vous vous demandez si quelqu'un a des idées pour lesquelles cela pourrait être?
Pouvez-vous publier comment créez-vous votre objet inStream? Il se peut que l'objet ait été auto-libéré par une autre méthode, et c'est pourquoi il échoue lorsque vous essayez de le libérer. – pgb
Il est créé par un appel à getStreamsToHostNamed: port: inputStream: outputStream: qui ne devrait pas retourner les objets auto-libérés Je ne pense pas –