2011-03-15 78 views
0

所以這是我的代碼:replaceObjectAtIndex發生錯誤,找不到原因?

[dataCenter.tempPalette replaceObjectAtIndex:9 withObject:selectedColour]; 

對象9確實存在,這是目前一個int(不知道的事項)。 selectedColour也是一個int。 dataCenter.tempPalette是一個NSMutableArray。

它給我的錯誤是這樣的:

傳遞的參數2「replaceObjectsAtIndex:withObject:」時將整數指針不進行強制轉換。

任何想法?

+0

什麼是'selectedColour'? – Wevah 2011-03-15 02:31:23

+0

這是一個int,其中有一個簡單的數字。 – Andrew 2011-03-15 02:33:48

回答

6

整數不是對象。如果你想將整數存儲在一個NSMutableArray中,你需要首先使用+ [NSNumber numberWithInt:]將它們轉換爲NSNumbers。錯誤消息是抱怨你正在傳遞一個int,其中需要一個指向一個對象的指針。

0

replaceObjectAtIndex的第二個參數需要是指向對象的有效指針。從你的描述來看,這聽起來像你正在嘗試傳遞一個int值(selectedColour),它不是對象的有效引用。

我相信,而不是傳入selectedColour int值,您想要傳遞實際顏色對象的引用。這可能是對UIColor對象的引用。

還要記住,如果您試圖存儲許多代表相同顏色的對象。爲了有效地使用內存,您可能需要將指向相同顏色對象的tempPallette數組引用存儲在使用相同顏色的條目中。

希望這會有所幫助。祝你好運。

相關問題