从 NSArray 返回自动释放对象?
我正在编写一个 NSArray
类别,以包含 -objectAtRandom
消息,该消息从随机索引返回一个对象(类似于 Python 的 选择)。
我应该在返回该对象之前自动释放它吗?我相信我不应该,但我不确定......
I'm writing an NSArray
category to include the -objectAtRandom
message that returns an object from a random index (something similar to Python's choice).
Should I autorelease this object before returning it? I believe I shouldn't, but I'm not sure...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据正常的内存管理规则,不,你不应该这样做。由于您可能使用
objectAtIndex:
返回对象,因此您不需要自己进行任何内存管理。According to the normal memory management rules, no, you should not. Since you're presumably using
objectAtIndex:
to return the object, you don't need to do any memory mangement of your own.我会写
return [[object keep] autorelease]
- 这将保证,即使数组将被释放,用户也将能够使用对象,直到当前运行循环周期完成。I'd write
return [[object retain] autorelease]
- this will guarantee, that even if array will be released, user will be able to work with object until current runloop cycle finish.