我正在使用 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 是免费桥接的,这意味着将其中之一转换为另一种,您只需将其中一个转换为您想要的类型即可。在 ARC 代码中,使用 (__bridge NSNumber*) theCFNumberRef 将 CFNumberRef 转换为 NSNumber。