这个NSString是内存泄漏吗?

时间:2014-01-20 18:08:20

标签: ios memory ios7 nsstring

NSString *pDescText = @"blablabla";
pDescText = [NSString stringWithFormat:@"%@ %@",skProduct.localizedDescription,formattedPrice];

当我在第2行重新分配pDescText时,是否会产生内存泄漏?

2 个答案:

答案 0 :(得分:4)

如果您使用ARC,则无需担心这些类型的泄漏。

如果您使用的是MRC,则没有泄漏,因为:

您只需发送包含new alloc retaincopy的邮件,即可发布您收到引用的对象。在这两行中都没有这样做,因此您没有对pDescText的拥有引用。此外,在第一行中您使用的是字符串文字,这是您不必担心内存管理的问题。

我不得不说这个pDescText不是用于Cocoa变量的好名字。我们不使用匈牙利表示法(因此p表示不需要指针),完整的描述性变量名称是常态。因此,如果对于上下文而言,更有经验的Cocoa开发人员将使用pDescText甚至descriptiveTextproductDescription而不是description

答案 1 :(得分:0)

不,NSString便捷构造函数返回一个自动释放的对象。