我需要检查数组中每个元素的类型...
for(id obj in items) {
if([obj isKindOfClass:[NSString class]]) {
//handle string case
} else if([obj isKindOfClass:[NSInteger class]]) { //THIS LINE GIVES ERROR
//handle int case
}
}
当然 NSInteger
只是 int
的别名,那么我如何在运行时检查它呢?
最佳答案
您实际上不能将 NSInteger
存储在 NSArray
中,因为它不是对象。如果您在数组中存储数字,它们很可能是 NSNumber
的实例,因此您需要检查:
if ([obj isKindOfClass:[NSNumber class]]) { ... }
iPhone 开发人员提示 gives a good summary NSInteger
和 NSNumber
的区别。
关于objective-c - Obj-C 使用 isKindOfClass 确定整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1352489/