Tôi muốn đọc tệp được chỉ định (ảnh từ thư viện ảnh) không đồng bộ, nhưng nó không hoạt động đối với tôi.Không thể đọc nội dung PHAsset không đồng bộ
Biến tempData
được nil
cho đến khi tôi thay đổi cấu hình requestOptionForPhotos.synchronous
thành YES
, thì mọi thứ đều ổn, nhưng tôi không muốn thực hiện mã này đồng bộ.
Tôi có thể chặn quyền truy cập vào ảnh bằng cách yêu cầu cùng một tệp trong chuỗi khác không? Tôi là người mới trong chương trình khách quan-c và iOS và tôi không biết nó hoạt động như thế nào.
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;
}];
}
bạn có nhận được đường dẫn tệp hợp lệ không? Ngoài ra, có bất kỳ dữ liệu nào bạn đang nhận được trong "bộ sưu tập" đối tượng? –
Có, có một số dữ liệu và đường dẫn cũng hợp lệ. – siwymilek