对于iOS,给定一些NSDictionary
键/值对,其中字符串值已添加为NSString
,int
/ float
值已添加为NSNumber
,有没有办法测试值的数据类型,看它是NSString
还是NSNumber
?
答案 0 :(得分:25)
NSObject提供:
- (BOOL)isKindOfClass:(Class)aClass
如果obj是您从NSDictionary中获得的值,那么结帐:
[obj isKindOfClass:[NSString class]]
[obj isKindOfClass:[NSNumber class]]
如果你检查这些并且你不希望字典中有NSString或NSNumber,那么我会在else块中添加一个NSAssert。
这里有更多关于NSString和NSCFString的细微差别的评论:
答案 1 :(得分:6)
Dictionary返回一个id,你可以检查它的类类型如下
if ([[dictionary valueForKey:@"key"] isKindOfClass:[NSString class]]) {
NSLog(@"it is a string");
}
else {
NSLog(@"it is number");
}