假设有类型的字符串的NSString内存管理,目标C
NSString *string;
有阵列称为testArray,这是字符串数组对象
string=[testArray objectAtIndex:1];
我们需要给
[string release]
还是不是?
假设有类型的字符串的NSString内存管理,目标C
NSString *string;
有阵列称为testArray,这是字符串数组对象
string=[testArray objectAtIndex:1];
我们需要给
[string release]
还是不是?
不,你不需要做
[string release]
您必须release
对象只有当你为它分配内存。请查看Memory Management Policy了解有关alloc和release的更多详细信息。
无需发布。你只需要发布你已经分配的对象。
否..在这种情况下不是。
如果你从函数中得到一个字符串,它通常会有autorelease标志,并会在稍后发布。
你需要释放它,如果你retain
它,如果你alloc
它或copy
它。
在这种情况下,你不必释放的字符串。你只能释放你拥有的对象(通过alloc/init,copy或retain创建)。查看Apple的内存管理文档。在这种情况下,testArray拥有该字符串。因此,当不再需要时,它会释放它
只有在您还调用了[字符串保留]的情况下。否则,内存由NSArray管理。如果你需要从数组中移除它,你可以调用[string retain],但仍然保留对它的引用。