Problema de memória estranha
-
25-09-2019 - |
Pergunta
Em algum momento, alquei um elemento nsmutabledata como este:
NSMutableData* data=[[NSMutableData alloc] initWithLength:0];
Mais tarde, eu faço:
NSString *dataAsStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] ;
completeCommand = [NSString stringWithFormat:@"%@%@",
incompleteMessage,
[dataAsStr substringWithRange:NSMakeRange(startIndex, i-startIndex)]];
[incompleteMessage release];
incompleteMessage = nil;
[dataAsStr release];
E finalmente eu ligo:
[data release]; //Here I get a BAD_ACCESS error since data gets a release count of -1
Agora, de acordo com os instrumentos (alocações com suporte de zumbis), a primeira linha do segundo bloco NSString *DataAsstring = ... Chamadas [liberação de dados
Onde isso acontece?
Solução
O Mistery é resolvido. É um método bastante grande, então eu não percebi que [liberação de dados]; estava em um loop e seu aloc não estava. Isso estava causando o zumbi.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow