2010-08-30 106 views
0

我使用類似這樣的東西:[tmpArray insertObject:something [i] atIndex:i];如何將指針轉換爲對象?

但我得到了一個MSG:通過「insertObject:atIndex:」的參數1使得整型指針沒有強制轉換。

我應該怎麼做才能解決它?

回答

1

我想你的something[]數組是一個C數組int,如果是這種情況,你不能將它的值在該位置傳遞給NSArray,因爲它包含對象(並且obj-C中的對象被指針引用)。

你可以做的是包裹INT爲NSNumberthis way[tmpArray insertObject:[NSNumber numberWithInt:something[i]] atIndex:i];

1

你不能神奇地讓隨機指針變成一個對象,你需要了解指針的類型是什麼,做一些語義與該類型合理。此外,這不是你所看到的錯誤。這個錯誤是因爲期望的類型是一個指針(並且ObjC中的一個對象也是一個指針類型),並且你傳遞的東西的類型信息是一個標量。

瞎猜,something可能是int數組,如果是的話你想要做的是包裝是爲了將其存儲在一個集合在一個NSNumber整數:

//assuming this: 
int something[100]; 

//then your line should be this: 
[tmpArray insertObject:[NSNumber numberWithInt:something[i]] atIndex:i]; 

顯然你將需要在您訪問它的任何地方取消該值。如果它不是一個整數數組,那麼你將需要做別的事情(雖然可能類似),但沒有更多的信息,我不能告訴你究竟是什麼。

相關問題