Назвать их внутренними бесплатными именами - вот что сбивает с толку.Если вы называете их NSNumber
и NSString
(как они перечислены в документации), тогда ответ ясен:
if ([value isKindOfClass:[NSNumber class]]) { ... }
РЕДАКТИРОВАТЬ : @Magnus указывает, что этоне очевидно, что NSCFBoolean
isa NSNumber
для их поиска.Это правда.Для меня это очень очевидно, потому что я знаю систему типов Core Foundation и знаю, что означают классы бесплатных мостов и как они реализованы (это один из самых крутых приемов во всем Какао IMO).Но что, если ты не знал этих вещей?Это все еще не проблема.
В отладчике посмотрите список переменных и разверните переменную, которая вам нужна.Его первым «членом» станет суперкласс.Expand.Продолжайте, пока не найдете класс, который вы знаете.
Кроме того, вы можете ходить по суперклассам, используя NSStringFromClass([object superclass])
.Продолжайте отмечать superclass
столько раз, сколько вы хотите проверить.