Message sent do deallocated instance??

  • Message sent do deallocated instance??

    Hi,

    ich habe folgendes Problem. Es scheint so, als ob mein XCode Projekt inkonsistent oder defekt o.ä. ist, jedenfalls kann ich mir den Fehler nicht erklären.

    Ich habe den genauen Code leider nicht bei mir, da mein Mac bei der Arbeit steht. Allerdings sieht es ungefähr wie folgt aus:
    Es gibt bei mir im App Delegate eine Methode, die kleine "Pixel URLs" abschickt (mit denen ich Statistiken über die Nutzung meiner App erfasse).
    Jedenfalls funktioniert dies so, dass - im jeweiligen Codesegment wo der Pixel abgeschickt werden soll - die Parameter erzeugt werden und die URL als String generiert wird.
    Anschließend wird diese URL einer Methode im App Delegate zugeschickt, die sinngemäß so lautet:

    Quellcode

    1. - (void) sendPixelUrl:(NSString *)url {
    2. NSLog(@"Pixel-URL: %@", url);
    3. NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
    4. [[[NSURLConnection alloc] initWithRequest:request delegate:nil startImmediately:YES] autorelease];
    5. }


    Diese Methode funktioniert wunderbar, bzw. hat es bisher lange Zeit sehr gut. Jetzt habe ich das Problem, dass ich in der Zeile 2 (NSLog-Zeile) eine Fehlermeldung
    (mit eingeschaltetem NSZombie) bekomme, die ungefähr lautet:

    Quellcode

    1. "NSString message sent to deallocated instance"


    ... d.h. das Objekt "url" ist scheinbar verschwunden.
    Dieser Fehler passiert nicht bei jedem Aufruf dieser Methode, sondern nur gelegentlich...? Kann es sein, dass das Objekt wegen Low Memory gelöscht wird?
    Eine andere sinnvolle Erklärung kann ich mir hier nicht herleiten...

    Danke für eure Hilfe..
    Maccie!
  • Das Problem wird sich sehr wahrscheinlich in den aufrufenden Methoden von sendPixelUrl: befinden, da das String Objekt dort anscheinend nicht korrekt angelegt wird.

    Wie legst Du also die jeweiligen String Objekte in den aufrufenden Methoden von sendPixelUrl: an und hast Du dort evtl. bei der Initialisierung der Referenz auf das String Objekt diese nicht auf nil gesetzt?
  • So erfolgt der Aufruf, ganz einfach.

    Quellcode

    1. [APPDELEGATE sendPixelURL:[NSString stringWithFormat:...]]



    Habe das so seit Wochen/Monaten schon im Einsatz und es hat immer funktioniert. Mein Problem ist einfach, dass mein Projekt anscheinend geschrottet ist (anders kann ich es mir nicht erklären) und dann so nicht nachvollziehbare Fehler ausgibt. Ist nicht das erste mal. Bisher habe ich immer ein Backup von vor einigen Tagen wiederherstellen müssen.

    Danke!

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Maccie ()

  • Maccie schrieb:

    Habe das so seit Wochen/Monaten schon im Einsatz und es hat immer funktioniert.

    Ja, das ist sicher ein Fehler in XCode, der nur deinen zu 100% fehlerfreien Programmcode zum Absturz bringt, während alle anderen Programmierer solche Meldungen nur bekommen, wenn sie Unsinn in ihrem Programm gemacht haben.