使用arrayWithContentsOfURL时,许多保留在NSURL上

时间:2010-07-02 20:41:47

标签: iphone nsarray retain

我正在从指向plist的URL创建一个NSArray

NSLog(@"_url rc:[%d]",[_url retainCount]); //prints "_url rc:[1]"
content = [NSArray arrayWithContentsOfURL:_url];
NSLog(@"_url rc:[%d]",[_url retainCount]); //prints "_url rc:[10]"

我完全不知道为什么会这样。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

不要调用-retainCount。

对象的绝对保留计数是无用的,除非您的代码是唯一触及对象的东西。只要您通过系统API传递对象,绝对保留计数就不再是您可以控制的。

正如 chrissr 暗示的那样,对象的保留计数应完全视为delta。如果你增加它,你应该减少它。如果你保留,你必须释放。如果您复制,则必须发布。等...