Можно ли превратить обратный вызов в асинхронный блок?

Я реализую dropbox api ] для моего нового приложения проекта . API основан на делегатах и ​​обратных вызовах, попарно (успех + неудача), например:

- (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata;
- (void)restClient:(DBRestClient*)client loadMetadataFailedWithError:(NSError*)error; 

- (void)restClient:(DBRestClient*)client loadedAccountInfo:(DBAccountInfo*)info;
- (void)restClient:(DBRestClient*)client loadAccountInfoFailedWithError:(NSError*)error; 

Интересно, существует ли способ превратить это в блок async obj-c , чтобы я мог сделать это:

+ (void)loadMetadata:(DBRestClient *)client queue:(NSOperationQueue *)queue completionHandler:(void (^)(DBMetadata*, NSError*))handler

Существовал какой-то шаблон, который можно было бы использовать для этого? Или необходимо, чтобы библиотека была построена с блоками с самого начала?

5
задан mamcx 25 February 2012 в 18:04
поделиться