2010-07-02 2 views
0

잘못된 recever 유형 ...내가 SEM 여기에 문제가 될 것이 무엇인지 찾아 캔트 INT

NSArray *oneMove; 
oneMove = [[bestMoves objectAtIndex:i] componentsSeparatedByString:@","]; 
int from, to; 
int temp = [[oneMove objectAtIndex:0] intValue]; 

from = [temp intValue]/100; //"Invalid receiver type int" 
to = [temp intValue]%100; //"Invalid receiver type int" 

NSLog(@"%d, %d", from, to); 

것은이 : 그것은 올바른 값을 가져 '에'작동 '에서'와하지만 난 경고를 얻을 표시된 줄에 ...

누구나 그 수정 방법을 알고 있습니까?

답변

3

온도가 이미 int 값, 아니 NSNumber입니다

THX) (컴파일 할 때이를 경고처럼 해달라고). 따라서 메시지에 [temp intValue] 메시지를 보낼 수 없습니다.

그냥 사용

from = temp/100; 
to = temp % 100; 

편집 : 여기 작동 증명 코드 :

NSArray *bestMoves = [NSArray arrayWithObject:@"499,340,124"]; // Example data 
NSArray *oneMove = [[bestMoves objectAtIndex:0] componentsSeparatedByString:@","]; 
int from, to; 
int temp = [[oneMove objectAtIndex:0] intValue]; 

from = temp/100; // Code change 
to = temp%100; // Code change 

NSLog(@"%d, %d", from, to); 

출력이 4 예상대로, 99

+0

가 있지만 줘 아무튼 시도 올바른 결과. temp는 3132 (네가 내 방식대로한다면 얻을 수있는 것)와 같은 4 자리수를 가지고있다.하지만 내가 제안한 것을한다면 나는 97759792를 얻는다. – zwadl

+0

나는 temp를 전혀 변경하지 않았다. oneMove가 예상 한 가치를 보유하고 있는지 확인 했습니까? NSNumber 객체 여야합니다. 그런 다음 NSLog ("% d", temp); 이게 효과가 있는지보기 위해서. 그렇지 않으면 데이터 모델이 손상됩니다. – Eiko

+0

oneMove 배열에는 분석에 도움이되는 2 개의 NSCFString 객체가 포함되어 있습니다 (bestMoves Array와 마찬가지로)? – zwadl