NSString* str = @"foo";
str = [NSString stringWithFormat:@"%@%@", str, @"bar"];
将@“foo”自动释放?也就是说,当重新分配str时,它的保留计数是否会变为0?
答案 0 :(得分:2)
是的,它会被释放。你没有分配/ init / new / copy它。
编辑:我认为说“不,它不会泄漏”更为正确,因为它实际上是一个常数。但是,alloc / init / new / copy建议仍然适用。
答案 1 :(得分:1)
@"foo"
是内存中的编译时常量对象,因此其保留计数无关紧要。以这种方式重新分配是安全的,即使在stringWithFormat:
中重复使用它也是如此。