例如,
NSString *string = [NSString stringWithString:@"a string"];
NSString *string = [[NSString alloc] initWithString:@"a string"];
当我们谈论字符串时,通过设置字符串是否有任何区别:
NSString *string = @"a string";
最后请注意,这不是关于NSString的具体问题。我要求更广泛的所有NSObjects。
答案 0 :(得分:4)
ARC没有区别,但在此之前存在差异:alloc/init
会返回一个项目,其中参考次数至少为release
时您需要retain
需要它,而class方法返回一个自动释放的项目,如果你想保留它,你需要{{1}}。 ARC编译器知道所有这些,并根据您的所有权规范负责保留/释放。