2013-03-24 64 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。