在我的应用程序中,我正在使用ARC,我是新手。我有两个简单的问题。
第一个问题;如果我应该分配一个 NSArray 我做
NSArray *array = [[NSArray alloc]init];
但我也可以这样做吗?
NSArray *array = [NSArray array];
是一样的吗?
第二个问题:如果我有这个:
UINavigationController *navigationcontroller = [[UINavigationController alloc] initWithRootViewController:myViewC];
ARC 的版本是什么,或者我可以这样写?
谢谢
在内部,[NSArray array]
将调用[[NSArray alloc] init]
,因此在使用 ARC 的环境中,它没有区别。
为了完整起见,还有第三种方式:[NSArray new]
相当于[[NSArray alloc] init]
。
至于第二个问题,-initWithRootViewController:
是一种方便的方法。这相当于这样做:
UINavigationController *navigationController = [[UINavigationController alloc] init];
navigationController.viewControllers = @[ rootViewController ];
这样写这些,在ARC中你不必添加保留,手动释放。它是由ARC完成的。其余的事情你可以做。