Je crée une application de diaporama photo. Mon flux d'application: utilisateur select actifs photo> (sur 100+) images de charge des actifs> (affichage taille de l'image) jeu image imageView ou ajouter CIFilter à l'image et diapositivesCIImage avec la mémoire CGImage grandir
Question: Lorsque je crée CIImage objet de CGImage, la mémoire grandit si vite et si l'image compte plus de 100+, l'application plantage. Mais il est étrange que je supprime le code de création, l'application fonctionne bien.
Quelqu'un peut-il m'aider?
plus de code:
- (void)loadDisplayImagesWithCompletion:(void (^)(NSArray *images))completion {
dispatch_async(dispatch_queue_create("PhotosEditViewController_loadImageQueue", nil), ^{
__block NSMutableArray *images = [NSMutableArray array];
__block int handleCount = 0;
__weak PhotosEditViewController *weakSelf = self;
for (PHAsset *asset in self.photoAssets) {
[KPPhotoManager requestImageForAsset:asset targetSize:self.contentView.frame.size completeBlock:^(UIImage *image) {
[images addObject:image];
@autoreleasepool {
CIImage *ciImage = [CIImage imageWithCGImage:[image CGImage]];//memory growing up
}
}];
}
});
}
// KPPhotoManager
+ (void)requestImageForAsset:(PHAsset*)asset targetSize:(CGSize)size completeBlock:(void (^)(UIImage *image))completeBlock
{
[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeAspectFill options:[self createImageRequestOptions] resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
completeBlock(result);
}];
}
pourquoi vous appelez 100 fois créer une image? –
faire un diaporama de photos, peut-être 0.1s afficher une image –