当我第一次在ARC之前阅读开始iOS 3开发时,我记得在一些ViewController类中看到这样的模式:
.h
@property (nonatomic, retain) NSArray *myArray;
.m
in viewDidLoad:
NSArray *tempArray = [[NSArray alloc] init];
self.myArray = tempArray;
[tempArray release];
我记得你读过这样做,所以如果你使用属性setter / getters,属性可以为你处理内存。所以现在使用ARC,我想知道你是否仍然遵循这种变量创建。例如,如果您在iOS 6中启动一个新项目,在AppDelegate中,他们会
.h
@property (strong, nonatomic) ViewController *viewController;
.m
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
在这种情况下,不会创建临时变量。我想知道为什么以及我是否应该遵循这种模式而不是第一种模式。谢谢!
答案 0 :(得分:0)
它们是相同的模式,除非现在ARC正确处理您的版本。 ARC的第二块代码就好了。这就是让ARC如此美好的原因。
答案 1 :(得分:0)
是的,你应该。 ARC会为您自动优化不必要的保留和释放。