메서드 내에서 메서드 내에서 메소드를 호출합니다.
-
11-12-2019 - |
문제
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에 추가하십시오. 이렇게하면 메인 스레드와 병렬로 새 스레드가 생성되고 메서드가 실행됩니다.
여기에 몇 가지 유용한 링크가 있습니다 :
http://www.icodeblog.com/tag/nsoperation/
http : //www.cimgf.COM / 2008 / 02 / 16 / COCOA-튜토리얼 - nsoperation-and-nsoperationqueue /
다른 팁
다른 모든 방법은 무엇을하고 있습니까?인스턴스의 네트워크 요청 인 경우 백그라운드 스레드가 실제로 작업을 수행 할 수 있도록 실행 루프가 필요할 수 있습니다.
제휴하지 않습니다 StackOverflow