2014-09-21 2 views
0

배열에서 int 값을 설정하는 방법은 무엇입니까? 은 그 같은 시도 :NSarray에서 정수 값 설정

int counter; 
    counter = signArr[4]; 

작동하지 않는, 내가 잘못을 얻을 "변환을 정수하는 호환되지 않는 포인터 유형 'ID'의 매개 변수에 'INT'를 보내"도움말 :

에 대한

감사

+2

배열의 개체는 무엇입니까? 어떤 방법을 제공합니까? – Wain

+0

"singarr [4]"객체는 내 DB에서 오는 번호를 보유합니다. 즉, singarr [4] = 6 또는 다른 숫자 – user3780061

+1

배열은 int와 같은 프리미티브를 포함 할 수 없습니다. 배열에 숫자가 들어 있으면 NSNumber 객체 일 것이므로 intValue를 사용하여 변환해야합니다. – rdelmar

답변

0

귀하의 의견을 통해 숫자가 NSNumber 인스턴스에 박스로 묶여 있다고 추측 할 수 있습니다. 우리는 로그 문을 테스트 할 수 있습니다 (또는 디버거에서) : 그것이 NSNumber 인스턴스 인 경우

NSLog(@"The class is %@", NSStringFromClass[signArr[4] class])); 

하고, 제공에 대한 방법을보고 우리는 당신이 찾고있는 무엇을 제공 할 integerValue을 볼 수 있습니다 .

오류 당신은 당신이 int를 원하는하지만 당신은 id을 가지고

당신을 알려줍니다 유형 'ID'의 매개 변수에 'INT'를 보내 변환을 정수로

호환되지 않는 포인터를 보았다. 당신은 id이 ObjC에서 사용되는 일반적인 포인터 타입이라는 것을 알아야합니다 (만약 당신이 가서 the documentation을 더 읽을 필요가 없다면). 그래서 당신은 객체 포인터에서 원시 int로 변환하는 방법을 찾아야합니다. 첫 번째 단계는 객체 클래스 유형이 무엇인지 알아 내고 문서를 검사하여 목표를 달성하는 데 도움이되는 것이 무엇인지 확인하는 것입니다.