Memory Leak NSDictionary
-
-
Das ist im Code in der Tat doppelt, der Code läuft aber nur, wenn ich beides weglasse. Wenn ich Autorelease ODER release ausführe, gibt es einen Crash.
gritsch schrieb:
du machst bisher autorelease UND release. eins von beiden reicht aber!
wenn du das aber nicht weist/verstehst dann solltest du wirklich was einführendes lesen -
klawitter schrieb:
Das ist im Code in der Tat doppelt, der Code läuft aber nur, wenn ich beides weglasse. Wenn ich Autorelease ODER release ausführe, gibt es einen Crash.gritsch schrieb:
du machst bisher autorelease UND release. eins von beiden reicht aber!
wenn du das aber nicht weist/verstehst dann solltest du wirklich was einführendes lesen
im eingangsthread sagst du aber ganz was anderes!? -
Danke für den Hinweis, ich habe den Text korrigiert - Asche über mein Haupt.
gritsch schrieb:
klawitter schrieb:
Das ist im Code in der Tat doppelt, der Code läuft aber nur, wenn ich beides weglasse. Wenn ich Autorelease ODER release ausführe, gibt es einen Crash.gritsch schrieb:
du machst bisher autorelease UND release. eins von beiden reicht aber!
wenn du das aber nicht weist/verstehst dann solltest du wirklich was einführendes lesen
im eingangsthread sagst du aber ganz was anderes!?
der Code läuft aber nur, wenn ich beides weglasse. Wenn ich Autorelease ODER release ausführe, gibt es einen Crash.
-
klawitter schrieb:
Danke für den Hinweis, ich habe den Text korrigiert - Asche über mein Haupt.gritsch schrieb:
klawitter schrieb:
Das ist im Code in der Tat doppelt, der Code läuft aber nur, wenn ich beides weglasse. Wenn ich Autorelease ODER release ausführe, gibt es einen Crash.gritsch schrieb:
du machst bisher autorelease UND release. eins von beiden reicht aber!
wenn du das aber nicht weist/verstehst dann solltest du wirklich was einführendes lesen
im eingangsthread sagst du aber ganz was anderes!?
der Code läuft aber nur, wenn ich beides weglasse. Wenn ich Autorelease ODER release ausführe, gibt es einen Crash.
dann hast du irgendwo anders einen bug. -
Also ich mir nicht sicher ob ich dem Wirrwarr zu so später Stunde noch folgen kann, aaaaaber....
Die Von Dir verwendete Methode
NSDictionary *temp =[[NSDictionary alloc] initWithObjectsAndKeys:animals,@"A",animals2,@"B",nil];
beinhaltet ein implizites Autorelease. Du schreibst da selbst keines mehr hin.
Der Release erfolgt zu gegebener Zeit durch den Autorelease Pool. -
stef schrieb:
Also ich mir nicht sicher ob ich dem Wirrwarr zu so später Stunde noch folgen kann, aaaaaber....
Die Von Dir verwendete Methode
NSDictionary *temp =[[NSDictionary alloc] initWithObjectsAndKeys:animals,@"A",animals2,@"B",nil];
beinhaltet ein implizites Autorelease. Du schreibst da selbst keines mehr hin.
Der Release erfolgt zu gegebener Zeit durch den Autorelease Pool.
nein, da ist kein implizites dabei (methode beginnt mit INIT) aber er hat eines dabei! -
ichich dachte, zu jedem Alloc gehört auch ein release oder ein autorelease?
stef schrieb:
Also ich mir nicht sicher ob ich dem Wirrwarr zu so später Stunde noch folgen kann, aaaaaber....
Die Von Dir verwendete Methode
NSDictionary *temp =[[NSDictionary alloc] initWithObjectsAndKeys:animals,@"A",animals2,@"B",nil];
beinhaltet ein implizites Autorelease. Du schreibst da selbst keines mehr hin.
Der Release erfolgt zu gegebener Zeit durch den Autorelease Pool. -
klawitter schrieb:
ichich dachte, zu jedem Alloc gehört auch ein release oder ein autorelease?stef schrieb:
Also ich mir nicht sicher ob ich dem Wirrwarr zu so später Stunde noch folgen kann, aaaaaber....
Die Von Dir verwendete Methode
NSDictionary *temp =[[NSDictionary alloc] initWithObjectsAndKeys:animals,@"A",animals2,@"B",nil];
beinhaltet ein implizites Autorelease. Du schreibst da selbst keines mehr hin.
Der Release erfolgt zu gegebener Zeit durch den Autorelease Pool.
ist auch so. seine aussage war falsch. -
War zu spät. Ist natürlich kein implizites autorelease dabei.
-
klawitter schrieb:
Hallo Experten,
ich habe ein Memory-Problem, das mich nicht loslässt, bin für Eure Hilfe dankbar.
Hier ist der Code:
Probiere mal so:
-
ramo schrieb:
klawitter schrieb:
Hallo Experten,
ich habe ein Memory-Problem, das mich nicht loslässt, bin für Eure Hilfe dankbar.
Hier ist der Code:
Probiere mal so:
ramo schrieb:
danke, das hat funktioniert.klawitter schrieb:
Hallo Experten,
ich habe ein Memory-Problem, das mich nicht loslässt, bin für Eure Hilfe dankbar.
Hier ist der Code:
Probiere mal so:
-
?
-
_____________________________
Alle Angaben ohne Gewähr
On the internet you can be anything you want. It's strange that so many people choose to be stupid.
Superbientem animus prosternet -
ja
-
Warum dann ein Fragezeichen und wo bleibt die Lösung für die Nachwelt ?_____________________________
Alle Angaben ohne Gewähr
On the internet you can be anything you want. It's strange that so many people choose to be stupid.
Superbientem animus prosternet -
-
NSDictionary *aDict = [[NSDictionary alloc] initWith .. whatsoever]; retainCount = 1
(ab hier ist es Dein Object und Du kümmerst Dich darum)
self.anotherVariable = aDict; retainCount = 2
[aDict release]; retainCount = 1
fertig
@property(nonatomic, retain) NSDictionary *anotherVariable;
@synthesize anotherVariable;
- (void)dealloc {
[anotherVariable release];
} -
HHuckebein schrieb:
NSDictionary *aDict = [[NSDictionary alloc] initWith .. whatsoever]; retainCount = 1
(ab hier ist es Dein Object und Du kümmerst Dich darum)
self.anotherVariable = aDict; retainCount = 2
[aDict release]; retainCount = 1
fertig
@property(nonatomic, retain) NSDictionary *anotherVariable;
@synthesize anotherVariable;
- (void)dealloc {
[anotherVariable release];
}
Danke, so habe ich es gemacht, das läuft.
Der Fehler lag daran, dass ich in einer Klasse in
- (void)dealloc {
das
[super dealloc];
nicht an das Ende der Methode, sondern an den Anfang gestellt habe.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Erich H. ()
-
Tags