NSString *pDescText = @"blablabla";
pDescText = [NSString stringWithFormat:@"%@ %@",skProduct.localizedDescription,formattedPrice];
当我重新分配第2行中的pDescText时,会产生内存泄漏吗?这个NSString是内存泄漏吗?
NSString *pDescText = @"blablabla";
pDescText = [NSString stringWithFormat:@"%@ %@",skProduct.localizedDescription,formattedPrice];
当我重新分配第2行中的pDescText时,会产生内存泄漏吗?这个NSString是内存泄漏吗?
如果您使用ARC,则无需担心这些泄漏。
如果使用MRC,你没有泄漏的原因是:
你只需要通过发送包含new
alloc
retain
或copy
消息释放,你有一个接收的参考对象。你没有这样做过,所以你没有对pDescText
的拥有参考。此外,在第一行中,您正在使用字符串文字,这是你不必担心内存管理。
我不得不说这个pDescText
不是一个很好的名字用于可可中的变量。我们不使用匈牙利符号(所以p表示不需要指针),而完整的描述性变量名称是常态。所以不是pDescText
一个更有经验的可可开发人员会使用descriptiveText
甚至productDescription
或description
,如果这足够上下文。
不,NSString
便利构造函数返回一个自动释放对象。
当回答一个问题只是为了帮助其他可能正在查看此答案的新手时,获得一点额外的宝石(回复:变量名称)总是不错的。 –
我使用了一个小小的助记符:如果它是* N * -ot * ARC *,release * NARC *(* N * ew,* A * lloc,* R * etain,* C * opy)。如果你没有看到这些单词,不要担心发布 –
我想要一个说'new&alloc&retain&copy'的t恤;就像着名的[披头士T恤](http://www.experimentaljetset.nl/archive/john-paul-ringo-george) – Abizern