我寫了一個函數,看起來像這樣:傳遞參數時將整數指針不進行強制轉換
- (void)changeText:(NSUInteger)arrayIndex;
我們只能說這是在類標籤的方法。比方說,我有一個Label對象的數組。我把這樣的功能:
[[labels objectAtIndex:0] changeText:1];
或像這樣:
NSUInteger index = 1;
[[labels objectAtIndex:0] changeText:index];
爲什麼它給我的警告:Passing argument 1 of 'changeText:' makes pointer from integer without a cast
?代碼執行得很好。
* 編輯 *
調用函數這些方式並沒有給出一個警告:
[[labels objectAtIndex:0] changeText:0]; //arrayIndex is 0
Label *object = [labels objectAtIndex:0];
[object changeText:1];
代碼看起來很好,我在這裏沒有得到這樣的警告。這是給你警告的確切代碼嗎? – 2011-03-22 03:54:02
是啊,喬希是正確的,即使我嘗試了代碼,並沒有給我一個警告。請輸入您使用的確切代碼,因爲這不會給出任何警告。 – 2011-03-22 05:11:51
我懷疑是對的。 objectAtIndex:返回一個NSObject,並且編譯器無法確定應用哪個changeText:消息。顯然還有一些其他changeText:在他的系統中可能需要一個NSString *。在編譯器知道要構建哪個消息之前,必須將NSObject轉換爲Label *。以我的答案爲例。 – Vagrant 2011-03-22 06:04:40