Ich habe die folgende Funktion:Warum klagt Clang über alle meine Autoreleased-Objekte?
- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("?=&+/\r\n"),
kCFStringEncodingUTF8
);
return [result autorelease];
}
Warum ist mir folgende Beschwerden geben Clang?
- 1 Aufruf 'CFURLCreateStringByAddingPercentEscapes' zur Funktion eines Core Foundation kehrt Objekt mit einem +1 behalten count (besitzender Referenz)
- 2 Objekt gesendet -autorelease Nachricht
- 3-Objekt zurückgegeben als ein Verweis auf dem Besitz Anrufer (Einzelzählung Anrufer)
- 4 Objekt überAutoReleased übertragen behalten: Objekt wurde gesendet -autorelease aber das Objekt Null (lokal sichtbar) behalten zählt
um die Soweit ich weiß, entspricht dies den Apple-Richtlinien bezüglich Speicherverwaltung und Objektbesitz. Muss ich das Objekt explizit freigeben? Dieser Fehler ist in meinem Projekt unter ähnlichen Umständen 19 Mal aufgetreten. Was mache ich falsch?
Gute Frage ... Ich habe das gleiche Problem, und ich verstehe auch nicht, was los ist. Vielleicht ist es ein Bug im Klängen ... –
Es könnte sein, aber ich würde das schwer zu glauben, da Autoreleased-Objekte nicht genau obskur sind. Es passiert auch, wenn ich die Autorelease mit dem + alloc und -init verschachtele. –