私は写真スライドショーアプリを作成しています。 マイアプリの流れ: ユーザーを選択し、フォト資産>(100 +以上)資産から ロード画像>(表示画像サイズ) セットのImageViewの映像や画像にCIFilterを追加し、スライドCIImage with CGImage memory
質問: 私はCIImageオブジェクトを作成するときCGImageからメモリが急速に成長しており、イメージ数が100以上になると、アプリケーションがクラッシュします。 しかし、私は作成コードを削除することは奇妙です、アプリは正常に動作します。
誰かが私を助けることができますか?
よりコード:
- (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);
}];
}
なぜ100時間かけて画像を作成するのですか? –
写真のスライドショーを行う、たぶん0.1sの画像を表示する –