Por que Clang reclamar todos os meus objetos autoreleased?
-
20-08-2019 - |
Pergunta
Eu tenho a seguinte função:
- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("?=&+/\r\n"),
kCFStringEncodingUTF8
);
return [result autorelease];
}
Por que é Clang dando-me as seguintes reclamações?
- 1 Ligue para a função retorna 'CFURLCreateStringByAddingPercentEscapes' um objeto Núcleo Fundação com um +1 manter a contagem (referência possuir)
- 2 Objeto enviou mensagem -autorelease
- 3 Objeto retornou ao chamador como uma referência possuir (single manter a contagem transferido para chamador)
- 4 Object over-autoreleased: objeto foi enviado -autorelease mas o objeto tem zero (localmente visível) reter contagem
Para o melhor de meu conhecimento, este está em conformidade com as diretrizes da Apple em matéria de gestão de memória e propriedade de objeto. Eu tenho que liberar explicitamente o objeto? Este erro surgiu 19 vezes no meu projeto, todas em circunstâncias semelhantes. O que estou fazendo de errado?
Solução
Eu encontrei a resposta à minha pergunta, publicá-la aqui se alguém se depara com a questão. Eu estava usando o verificador-0,198, verificador-0,204 relatórios existe tal problema. Parece que foi uma regressão temporária.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow