Desidero leggere il file specificato (foto dal rullino fotografico) in modo asincrono, ma non funziona per me.Impossibile leggere il contenuto di PHA asincrono
variabile tempData
ottiene nil
fino posso cambiare config requestOptionForPhotos.synchronous
-YES
, allora tutto è ok, ma non voglio eseguire questo codice sincrono.
È possibile che sto bloccando l'accesso alla foto richiedendo lo stesso file in altro thread? Sono novizio nella programmazione di obiettivi-c e iOS e non so come funziona.
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;
}];
}
stai ottenendo un percorso file valido? inoltre, ci sono dei dati che stai ricevendo nell'oggetto "collezione"? –
Sì, ci sono alcuni dati e il percorso è anche valido. – siwymilek