2013-04-23 3 views
0

에서 해결하지이 코드 문제가 있습니다 : 문자열 값이 SEL 선택하면 UIColor의 클래스 방법 알고 @"redColor"이다로 전달되는UIColor resolveClassMethod은 선택

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

; 'isColorMethod'BOOL은 항상 NO를 반환합니다.

이 코드는 내가 작성중인 스타일링 엔진 용입니다. respondsToSelector 그렇게되면 resolveClassMethod가 작동하지 않는 이유를 잘 모르겠어요

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

:

+0

솔직히 나는 귀하의 질문에 대한 답을 갖고 있지 않습니다. 하지만 UIColor 객체를 colorsData 배열에 퍼팅하는 것이 어떻습니까? 그들은 NSString 객체보다 훨씬 많은 메모리를 거의 소비하지 않습니다. –

+0

내 색상 값이 plist에서 String으로 가져 오기 때문에. 나는 16 진수, RGB 및 '빨강', '파랑'등과 같은 친숙한 이름으로 문자열을 변환합니다. 테마 엔진을 구축하고 있습니다. –

+0

'[UIColor resolveClassMethod : selector];'를 사용하면 안됩니다. 어쨌든 차이가별로 없을 수도 있습니다. –

답변

0

좋아, 난 당신이 respondsToSelector이 가능한 수준의 방법으로 표시되지에도 불구하고, 대신에이 작업을 수행 할 수 있습니다 ... 수정이 그러나.

나는 내 자신의 질문에 대답하고 있지만, 여기서 무슨 일이 일어나고 있는지 알고 싶어합니다.

관련 문제