【发布时间】:2012-03-17 10:58:20
【问题描述】:
我有以下代码:
- (UIImage *) getPublisherLogo
{
//check the cache if the logo already exists
NSString * imageUrl = [NSString stringWithFormat:@"%@/%@&image_type=icon", self.baseUrl, self.imageUrl_];
ASIHTTPRequest * imageRequest = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:imageUrl]];
[imageRequest setTimeOutSeconds:30.0];
[imageRequest setDownloadCache:[ASIDownloadCache sharedCache]];
[imageRequest setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[imageRequest setCachePolicy:ASIAskServerIfModifiedWhenStaleCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
[imageRequest setCompletionBlock:^(void){
UIImage *img = [UIImage imageWithData:[imageRequest responseData] ];
if (img){
return img;
}
}];
[imageRequest setFailedBlock:^(void){
NSLog(@"Error in pulling image for publisher %@", [[imageRequest error] userInfo]);
}];
[imageRequest startAsynchronous];
}
}
问题是返回值/UIImage 是在一个块中返回的。我该如何避免这种情况?
【问题讨论】:
-
请注意,方法应该只是“publisherLogo”;它不应该有
get前缀。
标签: iphone objective-c ios ipad asihttprequest