我正在使用NSJSONSerialization解析JSON字符串,然后将其转换为NSDictionary来处理键-值对。服务器发送的JSON字符串中的某些值作为整数发送,但是NSDictionary表示它们为CFNumber,例如:
<CFNumber 0xa581270 [0x1d7b4d8]>{value = +0, type = kCFNumberSInt32Type}
我该如何将这个内容转换为int或NSNumber类型?
我正在使用NSJSONSerialization解析JSON字符串,然后将其转换为NSDictionary来处理键-值对。服务器发送的JSON字符串中的某些值作为整数发送,但是NSDictionary表示它们为CFNumber,例如:
<CFNumber 0xa581270 [0x1d7b4d8]>{value = +0, type = kCFNumberSInt32Type}
由于toll-free bridging的原因,您可以直接进行转换。
NSNumber *num = (NSNumber *)cfnum;
NSNumber *num = (__bridge NSNumber *)cfnum;
NSNumber和CFNumberRef是免费桥接的,这意味着要将一个转换为另一个,您只需将其中任何一个强制转换为所需类型即可。在ARC代码中,要将CFNumberRef转换为NSNumber,请使用(__bridge NSNumber*) theCFNumberRef。