Re: Calling a Cocoa library from C
Re: Calling a Cocoa library from C
- Subject: Re: Calling a Cocoa library from C
- From: Charles Srstka <email@hidden>
- Date: Mon, 14 Nov 2011 15:26:37 -0600
On Nov 14, 2011, at 1:40 PM, Ken Thomases wrote:
> But NSAutoreleasePool doesn't drain on an exception, since it doesn't have an explicit scope. Code posted earlier in this thread used @try-@finally to explicitly drain the pool. So, while @autoreleasepool would be equivalent to a naive use of NSAutoreleasePool, it's not equivalent to the earlier code.
>
> Quoting from the Transitioning to ARC Release Notes <http://developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html>:
>
>> On entry, an autorelease pool is pushed. On normal exit (break, return, goto, fall-through, and so on) the autorelease pool is popped. For compatibility with existing code, if exit is due to an exception, the autorelease pool is not popped.
You can always put your @try/@catch block inside the @autoreleasepool block, and ensure that it drains normally that way.
Charles_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden