5
我想读取指定文件(来自相机胶卷的照片)异步,但它不适用于我。无法读取异步PHAsset内容
变量tempData
得到nil
直到我改变配置requestOptionForPhotos.synchronous
为YES
,那么一切都很好,但我不想执行此代码同步。
是否有可能通过请求访问其他线程中的同一文件来阻止访问照片?我是Objective-C和iOS编程的新手,我不知道它是如何工作的。
NSURL *assetUrl = [[NSURL alloc] initWithString:filepath];
PHFetchResult *collection = [PHAsset fetchAssetsWithALAssetURLs:[NSArray arrayWithObject:assetUrl] options:nil];
PHImageRequestOptions *requestOptionForPhotos = [[PHImageRequestOptions alloc] init];
requestOptionForPhotos.networkAccessAllowed = YES;
requestOptionForPhotos.synchronous = NO;
__block BOOL isFinished = NO;
__block NSData * tempData = nil;
for(PHAsset *asset in collection) {
[[PHImageManager defaultManager]
requestImageForAsset:asset
targetSize:CGSizeMake(80, 80)
contentMode:PHImageContentModeAspectFill
options:requestOptionForPhotos
resultHandler:^(UIImage *result, NSDictionary *info) {
tempData = UIImagePNGRepresentation(result);
isFinished = YES;
}];
}
你会得到有效的文件路径吗?还有,您收集“收集”对象中是否有任何数据? –
是的,有一些数据和路径也是有效的。 – siwymilek