J'utilise la requestImageDataforAforAforAforAforAforAforAforAforAforAforAforAforAforaFataforaForations de la mémoire de photos particulières dans le rouleau de la caméra. Cela fonctionne bien dans mon appareil, mais certains utilisateurs reçoivent une crash de la base après calculer la taille de la mémoire (trouvée par analyse et rapport d'accident). P>
Rapport de code et de crash p>
aide s'il vous plaît. p>
3 Réponses :
sur quelle version iOS il se bloque, semble fonctionner bien pour moi dans iOS 8.3, si vous utilisez exactement le même processus pour récupérer l'image métadonnées ou la taille de la mémoire: - i Je suis à la suite de ces liens pour mon kit photo fonctionnement: - phimagemanager et iOS-8-photokit p> P>
Op utilise Swift; cela pourrait faire une différence ici.
Je sais que c'est à Swift, mais dans ce lien ' Github.com/vandadnp/irogrming-Cookbook/bloc / ... ', ils utilisent le même script et cela fonctionne.
@Vizllx que le lien n'existe pas
Lien fixe:
J'ai eu un problème similaire à celui-ci lorsque les utilisateurs avaient leurs photos stockées dans iCloud à l'aide de la photothèque iCloud. J'ai pu résoudre le problème en faisant appel à l'appel asynchrone. Il ressemble à ce voici toute la fonction. P>
Si vous voulez charger toutes les photos que vous avez sur Photos.app et vous ne vouliez pas iCloud. Vous pouvez faire:
Cet exemple fonctionne avec une vue de collection. P>
@interface GalleryViewModel () @property (strong, nonatomic) NSMutableArray<PHAsset *> *assets; @property (strong, nonatomic) PHImageManager *imageManager; @property (strong, nonatomic) PHImageRequestOptions *requestOptions; @property (strong, nonatomic) NSMutableArray<UIImage *> *imagesList; @end @implementation GalleryViewModel - (instancetype) initWithContext:(ITXAppContext *)context { self = [super initWithContext:context]; if (self) { _assets = [[NSMutableArray alloc] init]; _imageManager = [PHImageManager defaultManager]; _requestOptions = [[PHImageRequestOptions alloc] init]; _imagesList = [[NSMutableArray alloc] init]; } return self; } #pragma mark - Public methods // ================================================================================== // Public methods - (void) viewModelDidLoad { [self obtainAllPhotos]; } #pragma mark - Private methods // ================================================================================== // Private methods - (void) obtainAllPhotos { self.requestOptions.resizeMode = PHImageRequestOptionsResizeModeExact; self.requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat; self.requestOptions.synchronous = YES; self.requestOptions.networkAccessAllowed = NO; PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]]; PHFetchResult<PHAsset *> *result = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions]; __weak GalleryViewModel *weakSelf = self; [result enumerateObjectsUsingBlock:^(PHAsset * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { [weakSelf.assets addObject:obj]; if (idx >= ([result count] - 1)) { [weakSelf.viewDelegate setupView]; } }]; } #pragma mark - Get data from object // ================================================================================== // Get data from object - (NSInteger) sizeGallery { if (self.assets) { return [self.assets count]; } return 0; } - (UIImage *) imagesFromList:(NSInteger) index { __block UIImage *imageBlock; [self.imageManager requestImageForAsset:[self.assets objectAtIndex:index] targetSize:CGSizeMake(200, 200) contentMode:PHImageContentModeAspectFit options:self.requestOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) { if (result) { imageBlock = result; } }]; return imageBlock; } @end
@Vizllx Merci de répondre à une idée de l'accident de Crash Signaler ?. C'est arrivé toutes les versions iOS.