String下的stringWithFormat vs initWithFormat

时间:2011-10-31 23:23:28

标签: objective-c cocoa memory-management nsstring automatic-ref-counting

stringWithFormat:NSString的类方法,并返回一个自动释放的字符串; initWithFormat:是一个实例方法,在ARC之前,程序员必须处理返回对象的内存管理。如果我们启用了ARC,这两种方法有什么区别?

2 个答案:

答案 0 :(得分:5)

使用ARC,这两种方法是等效的。

见:

答案 1 :(得分:2)

如果打开ARC,应该没有区别。

您通常会在分配NSString后调用initWithFormat:,因此保留计数 没有 ARC将比使用自动释放时大1用于创建字符串的类方法(因此您必须记住将其释放)。

使用ARC,没有任何区别,因为完全处理了保留/释放/自动释放。