Witam
Mam taki teoretyczny dylemat który mi do głowy przyszedł podczas pisania. Dopiero raczkuje w tym temacie, a poniższe dywagacje biorę z pamięci także może jakiś byk się trafić.
Załóżmy taki kod pisany na iPhona, bo w przypadku OS X zwalnianie pamięci nie jest konieczne ze względu na garbage collector
NSURL *url = [[NSURL alloc] initWithString:@"http://myapple.pl"]
[url release]
Jest ok ... działa.
Spróbujmy tak:
NSString *string = [[NSString alloc] initWithString:@"http://myapple.pl"]
NSURL *url = [[NSURL alloc] initWithString:string ]
[url release]
[string release]
Jest ok ... działa.
Ale można tez i tak:
NSURL *url = [[NSURL alloc] initWithString:[[NSString alloc] initWithString:@"http://myapple.pl"]]
[url release]
Jest ok .... ale w parametrze daliśmy utworzony obiekt NSString który także powinniśmy jakoś zwolnić, ale nie mamy do niego wskaźnika.
Jak w tym 3 przypadku wygląda zwalnianie pamięci ? Jeśli coś pokręciłem to proszę o koleżeńskie, delikatne sprostowanie
pozdrawiam




LinkBack URL
About LinkBacks



