Wert gespeichert, bei der Initialisierung ist nie gelesen
Ich versuche um ein Spiel zu erstellen, so dass ich die Daten zu ändern und speichern Sie es zurück. Ich bekomme zwei Fehlermeldungen, die auf den kommentierten Zeilen. Warum bekomme ich diese Fehler. Ich zugeteilt dem Spiel, so dass ich haben sollte, um es loslassen zu korrigieren. Hier ist mein code zum speichern mein Spiel
Game *newGame = [[Game alloc] init];//error 1
newGame = [gamesArray objectAtIndex:gameNumber];
[newGame setTheShotArray:shotArray];
[gamesArray replaceObjectAtIndex:gameNumber withObject:newGame];
NSString *path = [self findGamesPath];
[NSKeyedArchiver archiveRootObject:gamesArray toFile:path];
[newGame release];//error 2
Bekomme ich Fehler 1 was sagt der Wert gespeichert, um 'newGame" während der Initialisierung wird nie gelesen.
Die zweite Fehlermeldung sagt, Falsche dekrementiert den Verweiszähler eines Objekts, das Ihnen nicht gehört, an dieser Stelle den Anrufer.
Was bedeutet das? Und bitte erzählen Sie mir nicht, Sie brauchen, um zu Lesen, bis auf die memory-management und gib mir einfach einen link. Sagen Sie mir, wie das problem zu beheben bitte.
InformationsquelleAutor Blane Townsend | 2011-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine neue Instanz und du es selbst, da hast du verwendet
+alloc
.Erhalten Sie eine weitere Instanz von
gamesArray
und weisen Sie auf die gleiche variable verwendet wurde, die in der vorherigen Zeile. Dies bedeutet, dass Sie verloren haben, den Bezug zu dem vorherigen Objekt und, da Sie selbst das Vorherige Objekt, Sie sind verantwortlich für die Freigabe. Sie nicht, Sie sind also undicht, Objekt.Zu diesem Zeitpunkt
newGame
Punkte, um die Instanz über vongamesArray
. Sie nicht besitzen, da Sie noch nicht erhalten es über NARC, daher sollten Sie nicht frei.NARC: eine Methode, deren name enthält
new
,alloc
,copy
oder istretain
.Bottom line: Sie sind undicht, das Objekt, das Sie erstellt haben, via
+alloc
und Sie versuchen, ein Objekt freigeben, die Sie nicht besitzen.InformationsquelleAutor