Cette question fait suite à une question previous. Cependant, stackoverflow me présente des commentaires - comme cela m'empêche parfois de donner une réponse correcte à ma propre question.La suppression de conserver de l'application bloque l'application même si la propriété est définie pour conserver
De toute façon, j'ai un peu d'étrangeté qui se passe dans mon application. J'ai une propriété:
@property (nonatomic, retain) NSMutableArray *hotelList; //I also synthesize it
Voilà comment je suis en train de la propriété:
- (void)populateHotelList
{
SearchWebServiceController *searchWS = [[SearchWebServiceController alloc]init];
//If I remove this retain the App crashes
hotelList = [[searchWS getHotelsByRegionCode:@"12345" AndByKid:@"12345"] retain];
[searchWS release];
}
Toutefois, si je retire la retienne mes application se bloque. Mais selon la documentation d'Apple, je ne devrais pas besoin de le conserver ?!
Ceci est la mise en œuvre de la méthode:
- (NSMutableArray *)getHotelsByRegionCode:(NSString *)regionCode
AndByKid:(NSString *)Kid
{
NSMutableArray *result = [[NSMutableArray alloc]init];
...
return [result autorelease];
}
Quelqu'un peut-il s'il vous plaît aider!
Mais ses 2 classes différentes. Donc la classe appelée l'autoeleasing et la classe appelante le conserve? Pouvez-vous expliquer si vous avez une chance? – TheLearner
La propriété possède également un attribut retain – TheLearner
Il est normal que ces classes soient différentes car l'objet avec lequel elles travaillent est le même, de sorte qu'elles affectent le même compteur de rétention. Cependant, le fait que la propriété soit conservée rend ma publication incorrecte. Cela signifie également que le problème n'est pas dans le code que vous avez publié. Pouvez-vous dire où exactement le code échoue sans retenir? – spbfox