2011-11-24 64 views
1

假设有类型的字符串的NSString内存管理,目标C

 NSString *string; 

有阵列称为testArray,这是字符串数组对象

 string=[testArray objectAtIndex:1]; 

我们需要给

 [string release] 

还是不是?

回答

2

不,你不需要做

[string release] 

您必须release对象只有当你为它分配内存。请查看Memory Management Policy了解有关alloc和release的更多详细信息。

1

无需发布。你只需要发布你已经分配的对象。

2

在这种情况下,你不必释放的字符串。你只能释放你拥有的对象(通过alloc/init,copy或retain创建)。查看Apple的内存管理文档。在这种情况下,testArray拥有该字符串。因此,当不再需要时,它会释放它

1

只有在您还调用了[字符串保留]的情况下。否则,内存由NSArray管理。如果你需要从数组中移除它,你可以调用[string retain],但仍然保留对它的引用。