Утечка памяти при использовании члена класса - PullRequest
0 голосов
/ 05 октября 2011

Я использую член класса с именем "soapResults" при подключении к веб-сервису.Я использую синтаксический анализатор для анализа результатов XML (это результат JSON внутри веб-службы).

- (void) parser:(NSXMLParser *) parser
         didStartElement:(NSString *) elementName
         namespaceURI:(NSString *) namespaceURI
         qualifiedName:(NSString *) qName
         attributes:(NSDictionary *) attributeDict {
NSString *attName = [[NSString alloc]initWithFormat:@"%@Result",methodName];
if ([elementName isEqualToString:attName]) {        
    if (!soapResults) {         
        soapResults = [[NSMutableString alloc] init];   
    }       
    elementFound = YES;     
}

[attName release];
}   

Теперь soapResults является сохраняемым участником и выпущен в dealloc.Я пытался освободить это в связи сбой / проход, но не удалось.Я также пытался вообще его не распределять, но тогда я получаю пустые результаты .... Любая помощь будет оценена

Ответы [ 2 ]

2 голосов
/ 05 октября 2011

Если свойство soapResults является сохраняемым, вы должны изменить

soapResults = [[NSMutableString alloc] init];  

на

self.soapResults = [NSMutableString string]; 

Это освобождает старое значение и сохраняет новое, избегая утечек.

0 голосов
/ 05 октября 2011

Вы размещаете soapResults = [[NSMutableString alloc] init]; здесь, но я не вижу никакой версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...