会重新分配NSString泄漏吗?

时间:2011-02-03 00:14:33

标签: objective-c

NSString* str = @"foo";
str = [NSString stringWithFormat:@"%@%@", str, @"bar"];

将@“foo”自动释放?也就是说,当重新分配str时,它的保留计数是否会变为0?

2 个答案:

答案 0 :(得分:2)

是的,它会被释放。你没有分配/ init / new / copy它。

编辑:我认为说“不,它不会泄漏”更为正确,因为它实际上是一个常数。但是,alloc / init / new / copy建议仍然适用。

答案 1 :(得分:1)

@"foo"是内存中的编译时常量对象,因此其保留计数无关紧要。以这种方式重新分配是安全的,即使在stringWithFormat:中重复使用它也是如此。