使用runtime的swizzle引起的一些问题

问题描述

在使用一个GitHub上第三方库(TZImagePickerController)的时候,第三方库的Demo可以正常的保存拍照后的图片到系统相册,而将这个库引入到我的项目中会引起错误。

错误出处:TZImagePickerController Issue

控制台输出

Property list invalid for format: 200 (property lists cannot contain objects of type ‘CFNull’)” UserInfo={NSDebugDescription=Property list invalid for format: 200 (property lists cannot contain objects of type ‘CFNull’)

解决方法

发现是因为添加对NSArray,NSDictionary等集合的runtime防止崩溃的代码。当我去除NSDictionary的runtime的swizzle代码后,一切就正常了。原因应该是当保存照片时,发生了对NDictionary插入操作了nil导致的过滤行为引起的保存异常。

所以,强大功能,职责广泛的runtime的swizzle技术,也会因为修改系统的库导致一些潜在的问题。类似于过敏反应。

文章来自 http://skymonkey.cn/

高能广告区

暂无广告哦=^^=。继续看看其它文章吧!