【发布时间】:2011-08-26 22:49:35
【问题描述】:
当我在NSFileHandle 实例上调用readDataOfLength: 时,是否需要释放返回的NSData?目前我不是,但我想摆脱这个令人烦恼的疑问。
【问题讨论】:
标签: objective-c cocoa nsdata nsfilehandle
当我在NSFileHandle 实例上调用readDataOfLength: 时,是否需要释放返回的NSData?目前我不是,但我想摆脱这个令人烦恼的疑问。
【问题讨论】:
标签: objective-c cocoa nsdata nsfilehandle
不。 Cocoa 的memory management rules 说您只拥有(因此需要释放)从名称包含“new”、“alloc”、“保留”或“复制”(NARC)。由于该方法不包含这些,因此您知道不需要释放它。
【讨论】:
在 Objective C 库中非常一致地观察到的标准是,以“alloc”或“copy”开头的方法(以及,我在想,一些其他晦涩的动词)返回一个保留对象,而其他一切都返回一个自动释放的对象。
任何异常都应在规范中详细记录。
【讨论】:
retain。请注意,仅仅因为一个方法不返回一个拥有的引用并不意味着它返回一个自动释放的对象。