【发布时间】:2010-10-25 18:44:03
【问题描述】:
我正在编写一个NSArray 类别以包含-objectAtRandom 消息,该消息从随机索引返回一个对象(类似于Python 的choice)。
我应该在返回之前自动释放这个对象吗?我相信我不应该,但我不确定......
【问题讨论】:
标签: objective-c cocoa memory-management nsarray autorelease
我正在编写一个NSArray 类别以包含-objectAtRandom 消息,该消息从随机索引返回一个对象(类似于Python 的choice)。
我应该在返回之前自动释放这个对象吗?我相信我不应该,但我不确定......
【问题讨论】:
标签: objective-c cocoa memory-management nsarray autorelease
根据正常的内存管理规则,不,你不应该。由于您大概使用objectAtIndex: 来返回对象,因此您不需要自己进行任何内存管理。
【讨论】:
我会写return [[object retain] autorelease] - 这将保证,即使数组将被释放,用户也将能够使用对象直到当前的 runloop 循环完成。
【讨论】: