Re: FSCopyObjectAsync() under ARC
Re: FSCopyObjectAsync() under ARC
- Subject: Re: FSCopyObjectAsync() under ARC
- From: Indragie Karunaratne <email@hidden>
- Date: Tue, 20 Sep 2011 18:21:04 -0600
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 (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