Ios UIColor resolveClassMethod未从选择器解析

Ios UIColor resolveClassMethod未从选择器解析,ios,objective-c,uicolor,Ios,Objective C,Uicolor,我对此代码有问题: NSString *value = (NSString*)[self.colorsData objectForKey:key]; SEL selector = NSSelectorFromString(value); BOOL isColorMethod = [[UIColor class] resolveClassMethod:selector]; 作为SEL选择器传入的字符串值是@“redColor”,您知道这是UIColor的类方法;但是'isColorMet

我对此代码有问题:

NSString *value = (NSString*)[self.colorsData objectForKey:key]; 
SEL selector = NSSelectorFromString(value);   
BOOL isColorMethod = [[UIColor class] resolveClassMethod:selector];
作为
SEL
选择器传入的字符串值是
@“redColor”
,您知道这是
UIColor
的类方法;但是
'isColorMethod'
BOOL
总是返回NO


此代码用于我正在构建的样式引擎。

好的,我有一个修复程序。。。尽管
respondsToSelector
未显示为可用的类方法,您仍可以执行此操作:

BOOL isColorMethod = [[UIColor class] respondsToSelector:selector];
然而,我不确定为什么
respondsToSelector
不起作用时
resolveClassMethod
不起作用


因此,尽管我在回答我自己的问题,但我很想知道这里发生了什么。

你使用了错误的方法。如果你想知道某个东西是否是字符串方法,你应该使用它。

坦白说,我没有你问题的答案。但是为什么不将UIColor对象放入colorsData数组中呢?它们几乎不会比NSString对象消耗更多内存。因为我的颜色值是作为字符串从plist中提取的。我正在将字符串转换为十六进制、RGB和友好名称,如“红色”、“蓝色”等。我正在构建一个主题引擎。您不应该使用
[UIColor resolveClassMethod:selector]?也许这并没有多大区别。在这种情况下,通过调用
resolveClassMethod
,您到底想要实现什么?您是否要将自定义的
redColur
添加到UIColor?或者您只是尝试动态调用工厂方法?如果是,那么请看一看啊,我想您应该检查
value
中的值是否实际对应于正确的类方法名称。