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