在我的应用程序中,我正在使用ARC而且我是新手。 我有两个简单的问题。
第一个问题; 如果我应该分配一个NSArray我做
NSArray *array = [[NSArray alloc]init];
但我也可以这样做吗?
NSArray *array = [NSArray array];
是一样的吗?
第二个问题: 如果我有这个:
UINavigationController *navigationcontroller = [[UINavigationController alloc] initWithRootViewController:myViewC];
ARC的版本是什么,或者我可以用这种方式编写?
感谢
答案 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 ];