如果存在类方法,如何在运行时检查?

Pro*_*ber 2 objective-c uikit uislider ios

从iOS5开始,UIKit可以使用自定义图像进行自定义.我们有一个必须与iOS 4兼容的应用程序,但如果用户有iOS 5,我们想要自定义滑块.

例:

[[UISlider appearance] setMaximumTrackImage:maxImage forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

如果可以执行此调用,在运行时检查的安全方法是什么?respondsToSelector:方法仅用于实例,但这里它是一个类本身.

Max*_*Max 7

你可以使用resolveClassMethod:例如:

[MYClass resolveClassMethod: @selector(trololo)];
Run Code Online (Sandbox Code Playgroud)

或者您可以使用respondsToSelector:因为类也是Objective C中的对象.

  • 确实,"trololo"作为`resolveClassMethod:`的默认实现返回`NO`. (3认同)