0

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

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

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

但我也可以这样做吗?

NSArray *array = [NSArray array];

是一样的吗?

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

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

ARC的版本是什么,或者我可以这样写?

谢谢

4

2 回答 2

0

你可以这样写,在ARC中你不必手动添加retain,release。它由 ARC 完成。剩下的事情你可以做。

于 2013-09-25T08:26:22.043 回答
0

在内部,[NSArray array][[NSArray alloc] init]在使用 ARC 的环境中调用,这没有区别。

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

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

UINavigationController *navigationController = [[UINavigationController alloc] init];
navigationController.viewControllers = @[ rootViewController ];
于 2013-09-25T08:47:45.840 回答