Re: Confused with block completionHandler
Re: Confused with block completionHandler
- Subject: Re: Confused with block completionHandler
- From: Graham Cox <email@hidden>
- Date: Thu, 25 Aug 2011 11:01:12 +1000
On 25/08/2011, at 10:46 AM, Brad Stone wrote:
> I need to call this method manually but I'm confused how to format the completionHandler. I don't understand what I'm reading. Can anyone give me an example of how to define the completionHandler or point me to some documentation?
>
> [self saveToURL:[self fileURL] ofType:@"myDocType" forSaveOperation:NSAutosaveInPlaceOperation completionHandler:^(I'm confused!!!)];
>
> This is the method definition
> - (void)saveToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation completionHandler:(void (^)(NSError *errorOrNil))completionHandler
>
> I've used blocks before like below but I don't understand the syntax above and I couldn't find an example on the internet or the documentation. Any help would be appreciated.
> [openPanel beginSheetModalForWindow:[NSApp keyWindow] completionHandler:^(NSInteger theResult) {
> if (theResult) {
> // some code here
> }
Separate the block definition from the calling method to make it clearer:
void (^completionHandler)(NSError*) = ^(NSError* error)
{
// here, write the code that makes up the body of the completion handler
}
[self saveToURL:[self fileURL] ofType:@"myDoc" forSaveOperation:saveOp completionHandler:completionHandler];
Here we just named the block 'completionHandler', but it could be anything, such as 'fred' - it's just a variable identifier.
--Graham
_______________________________________________
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