对于 iOS,给定一些NSDictionary
键/值对,其中字符串值添加为NSString
和int
/float
值添加为NSNumber
,有没有办法测试值的数据类型以查看它是NSString
还是NSNumber
?
问问题
11988 次
2 回答
26
NSObject 提供:
- (BOOL)isKindOfClass:(Class)aClass
如果 obj 是您从 NSDictionary 中获得的值,则结帐:
[obj isKindOfClass:[NSString class]]
[obj isKindOfClass:[NSNumber class]]
如果您检查这些并且您不期望字典中除了 NSString 或 NSNumber 之外的任何内容,那么我将在 else 块中添加一个 NSAssert 。
这里有更多关于 NSString 和 NSCFString 细微差别的评论:
于 2012-07-11T04:02:18.980 回答
7
字典返回一个 id 你可以检查它的类类型如下
if ([[dictionary valueForKey:@"key"] isKindOfClass:[NSString class]]) {
NSLog(@"it is a string");
}
else {
NSLog(@"it is number");
}
于 2012-07-11T04:28:02.733 回答