【发布时间】:2012-12-12 17:12:28
【问题描述】:
设置:
我有通过 JSON 输入的数据。
使用 NSJSONSerialization 我将 JSON 转换为对象。
JSON 中的数字值作为几种不同的可能类类型出现在 Objective-C 中:
(NSNumber, NSDecimalNumber or __NSCFNumber) - 所有这些都在 NSNumber 下的类集群中。
问题:
1) 当我拥有NSNumber, NSDecimalNumber or __NSCFNumber 的任何类型的值时,我需要一种方法来获取类簇“伞”类 - NSNumber。
字符串也是如此。我需要一种方法来获取NSString,当我有以下任何一种时:NSString, NSMutableString, __NSCFString, __NSCFConstantString。
2) 例如,如果我可以通过代码获取 NSString 集群中所有类的列表,它也可以工作。然后我可以在运行时动态构建一个列表,并确保它是完整的。
我目前所拥有的:
到目前为止,我还想不出一个理智的方法来做到这一点。所以我有一个允许类型的列表,但恐怕它可能不完整 + 它感觉不是最好的解决方案。
代码: https://github.com/icanzilb/JSONModel/blob/master/JSONModel/JSONModel.m#L45
【问题讨论】:
-
还要注意
NSCFBoolean是NSNumber的子类。
标签: objective-c class types class-cluster