This one was a case of not reading the docs properly :-) The clientContext 
parameter was supposed to be an FSFileOperationClientContext struct with the 
'info' member set to the data/object. The EXC_BAD_ACCESS was caused by me 
trying to pass in 'self' instead of the struct.

On 2011-09-20, at 6:11 PM, David Duncan wrote:

> 
> On Sep 20, 2011, at 5:07 PM, Indragie Karunaratne wrote:
> 
>> I'm trying to use FSCopyObjectAsync() to copy a file and get progress 
>> callbacks to update my UI. The last parameter (clientContext) gets passed on 
>> to the callback. Under ARC, I can not pass self because the parameter has a 
>> void* type. Using (__bridge void*)self silences the compiler warning but it 
>> results in EXC_BAD_ACCESS. Is there any way to pass an object for this 
>> parameter under ARC?
> 
> If this is causing an EXC_BAD_ACCESS it is most likely because the object you 
> are passing as the clientContext is being released out from under you. In 
> general you should consider local references to an object as an implicit 
> ownership reference within the current scope, so if nothing else has an 
> owning reference to the object after the scope ends, the object will be 
> deallocated. A __bridge cast specifically says "don't do anything with 
> ownership for this object".
> --
> David Duncan
> 

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to