Perché Clang si lamenta di tutti i miei oggetti rilasciati automaticamente?
-
20-08-2019 - |
Domanda
Ho la seguente funzione:
- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("?=&+/\r\n"),
kCFStringEncodingUTF8
);
return [result autorelease];
}
Perché Clang mi sta dando le seguenti lamentele?
- 1 chiamata alla funzione 'CFURLCreateStringByAddingPercentEscapes' restituisce un oggetto Core Foundation con un conteggio di mantenimento +1 (riferimento proprietario)
- 2 oggetto inviato-messaggio di rilascio automatico
- 3 Oggetto restituito al chiamante come riferimento proprietario (conteggio di conservazione singolo trasferito al chiamante)
- 4 Oggetto rilasciato automaticamente: l'oggetto è stato inviato automaticamente, ma l'oggetto ha zero (visibili localmente) conteggi
Per quanto ne so, questo è conforme alle linee guida di Apple relative alla gestione della memoria e alla proprietà degli oggetti. Devo rilasciare esplicitamente l'oggetto? Questo errore è emerso 19 volte nel mio progetto, il tutto in circostanze simili. Cosa sto sbagliando?
Soluzione
Ho trovato la risposta alla mia domanda, pubblicandola qui se qualcun altro si imbatte nel problema. Stavo usando checker-0.198, checker-0.204 non riporta questo problema. Sembra sia stata una regressione temporanea.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow