[英]Memory management, objective c
假设有一个NSSTring类型的字符串
NSString *string;
有一个叫做testArray的数组,它是字符串对象的数组
string=[testArray objectAtIndex:1];
我们需要给吗
[string release]
或不?
不..在这种情况下不是。
如果从函数中获取字符串,则该字符串通常具有自动释放标志,并将在以后释放。
你需要释放它,如果你retain
它,如果你alloc
,或copy
它。
您应该阅读: http : //developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html#//apple_ref/doc/uid/20000994-BAJHFBGH
在这种情况下,您不必释放字符串。 您只释放自己拥有的对象(通过alloc / init,复制或保留创建)。 查看Apple的内存管理文档。 在这种情况下,testArray拥有该字符串。 因此,它会在不再需要时将其释放
无需释放。 您只需要释放已分配的对象。
仅当您还调用了[字符串保留]时。 否则,内存由NSArray管理。 如果您需要将其从数组中删除,则可以调用[字符串保留],但仍保留对其的引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.