IOS:ARC方法的分配对象

时间:2013-09-25 08:24:36

标签: ios xcode uinavigationcontroller nsarray automatic-ref-counting

在我的应用程序中,我正在使用ARC而且我是新手。 我有两个简单的问题。

第一个问题; 如果我应该分配一个NSArray我做

NSArray *array = [[NSArray alloc]init];

但我也可以这样做吗?

NSArray *array = [NSArray array];

是一样的吗?

第二个问题: 如果我有这个:

UINavigationController *navigationcontroller = [[UINavigationController alloc] initWithRootViewController:myViewC];

ARC的版本是什么,或者我可以用这种方式编写?

感谢

2 个答案:

答案 0 :(得分:0)

您可以通过这种方式编写这些内容,在ARC中,您无需手动添加retain,release。它由ARC完成。你可以做的其他事情。

答案 1 :(得分:0)

在内部,[NSArray array]将调用[[NSArray alloc] init],因此在使用ARC的环境中,它没有任何区别。

为了完整起见,还有第三种方式:[NSArray new]相当于[[NSArray alloc] init]

至于第二个问题,-initWithRootViewController:是一种便利方法。这相当于这样做:

UINavigationController *navigationController = [[UINavigationController alloc] init];
navigationController.viewControllers = @[ rootViewController ];