-[CAGradientLayer _clearContents]: unrecognized selector sent to instance 0x280aa2b60

最近Bugly上记录了一个关于关于CAGradientLayer _clearContents的崩溃日志,并且全部只在iPhone Xs Max机型上出现。进过排查发现是项目中有人使用了rumtime,给UIView添加了一个Category,添加渐变色,使用到CAGradientLayer这个类,在该Category中重写了系统的方法layerClass导致,重写系统方法导致了项目所有UIView的layerClass方法被重写,返回的是一个 [CAGradientLayer class]的类。

+ (Class)layerClass {
    return [CAGradientLayer class];
}

解决方法:不使用该Category,注释掉重写的layerClass方法。不通过这种方式的来到一个渐变效果。直接使用CAGradientLayer这个类就可以满足得到渐变色的效果。CAGradientLayer的用法自行百度。

注:开发中尽量不要重写系统的方法,重写系统方法会导致整个项目中的某些系统方法被修改了,导致一些错误。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容