Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

一次性添加99张图片经常闪退 #996

Closed
jiafei0007 opened this issue Oct 17, 2018 · 6 comments
Closed

一次性添加99张图片经常闪退 #996

jiafei0007 opened this issue Oct 17, 2018 · 6 comments

Comments

@jiafei0007
Copy link

jiafei0007 commented Oct 17, 2018

提bug前必看
请先回答下列三个问题,否则不允处理,谢谢配合。
1、我最新的Demo是否有这个bug?——是【如果Demo没问题,请升级新版
2、你用的是什么版本?升级后是否正常?——3.0.7,已经是用的最新版
3、是否有改动过我库内部的代码?——否【如有,请告诉我你改了什么

bug内容描述
请在这里描述bug的内容:
一次性添加99张图片点完成,经常闪退

这是用最新的demo运行的结果,手机是iphone x,系统是ios 12.0
2018-10-17 17:17:38.418068+0800 TZImagePickerController[44977:3437998] [ImageManager] FigPhotoDecompressionContainerDecodeImageForIndexAsync -[PLFigPreheatItem startPreheatRequestWithCompletionHandler:]_block_invoke_2 returned -16074 from /var/mobile/Media/DCIM/103APPLE/IMG_3650.JPG
2018-10-17 17:17:38.441655+0800 TZImagePickerController[44977:3438046] [ImageManager] FigPhotoDecompressionContainerDecodeImageForIndexAsync -[PLFigPreheatItem startPreheatRequestWithCompletionHandler:]_block_invoke_2 returned -16074 from /var/mobile/Media/DCIM/103APPLE/IMG_3645.JPG
2018-10-17 17:17:38.530286+0800 TZImagePickerController[44977:3438156] [ImageManager] PFFigCreateCGImageFromImageData UIImage *PLCreateImageFromDataWithFormat(NSData *, BOOL, PLPhotoImageFormatID, NSString *, BOOL, CFDictionaryRef *, NSDictionary *) returned -16074
2018-10-17 17:17:38.643458+0800 TZImagePickerController[44977:3438166] [ImageManager] PFFigCreateCGImageFromImageData UIImage *PLCreateImageFromDataWithFormat(NSData *, BOOL, PLPhotoImageFormatID, NSString *, BOOL, CFDictionaryRef *, NSDictionary *) returned -16074
Message from debugger: Terminated due to memory issue

如何复现这个bug?
以下是示例,请替换你的bug复现步骤:
1.设置只可选择图片,不能选原图
2.选择99张图后经常会闪退
3.用最新的demo代码结果一样

截图
如有,请在这贴上你的截图:

其它说明
能否提供只返回asset列表的方法

@banchichen
Copy link
Owner

@jiafei0007 设置下onlyReturnAsset,我内部就不会获取大图了。你先自己在外部获取下。

@Caffe-del
Copy link

一次性加载100张 ,会出现卡死状态,大大可以fixed一下么

@QiuYeHong90
Copy link

一次99 页面就不动了 怎么解决

@banchichen
Copy link
Owner

banchichen commented Dec 20, 2018

@QiuYeHong90 @DolphinQuan 试下刚刚发布的3.1.6版本,批量获取图片时加入了队列控制,情况好了一些

卡死的话应该不会了,CPU一般在80%以下了,内存还是有点大,你们尝试下哈,有问题再打开这个issue

@banchichen
Copy link
Owner

内存较大的问题,是由于回调里返回的photos数组导致的,有2种解决思路:

  1. 减小photoWidth的值,photoWidth越小内存占用越少,清晰度同时也会降低(清晰度够用就行)
  2. 设置onlyReturnAsset为YES,我内部只会返回assets数组,然后参考我demo中获取原图的示例代码来获取大图/原图,通过NSOperationQueue控制最大并发为1,且不强引用得到的图片对象,从而获取一张使用一张释放一张,降低内存占用。

如你获取图片又需要显示又需要上传,必须强引用图片对象,就把photoWidth弄小点,返回的photos数组只用于显示,获取和上传大图/原图的逻辑还是放到NSOperation里一个个来

示例代码见最新demo的TZImageUploadOperation类及相关使用的地方

@banchichen
Copy link
Owner

需使用3.1.9版本

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants