2011-03-15 5 views
0

그래서 이것은 내가 가지고있는 코드 :replaceObjectAtIndex에서 오류가 발생했습니다. 이유를 알아낼 수 없습니까?

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

오브젝트 (9) 존재, 그것은 현재의 int (즉 중요한 있는지 확실하지 않습니다)입니다. selectedColour는 또한 int입니다. dataCenter.tempPalette는 NSMutableArray입니다. 의 주장이 전달

:

그것은 나를주는 오류는 이것이다 ': withObject : replaceObjectsAtIndex'를 캐스팅없이 정수의 포인터를 만든다.

아이디어가 있으십니까?

+0

'selectedColour' 란 무엇입니까? – Wevah

+0

int에 간단한 숫자가 들어 있습니다. – Andrew

답변

6

정수는 개체가 아닙니다. NSMutableArray에 정수를 저장하려면 먼저 + [NSNumber numberWithInt :]를 사용하여 정수를 NSNumber로 변환해야합니다. 오류 메시지는 포인터를 (객체에) 필요로하는 int를 전달하고 있다고 불평하고 있습니다.

0

replaceObjectAtIndex의 두 번째 매개 변수는 개체에 대한 유효한 포인터 여야합니다. 설명에서 int 값 (selectedColour)을 전달하려고 시도하는 것처럼 들리지만 이는 객체에 대한 유효한 참조가 아닙니다.

나는 selectedColour int 값을 전달하는 대신 실제 색상 객체에 대한 참조를 전달하려고합니다. 이것은 아마도 UIColor 객체에 대한 참조 일 것입니다.

같은 색을 나타내는 많은 개체를 저장하려고하는 경우에도 유의하십시오. 효율적으로 메모리를 사용하려면 같은 색상을 사용하는 항목에 대해 동일한 색상 객체를 가리키는 tempPallette 배열 참조를 저장하고 싶을 것입니다.

희망이 도움이됩니다. 행운을 빕니다.

관련 문제