OK. Мне не совсем понятны блоки, но я часто их использую; особенно при выполнении ASIHTTPRequest. Я хотел бы передать объект в блок и сделать запрос назначить значение для объекта по завершении, но я не знаю, как сделать объект «доступным» внутри блока.
Вот мой метод ...
- (void)fetchImageAsynchronously:(NSURL *)theURL intoImageObject:(UIImage *)anImageObject
{
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:theURL];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[request setCompletionBlock:^{
NSData *responseData = [request responseData];
anImageObject = [UIImage imageWithData:responseData];
}];
[request setFailedBlock:^{
// NSError *error = [request error];
}];
[request startAsynchronous];
}
Итак, когда запрос завершится, я хочу, чтобы значением anImageObject было извлеченное изображение. Но anImageObject недоступен внутри блока.
Кто-нибудь любезно поможет?