Was ist der richtige Punkt, an dem ein NSUrlConnection-Objekt freigegeben wird?
In meinem Programm weise ich eine NSUrlConnection und dann initWithRequest zu, um asynchron zu starten.
Ich bin jetzt verantwortlich für die Freigabe des Objekts - wann kann / kann ich es freigeben? Sofort, wenn ich es nicht wieder benutze?
Wenn Sie mit dem NSURLConnection
fertig sind. Sie wissen, dass Sie damit fertig sind, wenn Ihr NSURLConnection
Delegat - (void)connectionDidFinishLoading:(NSURLConnection *)connection
oder - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
erhält. Gib es einfach am Ende dieser beiden Methoden frei.
Dies ist ein bisschen spät (Ihre Frage wurde 2009 vor über einem Jahr veröffentlicht), aber ich hatte einige Probleme mit meinem NSUrlConnection-Code. NSUrlConnection stürzte immer weiter ab und ich dachte der Absturz war mit meiner Veröffentlichung von NSUrlConnection [theConnection release];
verbunden. Ich schrieb meinen Code wie in Apples Beispiel hier , Aber ich habe die Verbindung nach der Erstellung in "Listing 1" freigegeben, anstatt sie dort zu veröffentlichen, wo Apple sowohl in didFailWithError
als auch in connectionDidFinishLoading
funktioniert und es scheint gut zu funktionieren. Ich bin mir nicht ganz sicher, aber vielleicht wurden beide Delegierten angerufen, und eine Doppelfreigabe war der Grund für den Absturz. Ich war mir nicht sicher, ob ich mein NSUrlConnection-Objekt direkt nach der Erstellung freigeben konnte, bis ich diese Frage gelesen hatte, aber das schien den Trick zu machen.
Tags und Links iphone