先吐槽下 苹果的iCloud真心设计的心塞,然后再吐槽下github中ZYQAssetPickerController不靠谱。。。。
最近App出了些岔子,然后自己也好好测试了很多地方,比如添加照片,这个时候就出现坑了,妈蛋,明明相册里面有八百多张照片,怎么在App里面就只有58张照片显示出来。当看到这个结果时,头皮一阵发麻,要知道这个是线上App啊 ,但是等待的噩梦并没有到来,没有用户跟我反馈这个bug 。
觉得这个问题有点严重,可是为什么就自己的机子出这个问题,一直想不明白这原因, 以前手机也没出现这问题呀,手机的系统也没有升级 。( App使用的是 ZYQAssetPickerController 这个库 )
最后实在是没办法 ,更新了 ZYQAssetPickerController到最新版本 ,终于出现了之前消失的照片 ,可是 ZYQAssetPickerController 这个真是无语,以前获取到原图的方法很简单 。
-(void)assetPickerController:(ZYQAssetPickerController *)picker didFinishPickingAssets:(NSArray *)assets
assets 中的各个asset 是 ALAsset 类型的 可以转成各种图,原图,全屏图,缩略图 很方便。
更新ZYQAssetPickerController 到最新版的后,ALAsset 换成了 ZYQAsset 类型的了,没法直接转各种图片,提供了两个方法:
-(void)setGetFullScreenImage:(void (^)(UIImage *))getFullScreenImage
-(void)setGetOriginImage:(void (^)(UIImage *))getOriginImage
第一个是获取的图片大小压缩成了屏幕大小 , 这个不是我想要的 , 第二啪啪啪写上去 ,最后发现啥情况,拍拍电脑手机,咋不出来呢 , 最后看看demo ,demo里面只是演示了 setGetFullScreenImage的用户 ,没办法 ,只得 看看 setGetOriginImage为啥出问题了 , 结果不看不知道,一看吓一跳 。
坑爹的 ZYQAssetPickerController对! 你没看错。 没有实现过程,日了 🐩 了 。
没办法,只得自己按照setGetFullScreenImage里面的实现过程,将功能补上。
问题就这么告一段落了 。
可是还是想不明白为啥以前好好的,现在自己的手机出现这岔子,联合之前从 支付宝里面选取照片时 有个提示:“正在从iCloud中提取照片”当时有点蒙,怎么在iCloud里面提取的呢 ?最后又想到了,好像这段时间翻老照片 右下角有个圈圈在转 由模糊变得清晰,当时还以为自己的手机存储怎么这么慢了,读个照片这么慢, 又想到 以前截个 长截图,当时截图看的很清晰,最后分享给别人时,图片迷糊了 。
这个时候做了个测试 :开飞行模式,看老照片, 发现以前的照片都是 模糊的 ,右下角是个感叹号 , 这下懵逼了,最后在设置里面找到图片设置 , 仔细看了下下面的小字儿。
图片来自网上,之前没来的及截图看到这里 ,也差不多明白问题的原因了: 估计是在不经意间开启了 “优化iPhone存储空间” ,然后导致图片都到了云端, 然后为啥 其他的App 如QQ、微信不受影响,而我的App受影响,因为App里面的ZYQAssetPickerController一直没更新,很老了,所以不支持从云端读 。
(关闭掉这个功能后,把图片从iCloud中下载下来,我的App中就算用以前的版本ZYQAssetPickerController也能看到全部照片了。)
至于为啥就我的手机出这茬子呢? 想了下,一般很少有人 使用iCloud ,觉得很不方便,就算开了也不一定会 选择“优化iPhone存储空间”,就算选择了大家也不一定会跟我一样穷是16G大小的空间, 估计大家的手机空间都够大,不会出现 本地版存的是模糊照片 。
如果空间足的话,本地会存原图的 。
瞬间觉得iOS 套路多,我的见识短了。
网友评论