2010-10-12 5 views
2

У меня есть объект, который я не уверен, является NSString или нет (может быть, NSNull, например, при чтении json в NSDictionary), и я хотел бы получить NSString *, если это допустимая строка, иначе.Лучший способ проверить класс переменной в объекте C?

Есть ли принятый способ сделать это, кроме как написать мою собственную функцию?

+(NSString*)stringWithMaybeString:(id)maybeString { 
    if ([maybeString isKindOfClass:[NSString class]]) 
     return maybeString; 
    return nil; 
} 

ответ

1

Ваш метод выглядит как принятый способ сделать это для меня :)

Возможно, вы могли бы добавить его в NSString, используя категорию.

+0

Мой метод, конечно, в категории NSString :) Но я ожидал, что там будет что-то построенное ... – Danra

+0

@ Danra - иногда вам нужно немного поработать :) – willcodejavaforfood

+0

После некоторого опыта с объективом C, Я могу сказать, что он просто «катит» динамический путь. Поэтому, когда возможно (и иногда требуется) знать статический тип объектов, это просто не так много в мейнстриме. Например, у меня были утверждения в методах проверки того, что тип аргументов соответствует ожидаемому типу, или не нуль. Хотя он и ломал некоторые ошибки, все это время накладывает большую нагрузку на код. Это просто не то, что вам нужно. – Danra

Смежные вопросы