문제

i : 와 같은 appDelegate에서 클래스 메소드를 호출했습니다.

    RankingAndSMProcess *process = [RankingAndSMProcess alloc];

    [process performSelectorInBackground:@selector(DoRankingAndSocialMediaProcessing) withObject:nil];

    [process release];
.

이 메소드는 다른 방법을 호출합니다.

     @try {
         [self GoForRankingProcess];
         [self updateItemsForPeerindex];
         [self updateItemsForKloat];
         [self updateItemsForKred];
     }
     @catch (NSException *exception) {
         NSLog(@"An Error has been occured:%@", exception);
     }
     @finally { 
         [items release];
         [profile release];
     }
.

runkingandsmprocess의 dorankingandsocialmediaprocessing 메소드 내에서 호출 된 모든 메소드는 배경 스레드의 dorankingandsocialmediaprocessing과 같은 방식으로 호출되어야합니까?아니면 여기에 또 다른 잠재적 인 문제가 있습니까?

현재 새로운 데이터가 수집되지 않기 때문에 처리 방법 중 하나가 해고되고 있지 않다고 생각하지 않습니다.

백그라운드에서 수행 할 호출 변경을 추가하기 전에 모든 메소드 및 전체 프로세스가 예상대로 작동했습니다.

도움이 되었습니까?

해결책

nsoperation을 생성 하고이 작업을 nsOperationQueue에 추가하십시오. 이렇게하면 메인 스레드와 병렬로 새 스레드가 생성되고 메서드가 실행됩니다.

여기에 몇 가지 유용한 링크가 있습니다 :

iPhone에서 nsoperation

http://www.icodeblog.com/tag/nsoperation/

http : //www.cimgf.COM / 2008 / 02 / 16 / COCOA-튜토리얼 - nsoperation-and-nsoperationqueue /

이것이 당신을 도울 것입니다.

코딩을 즐기십시오 :)

다른 팁

다른 모든 방법은 무엇을하고 있습니까?인스턴스의 네트워크 요청 인 경우 백그라운드 스레드가 실제로 작업을 수행 할 수 있도록 실행 루프가 필요할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top