В firstViewController,
SecondViewController *secondViewController = [[[SecondViewController alloc] init] autorelease];
// Pass data to secondViewController
[secondViewController setClass1:anObjectFromFirstViewController];
[[self navigationController] pushViewController:secondViewController ...];
SecondViewController.m
Class1 *class1;
NSMutableArray *object2;
В ViewDidLoad,
Я думаю, что object2 указывает на тот же объект, что и class1, и поэтому его не нужно выделять.
[self setObject2:[class1 someNSMutableArray]];
В init мне не нужно выделять object2, и все приложение все еще работает. Это потому, что object2 указывает на тот же элемент в памяти, что и [class1 someNSMutableArray]
.
Если это так, то что произойдет, если я выделю object2. Будет ли 2 копии? Приложение все равно работает, если я его инициализирую.
-(id)init { object2 = [[NSMutableArray alloc] init]; }
Запутанная часть заключается в том, что если я инициализирую с помощью автоматического выпуска, это даст мне ошибку dealloc, освобождение от освобождения ошибки объекта
-(id)init { object2 = [[[NSMutableArray alloc] init] autorelease]; }
Спасибо, мучо !!!