2013-03-24 41 views
2

我使用NSJSONSerialzation解析JSON字符串,然后将其转换为NSDictionary以使用键值对。服务器将JSON字符串中的一些值作为整数发送,但是,NSDictionary将它们表示为CFNumber,例如,CFNumber为int或NSNumber?

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

我怎样才能把它整齐地转换成int或NSNumber?

回答

5

你可以施放它,因为toll-free bridging

NSNumber *num = (NSNumber *)cfnum; 

如果启用ARC

NSNumber *num = (__bridge NSNumber *)cfnum; 
0

的NSNumber和CFNumberRef的免费电话桥接,这意味着一个转换到其他所有你需要做的无论你选择哪种类型,都可以投射出你想要的类型。在将CFNumberRef转换为NSNumber的ARC代码中,使用(__bridge NSNumber *)theCFNumberRef。