Objective-C:从alloc/init和类方法调用创建对象有什么区别?
比如说, 当我们谈论字符串时,设置字符串是否有任何区别:Objective-C:从alloc/init和类方法调用创建对象有什么区别?,objective-c,Objective C,比如说, 当我们谈论字符串时,设置字符串是否有任何区别: NSString *string = @"a string"; ? 最后请注意,这不是关于NSString的特定问题。我要问的是所有对象的更大范围 ARC没有区别,但在此之前有一个区别:alloc/init返回一个ref count至少为一的项,当您不需要它时,您需要释放它,而class方法返回一个自动释放的项,如果您想保留它,您需要保留它。ARC编译器知道所有这些,并根据您的所有权规范为您保留/发布这些信息。哦,没有ARC
NSString *string = @"a string";
?
最后请注意,这不是关于NSString的特定问题。我要问的是所有对象的更大范围 ARC没有区别,但在此之前有一个区别:
alloc/init
返回一个ref count至少为一的项,当您不需要它时,您需要释放它,而class方法返回一个自动释放的项,如果您想保留它,您需要保留它。ARC编译器知道所有这些,并根据您的所有权规范为您保留/发布这些信息。哦,没有ARC我该怎么办
NSString *string = [[NSString alloc] initWithString:@"a string"];
NSString *string = @"a string";