2010-12-20 12 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]; 
} 

Wie konvertiere ich "SEL" und "id" in einen String?Wie konvertiert man "SEL" und "id" in NSString?

Antwort

80

Anruf NSStringFromSelector(), indem Sie Ihre Wähler als Argument die Selektor-String zu erhalten, und verwenden Sie [parent class] für die parent Objektklasse:

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

Der umgekehrte Weg ist: SEL aSelector = NSSelectorFromString (@ "tapMeAction:") ; – neoneye

+0

wollte nur darauf hinweisen, dass "@% s", _ cmd verwendet werden, um zu arbeiten (und tut es immer noch), aber jetzt eine Warnung posten. dies scheint der richtige Weg –

+1

Hinweis - das Format der von 'NSStringFromSelector' zurückgegebenen Zeichenfolge ist einfach der Selektor, z. '@" setTitle: "'. h. es hat keine '@selector (~)' Umhüllung etc. –

Verwandte Themen