我正在使用 NSJSONSerialzation 解析 JSON 字符串,然后将其转换为 NSDictionary 以使用键值对。JSON 字符串中的一些值是由服务器作为整数发送的,但是,NSDictionary 将它们表示为 CFNumber,例如
<CFNumber 0xa581270 [0x1d7b4d8]>{value = +0, type = kCFNumberSInt32Type}
我怎样才能将它巧妙地转换为 int 或 NSNumber ?
我正在使用 NSJSONSerialzation 解析 JSON 字符串,然后将其转换为 NSDictionary 以使用键值对。JSON 字符串中的一些值是由服务器作为整数发送的,但是,NSDictionary 将它们表示为 CFNumber,例如
<CFNumber 0xa581270 [0x1d7b4d8]>{value = +0, type = kCFNumberSInt32Type}
我怎样才能将它巧妙地转换为 int 或 NSNumber ?
由于免费桥接,您可以直接投射它
NSNumber *num = (NSNumber *)cfnum;
如果启用了 ARC
NSNumber *num = (__bridge NSNumber *)cfnum;
NSNumber 和 CFNumberRef 是免费桥接的,这意味着将一个转换为另一个您所要做的就是将您拥有的任何一个转换为您想要的类型。在将 CFNumberRef 转换为 NSNumber 的 ARC 代码中,使用 (__bridge NSNumber*) theCFNumberRef。