2014-10-20 79 views
2

當使用這種int轉換成* NSInteger的

NSInteger *myInteger = 45 ; 

我得到的警告信息Incompatible Integer to pointer conversion sending 'NSInteger' (aka 'int') to parameter of type 'NSInteger *' (aka 'int *') 我已閱讀使用同樣的警告其他職位,但沒有找到妥善的解決辦法。

+6

你不能命名一個變量'int',它保留... – rebello95 2014-10-20 07:37:48

+0

替換* int與一些變量名稱,如a,x或任何其他你想要的 – iYoung 2014-10-20 07:59:11

+0

是的..我後來意識到..沒有在發佈問題的同時非常注意變量名稱。更注重產生的警告。已糾正它,以避免任何混淆 – shirjai 2014-10-20 08:33:14

回答

6

NSInteger不是NSObject的子類,因爲看起來它是原始類型。你的代碼更改爲:

NSInteger a = 45 ; 

和(當然)不命名變量int

+0

感謝您的response.sorry我不好的選擇錯誤的例子。 – shirjai 2014-10-20 08:29:30

1

你應該使用不同的名稱,然後詮釋,因爲它是一種特殊的基本類型整數的名稱。就像你不能用的名字像名稱的變量,同時,虛空......只需使用另一個名字(你應該命名它來了解它持有),如:

NSInteger myFirstInteger = 45;  

注:在你未來的項目,請用一個有意義的名稱命名變量,以便創建一段易於理解和改進的有意義的代碼。

+4

這是不正確的,一個NSInteger不應該是一個指針。在myFirstInteger之前刪除星號。 – ttarik 2014-10-20 08:10:17

+0

沒錯,我編輯了我的答案。感謝糾正,我以爲我在寫關於NSNumber的錯誤。 – 2014-10-20 08:23:56