0

当我第一次阅读在 ARC 之前开始 iOS 3 开发时,我记得在一些 ViewController 类中看到过这样的模式:

.h
@property (nonatomic, retain) NSArray *myArray;

.m
in viewDidLoad:
NSArray *tempArray = [[NSArray alloc] init];
self.myArray = tempArray;
[tempArray release];

我记得读过您这样做是为了如果您使用属性设置器/获取器,属性可以为您处理内存。所以现在有了 ARC,我想知道你是否仍然遵循这种变量创建。例如,如果您在 iOS 6 中启动一个新项目,在 AppDelegate 中,它们会

.h
@property (strong, nonatomic) ViewController *viewController;
.m
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

在这种情况下,不会创建 temp 变量。我想知道为什么以及是否应该遵循该模式而不是第一个模式。谢谢!

4

2 回答 2

0

是的你应该。ARC 会自动为您优化掉不必要的保留和释放。

于 2012-12-07T17:10:59.917 回答
0

它们是相同的模式,除了现在 ARC 为您正确处理发布。ARC 的第二个代码块很好。这就是 ARC 如此出色的原因。

于 2012-12-07T17:07:38.213 回答