我有一个从数组返回的字符串,只是想知道我是否需要在使用后释放它。
答案 0 :(得分:4)
看一下这篇博客文章,该文章总结了Objective C内存管理规则:http://interfacelab.com/objective-c-memory-management-for-lazy-people/。
特别是,规则#1适用于此 - 如果您拥有它,则只需要释放一个对象,如果您分配,复制或新建它(或者如果您明确保留它),则需要拥有它。你没有做任何这些事情,所以你不需要发布它。
它是否自动释放取决于字符串最初创建的方式,但您不必担心,因为您不负责释放它。
答案 1 :(得分:1)
从-objectAtIndex:
返回的对象在技术上都是。
代码看起来像这样:
-(id) objectAtIndex:(NSUInteger) index
{
return [[objects_[index] retain] autorelease];
}
所以它们不属于你,但是如果你从数组中删除它,它将不会立即被释放。
答案 2 :(得分:0)
自动释放。
那是(几乎?)一个方法返回的任何对象,如果它不是,它会使内存管理过于复杂。这就是为什么我们都喜欢自动释放。