Я немного запутался в следующих двух способах инициализации .....
Путь 1:
- (void) myMethod{
NSArray *myArray = [[NSArray alloc] initWithObjects:obj1,obj1,nil];
[self setClassArray:myArray];
[myArray release];
}
Способ 2:
- (void) myMethod{
NSArray *myArray = [NSArray arrayWithObjects:obj1,obj2,nil];
[self setClassArray:myArray];
}
В способе 1 я использовал метод alloc init, который является методом экземпляра, и, поскольку я использовал оператор alloc, я должен сам освободить массив.
В способе 2 я использовал статический метод для инициализации массива, и так как не используется оператор alloc, мне не нужно освобождать память, система позаботится об этом.
Способ 1, занимает много времени и может привести к утечке памяти, если не позаботиться
Способ 2, быстрее в написании, и вам не нужно заботиться о утечках памяти
Но, тем не менее, я видел way1, используемый в стандартных исходных кодах чаще, чем way2. Я понятия не имею, почему люди так делают или я ошибаюсь в каком-то месте.
Ответы и комментарии приветствуются. Пожалуйста, предложите лучшие практики программирования.