С NSDictionary вы можете определить тип данных значения?
Для iOS, учитывая некоторые пары ключей/значений NSDictionary
, в которые были добавлены значения строк, в качестве NSString
и int
/float
были добавлены значения NSNumber
, существует ли способ проверить тип данных значение, чтобы увидеть, является ли оно NSString
или NSNumber
?
Ответы
Ответ 1
NSObject предлагает:
- (BOOL)isKindOfClass:(Class)aClass
если obj - это значение, которое вы выберете из NSDictionary, затем выполните проверку:
[obj isKindOfClass:[NSString class]]
[obj isKindOfClass:[NSNumber class]]
Если вы проверяете их, и вы не ожидаете ничего, кроме NSString или NSNumber в словаре, я бы добавил NSAssert в блок else.
Здесь больше комментариев о нюансах NSString и NSCFString:
В Objective-C, как я могу проверить тип объекта?
Ответ 2
Словарь возвращает идентификатор, вы можете проверить его тип класса следующим образом
if ([[dictionary valueForKey:@"key"] isKindOfClass:[NSString class]]) {
NSLog(@"it is a string");
}
else {
NSLog(@"it is number");
}