IOS:分配对象的ARC方法



在我的应用程序中,我正在使用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完成的。其余的事情你可以做。

最新更新