Hi,
Since saving a document can be a lengthy process in one of my apps, I am
switching it to a concurrent thread. My idea is to do the following:
- (void)saveToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName
forSaveOperation:(NSSaveOperationType)saveOperation delegate:(id)delegate
didSaveSelector:(SEL)didSaveSelector contextInfo:(void *)contextInfo
{
NSBlockOperation *operation = [NSBlockOperation
blockOperationWithBlock: ^{
[super saveToURL:absoluteURL ofType:typeName
forSaveOperation:saveOperation delegate:delegate
didSaveSelector:didSaveSelector contextInfo:contextInfo];
}];
[((MyAppDelegate *)[NSApp delegate]).operationQueue
addOperation:operation];
}
This allows the Save panel to be presented, if needed, on the main thread, and
performs the actual saving in the background. Initial testing suggests that
this is a workable solution and even allows multiple documents to be saved
concurrently within the app. The recent menu appears to be correctly updated,
as well as document dirty status, etc.
My question is: can anyone see any possible gotchas with this technique? Any
subtle ways in which things might not work as dependably as they appear?
Cheers,
António
----------------------------------------------------
It isn't so important to do great things,
as to do what you do with great love.
----------------------------------------------------
_______________________________________________
Cocoa-dev mailing list ([email protected])
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 [email protected]