How to convert "SEL" and "id" to NSString?

Manni picture Manni · Dec 20, 2010 · Viewed 20.7k times · Source
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];
}

How do I convert "SEL" and "id" to a String?

Answer

BoltClock picture BoltClock · Dec 20, 2010

Call NSStringFromSelector() passing your selector as its argument to get the selector string, and use [parent class] for the parent object's class:

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