Hallo zusammen,
ich hab mal ne Frage zum Thema release.
So wie das im Hillegass beschrieben ist, versteh ich es nicht ganz.
In Kapitel 4 heißt es unter der Überschrift "Creating Autoreleased Objects"
Das komische ist, dass es bei mir (unter 10.5) aber doch funktioniert. Ich habe dann über der Zeile
[result release]
folgendes eingefügt:
Das gibt mir jeweils einen retainCount von 1 aus, nach der " [result release]" Nachricht sollte der also 0 sein und der String "deallocated" (gibt es da ein deutsches Wort dafür?) werden.
Das Programm läuft aber dennoch ganz normal und das verstehe ich eben nicht.
Erst wenn ich zwei release Nachrichten an result schicke, gibts einen Laufzeitfehler bei jedem Schleifendurchlauf:
"lottery(28814) malloc: *** error for object 0x108220: double free"
Gruß
D.Mon
ich hab mal ne Frage zum Thema release.
So wie das im Hillegass beschrieben ist, versteh ich es nicht ganz.
In Kapitel 4 heißt es unter der Überschrift "Creating Autoreleased Objects"
Our next attempt might look something like this:
[color="blue"]This code would not work at all.[/color] When sent the message release, the string's retain count would go to zero, and the string would be deallocated. The object asking for the string would get a pointer to a freed object.
Das komische ist, dass es bei mir (unter 10.5) aber doch funktioniert. Ich habe dann über der Zeile
[result release]
folgendes eingefügt:
i = [result retainCount];
NSLog(@"retainCount of %d",i);
Das gibt mir jeweils einen retainCount von 1 aus, nach der " [result release]" Nachricht sollte der also 0 sein und der String "deallocated" (gibt es da ein deutsches Wort dafür?) werden.
Das Programm läuft aber dennoch ganz normal und das verstehe ich eben nicht.
Erst wenn ich zwei release Nachrichten an result schicke, gibts einen Laufzeitfehler bei jedem Schleifendurchlauf:
"lottery(28814) malloc: *** error for object 0x108220: double free"
Gruß
D.Mon
Habe Mut, Dich Deines eigenen Verstandes zu bedienen.
(Immanuel Kant)
(Immanuel Kant)
