Я нахожусь в процессе изучения target-c и программирования приложения для iPad.Одной вещью, которую я продолжаю обманывать и перечитывать, является управление памятью.Я добираюсь туда ... медленно.Базовые правила, такие как alloc
/ retain
, должны иметь release
.Однако одна относительно простая вещь ускользает от меня, и мне интересно, может кто-нибудь объяснить ...
Возьмите следующий код ...
NSArray *myArray = [[NSArray alloc] init];
myArray = [someNSSet allObjects];
Это относительно прямое кодирование, и для него потребуется[myArray release]
утверждение.
Однако я продолжаю видеть примеры (и действительно, я широко использовал следующий «короткий путь» ...
NSArray *myArray = (NSArray *)[someNSSet allObjects];
Как, насколько японять, когда вы используете (NSString *)
, вам не нужно использовать оператор [myArray release]
, но я не понимаю, почему.
Может кто-нибудь объяснить это?