CFNumber转换成int还是NSNumber?

4

我正在使用NSJSONSerialization解析JSON字符串,然后将其转换为NSDictionary来处理键-值对。服务器发送的JSON字符串中的某些值作为整数发送,但是NSDictionary表示它们为CFNumber,例如:

<CFNumber 0xa581270 [0x1d7b4d8]>{value = +0, type = kCFNumberSInt32Type}

我该如何将这个内容转换为int或NSNumber类型?
2个回答

6

由于toll-free bridging的原因,您可以直接进行转换。

NSNumber *num = (NSNumber *)cfnum;

如果启用了ARC
NSNumber *num = (__bridge NSNumber *)cfnum;

0

NSNumber和CFNumberRef是免费桥接的,这意味着要将一个转换为另一个,您只需将其中任何一个强制转换为所需类型即可。在ARC代码中,要将CFNumberRef转换为NSNumber,请使用(__bridge NSNumber*) theCFNumberRef。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接