2010-12-20 4 views
35
id parent; 
SEL selector; 

// lot's of code... 

if ([parent respondsToSelector:selector]) { 

} 
else { 
    // This doesn't work: 
    NSString *errorMessage = [NSString stringWithFormat:@"%@ in class %@ doesn't exist!", selector, parent]; 
} 

「SEL」と「id」を文字列に変換するにはどうすればよいですか?セレクタ文字列を取得し、parentオブジェクトのクラスのための[parent class]を使用するには、引数として、あなたのセレクタを渡す"SEL"と "id"をNSStringに変換するには?

答えて

80

コールNSStringFromSelector()

NSString *errorMessage = [NSString stringWithFormat:@"%@ in class %@ doesn't exist!", 
    NSStringFromSelector(selector), 
    [parent class]]; 
+13

逆の方法は次のとおりです。 SEL aSelector = NSSelectorFromString( "tapMeAction:" @) ; – neoneye

+0

ちょうど "@%s"、_ cmdは仕事をしている(それでもなお)が、今は警告を出していることを指摘しておきたい。これは正しい方法であるようです。 –

+1

注 - NSStringFromSelectorによって返される文字列の形式は単にセレクタです。 '@" setTitle: "'つまり、 '@セレクタ(〜)'ラッピングなどはありません。 –

関連する問題