5
指定されたファイル(カメラロールからの写真)を非同期に読み込みたいのですが、私にとってはうまくいきません。PHAssetの内容を非同期で読み取ることができません
変数tempData
がnil
は、それまでは私がYES
に設定requestOptionForPhotos.synchronous
を変更取得し、すべてがOKですが、私はこのコードの同期を実行する必要はありません。
他のスレッドで同じファイルをリクエストして写真へのアクセスをブロックしている可能性はありますか?私は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