0

我对这段代码有疑问:

NSString *value = (NSString*)[self.colorsData objectForKey:key]; 
SEL selector = NSSelectorFromString(value);   
BOOL isColorMethod = [[UIColor class] resolveClassMethod:selector];

SEL作为选择器传入的 String 值是@"redColor"; 如您所知,它是 ; 的类方法UIColor。但'isColorMethod' BOOL总是返回 NO。

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

4

2 回答 2

1

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

于 2013-04-23T08:29:20.513 回答
0

好的,我有一个修复......尽管respondsToSelector没有显示为可用的类方法,但您可以这样做:

BOOL isColorMethod = [[UIColor class] respondsToSelector:selector];

但是,我不确定为什么resolveClassMethod不起作用respondsToSelector

所以,虽然我在回答我自己的问题,但我很想知道这里发生了什么。

于 2013-04-23T08:28:41.207 回答