-[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的用法自行百度。

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

你可能感兴趣的:(-[CAGradientLayer _clearContents]: unrecognized selector sent to instance 0x280aa2b60)