3 Stimmen

Potenzielles Leck eines im iphone zugewiesenen Objekts

In meiner Anwendung verwende ich folgenden Code: -

NSArray* toolbarItems = [NSArray arrayWithObjects:
                             [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)], nil];
    [toolbarItems makeObjectsPerformSelector:@selector(release)];

Dazu zeigt er das potentielle Leck eines Objekts an.

5voto

Dave DeLong Punkte 240835

Ja, das ist ein potenzielles Leck, denn Sie haben eine UIBarButtonItem die Sie besaßen (da Sie die alloc ), verlor aber den Verweis darauf, indem er ihn direkt in das Array einfügte. Daher meldet der Analyzer, dass Sie es verloren haben.

Außerdem ist der Code schrecklich . Ich kann mich nicht erinnern jede Situation, in der Sie jemals etwas tun wollen. [anArray makeObjectsPerformSelector:@selector(release)];

1voto

Zion Punkte 185

Wenn Sie ein Array mit arrayWith... erstellen, wird das Objekt automatisch freigegeben, so dass Sie das Objekt nicht freigeben müssen. Sie müssen es freigeben, wenn Sie Objekte mit dem Stil [[alloc] init] erstellen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X