Cocoa不同内存管理环境下的autorelease

H 混合内存管理环境:垃圾收集法()+索引计数法(Reference Counting)

虽然大多数情况下混合环境是不被推荐的,但是如果在这个情况下,autorelease需要注意以下事项:

垃圾收集混合环境下:应该使用drain方法,因为release在GC模式下没有意义

索引计数环境下:drain和release对于autoreleasepool(自动释放池)的效果相同

One Comment

  1. Bob 说:

    你好,我现在遇到一个很郁闷的问题是,Coredata的executeFetchRequest返回的那个NSArray是个autorelease的对象,我有一个循环不断执行executeFetchRequest,并不断返回一个NSArray,但是由于autorelease只有在这个run loop结束后才会释放空间,所以内存占用直线上升。我也尝试在循环内自己创建NSAutoreleasePool并在一次循环结束时release它,但是还是没用。具体代码我发在这个帖子中了http://www.cocoachina.com/bbs/read.php?tid-8064.html,不知你是否对此有经验?请赐教

Leave a Reply