2010-03-05 10 views
3

Tabbar 애플리케이션을 생성 중입니다. 탭 중 하나는 네비게이션 응용 프로그램 인 rss 피드 용입니다. 탭 박쥐 버튼을 클릭하면 해당 탭의보기를로드하는 데 시간이 걸립니다. 이는 응용 프로그램이 피드가 서버에서로드되기를 기다리고 있기 때문입니다. 해당 피드를로드하기 전에보기를로드 할 수있는 방법이 있습니까? 현재로서는 viewDidLoad 메서드에서 요청을 제공하고 있습니다. 그게 바로 문제를 만드는 것입니다. Tabbar 버튼을 클릭하면 뷰가 즉시로드되도록 코드를 어느 부분으로 이동해야합니까?뷰가로드 된 직후에 함수를 실행하십시오.

+3

소켓을 비 블로킹/비동기로 만드는 데 집중해야합니다. 대신 RSS 피드를 가져 오는 동안 "로드 표시기"가 표시됩니다. 로드 된 후에 만 ​​표시됩니다. – peterp

+0

나는 3 개의 탭바, 2 개의 간단한 어플리케이션과 3 번째의 것을 가지고있다. 세 번째 탭을 클릭 한 후에도 피드가로드 될 때까지 뷰가 이전 응용 프로그램입니다. 이로 인해 문제가 발생합니다. 그리고 물론 당신이 제안한대로 정확하게하려고 노력하고 있지만보기가로드 될 때만 수행 할 수 있습니다. – Nithin

답변

1

iCodeBlog에서이 주제에 대해 this great article을 권장합니다.이 방법은 매우 세련된 방법입니다. RSS 피드로드를 NSOperation으로 제출하면 주 스레드를 차단하지 않고 백그라운드에서 잘 수행됩니다.

+1

NSOperation 이외의 다른 방법이 있습니까? – Nithin

+1

이 작업을 수행하는 권장 방법이 왜 효과가 없는지 이유가 무엇입니까? – deanWombourne

+0

자습서 거기 주어진 버튼을 클릭하면 피드를로드하는 반면 자동으로로드해야합니다. – Nithin

1

사용 "performRSS"라는 별도의 기능에

[self performSelector:@selector(performRSS:) withObject:<nil afterDelay:0.3f]; 

또는

[NSThread detachNewThreadSelector:@selector(performRSS:) toTarget:self withObject:nil]; 

과 장소의 RSS 피드 관련 코드.

관련 문제