- Registriert
- 13.12.09
- Beiträge
- 266
Hallo zusammen,
gerade habe ich auf einer Tutorial-Seite einen Artikel über retain und release gelesen.
Dort steht, dass es zu einem Programmabsturz führt wenn man auch nur ein einziges release
zuviel aufruft (eigentlich klar).
Dann habe ich das ganze mal ausprobiert.
Hier werden gleich zwei releases zu viel ausgeführt und es funktioniert trotzdem.
Das verstehe ich nicht. Der Retain-Count zeigt immer "2147483647" an egal wann ich ihn aufrufe.
auch kann ich danach auf string1 erneut zugreifen und diesem auch Methoden schicken.
Habe es im Simulator und auf dem iPhone getestet und es läuft ohne abzustürzen.
Kann mir das mal bitte jemand erklären?
gerade habe ich auf einer Tutorial-Seite einen Artikel über retain und release gelesen.
Dort steht, dass es zu einem Programmabsturz führt wenn man auch nur ein einziges release
zuviel aufruft (eigentlich klar).
Dann habe ich das ganze mal ausprobiert.
Code:
NSString *string1 = [[NSString alloc] initWithString:@"Hallo Welt"];
[string1 release];
[string1 release];
[string1 release];
NSLog(@"Retain-Count: %i", [string1 retainCount]);
UILabel *myLabel = [[UILabel alloc] init];
[myLabel setFrame:CGRectMake(10, 100, 300, 25)];
[myLabel setText:[NSString stringWithFormat:@"Der String %@ hat die Länge %i",string1, [string1 length] ] ];
[self.view addSubview:myLabel];
Das verstehe ich nicht. Der Retain-Count zeigt immer "2147483647" an egal wann ich ihn aufrufe.
auch kann ich danach auf string1 erneut zugreifen und diesem auch Methoden schicken.
Habe es im Simulator und auf dem iPhone getestet und es läuft ohne abzustürzen.
Kann mir das mal bitte jemand erklären?