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 (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