2012-02-17 41 views

回答

2

第一個是演員。你正在把這個對象轉換爲一個int值,這會給你一個包含對象地址的int值(在64位以下,它只包含地址的低32位)。這完全不是你想要的。

第二個是一個方法調用-intValue,這是由NSNumber(和NSString)來實現,以返回該NSNumber(或NSString)對象表示int。這(大概)是你真正想要的。

0

第一條語句不是轉換。它是存儲在數組中的元素2的指針。該語句只是將該指針的值(轉換爲int)賦值給該變量。

第二個陳述是對話。它調用-intValue存儲在該索引處的指針2指向的對象(可能是NSNumber實例)。

0

- intValue適用於NSString *NSNumber *類型的物體。

如果你的對象實際上是@"123",或[NSNumber numberWithInt:123],而不是僅僅int 123,然後使用- intValue將其轉換爲123。如果您嘗試直接使用(int)進行投射,並且它是以上兩種類型之一,那麼您將遇到錯誤,並將其作爲int(因爲它不是,這是更復雜的類型)。

相關問題