2010-12-01 8 views
0

내가 내 기능은 목표 C에서 % 연산자를 사용하는 함수 만들려고 노력 해요 :사용 % 연산자

-(void) image1:(UIImageView *)img1 
     image10:(UIImageView *)img10 
     image100:(UIImageView *)img100 
     score:(NSInteger *)sc 
{ 
     NSInteger* s100,s10,s1; 

    s100 = sc % 100; 
    s10 = (sc - s100 * 100) % 10; 
    s1 = (sc - sc % 10); 
    NSLog(@"%d",s1); 
} 

을하지만 난 오류가있어 .. 당신이 어떤 솔루션

에 저를 인도 할 수
+0

그럼 궁금한 점은 무엇입니까? 당신의 기능이해야 할 일은 무엇입니까? – Vladimir

+0

그래서 네 질문은 ..? – Jasarien

+0

어떤 오류가 있습니까? 어떤 해결책? – JeremyP

답변

1

그런 개체를 암시 적으로 만들 수는 없습니다. s100, s10, s1 및 sc all을 C 스타일 변수로 지정하려고하지만 Objective-C 객체를 보유하는 것처럼 s100 및 sc를 포인터로 선언했습니다. 두 경우 모두 NSInteger*NSInteger으로 변경하는 것이 좋습니다. NS에서 시작하는 모든 것이 객체는 아닙니다.

+1

s10과 s1은 포인터가 아닙니다. – JeremyP

+0

당신은 완전히 옳습니다; 나는 소스를 잘못 읽었습니다. 나는 또한 sc가 포인터라는 것을 놓쳤다. 내 대답을 바로 잡을거야. – Tommy

5

NSInteger는 기본 유형입니다. 환경에 따라 32 비트 또는 64 비트 부호있는 정수로 typedef됩니다.

S100의 선언은

NSInteger* s100 

그렇게 S100 포인터입니다. 포인터의 법칙을 취하는 것은 잘못되었습니다. 그 줄은 다음과 같아야합니다 :

NSInteger s100,s10,s1; 

그리고 sc는 아마도 NSInteger 여야합니다. NSInteger에 대한 포인터를 실제로 전달하려는 경우 산술을 수행 할 때 참조를 역 참조해야합니다.

s100 = *sc % 100; 
s10 = (*sc - s100 * 100) % 10; 
s1 = (*sc - *sc % 10); 
+0

훌륭한 직업 JeremyP ... 많은 감사 –

+0

@Mouhamad Lamaa : 문제 없음 – JeremyP