我目前正在开发一个小项目,可以将所有图库照片加载到我的应用程序中以显示一些奇特的效果。不幸的是,系统提供的这些默认缩略图不能满足我的要求。所以我尝试使用“fullScreenImage”创建自己的缩略图。为了加快进程,我使用后台操作加载fullScreenImage。主要方法是:
- (void)getFullScreenImage:(NSURL *)url success:(void(^)(UIImage *))callback
{
NSLog(@"Requesting %@", url);
[assetsLibraryInstance assetForURL:url resultBlock:^(ALAsset *asset) {
callback(asset.defaultRepresentation.fullScreenImage);
}
failureBlock:nil];
}
- (void)processURLs:(NSArray *)urls
{
for (NSURL *url in urls) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) ^{
[self getFullScreenImage:url success:^(UIImage *img) {
NSLog(@"Got image %@", img);
}] ;
});
}
}
在控制台中只打印“Requesting ...”日志,“getFullScreenImage”方法被锁定,没有任何输出。
我尝试了以下方法来解决此问题:
那么,ALAssetsLibrary线程安全吗?我想这不是......或者,有什么更好的方法可以用来:
谢谢!