2014-08-31 4 views
-1

나는 명령 NSQueue을 통해 백그라운드 모드에서 실행되고있는 무효 방법이 있습니다계산이 백그라운드에서 처리되지 않습니까?

NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 

    NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(go) object:nil]; 

    [queue addOperation:operation]; 


    -(void)go{ 

    ... 
    NSArray *idt = ....//Have 276 records 
    int show = 0; 
    float frist = 0.00; 

    for(int x=0;x<[idt count];x++){ 

     int idtcount = [idt count]; 
     frist = x/idtcount * 100; 

     NSLog(@"Frist -> (%d/%d) * 100 = %.2f",x, idt.count,frist); 


    } 

    } 

당신은 내가 'IDT'라는 배열을 가지고 가정 배경 기능에서 루프를하고 있어요 볼 수 있듯이 276 개의 레코드가 있다면 왜 계산을하는지 궁금합니다.

frist = x/idtcount * 100; 

항상 0 값을 반환합니까? 나는이 명령을 테이블 테스트에서 깨달았습니다. 왜 작동하지 않습니다? 어떻게 해결할 수 있을까요?

+0

당신이해야 오브젝티브 C를 사용하려는 경우 이미 C 또는 적어도 Java를 알고 있으며, 정수와 부동 소수점 연산의 차이점에 대해 잘 알고 있어야합니다. * Objective-C를 사용하기 전에 다른 언어로 프로그램하는 법을 배우십시오. 아니면 모든 종류의 잘못을 배울 것입니다. 세상은 당신이 작성하려고하는 커다란 바이러스 성 응용 프로그램에 대해 또 다른 6 개월을 기다릴 수 있습니다. –

+1

@hot 핥기 어떻게 그런 식으로 도움이 되나요 ?? –

+0

@ConorLinehan - 상황에 따라 제공 할 수있는 최고의 조언입니다. –

답변

0

귀하의 모든 값은 정수 나누기가 그들 중 하나를 캐스팅하려고 일으키는 정수로 표시 이중 첫번째 = (더블) ×/idcoubt * 100

관련 문제