我有一个NSDictionary,以及在给定键的情况下如何获取数据类型的值
可能吗?
最佳答案
您可以检查您接受的变体
id objectValue = [dictionary valueForKey:@"SomeKey"];
if ([objectValue isKindOfClass:[NSString class]]) {
//Object is a NSString
} else if ([objectValue isKindOfClass:[NSArray class]]) {
//Object is a NSArray
} else if ([objectValue isKindOfClass:[NSDictionary class]]) {
//Object is a NSDictionary
} else if ([objectValue isKindOfClass:[NSNumber class]]) {
//Object is a NSNumber
}
依此类推。.在这种模式下,只需处理您的应用程序支持的所有类型。忽略此模式不支持您的应用的值,或者当您不支持该值的数据类型时,以其他方式优雅地失败
要弄清楚它是什么类(例如,调试应用程序),可以执行以下操作:
NSString *className = NSStringFromClass([objectValue class]);