这个价值应该被释放吗?

时间:2011-02-25 21:20:06

标签: ios memory-management

我在IOS模拟器中遇到了段错11内存访问错误,但当我在下面的代码中注释掉该版本时,它就消失了。

// get get the question number
NSString *text = [attributeDict valueForKey:XML_TAG_QUESTION_ATTRIBUTE_NUMBER];
question.number = [text intValue];
//[text release]; <==== no more segfault 11 when this is commented out. 

我的问题是,因为我收到NSXMLParser实现返回的NS字符串的实例,引用计数是否增加,我不应该发布它吗?

2 个答案:

答案 0 :(得分:13)

以下是规则:始终对您的内存管理进行NARC。

如果你打电话:
(N)EW
(A)LLOC
(R)获得或者 (C)opy ...

您需要发布。如果没有,你通过一种方便的方法得到它并且它是自动释放的。

对于其他对象的容器,容器保留了对象,在释放容器之前不需要担心它。

答案 1 :(得分:2)