2011-10-10 7 views
0

지금 문제가 있습니다. 나는 wikimeta를 사용하여 위키피디아 데이터를 얻고 싶다. NSString methode (stringWithContentsOfURL : encoding : error :)로 데이터를 얻습니다. 그러나 때때로 연결이 실제로 느릴 때 URL 데이터를 가져 오는 프로세스를 취소하고 싶습니다. 하지만, 그 방법을 사용하면 버튼이나 UIView에 터치를 감지 할 수 없으므로 프로세스를 멈출 수 없습니다. 누구든지 내 문제를 해결할 수있게 도와 줄 수 있니? UITextView에서 데이터를 볼 수 있도록 URL에서 데이터를 가져와 UITextView에 데이터를 설정하는 방법.웹에서 데이터를 가져와 UITextView에 삽입하는 방법은 무엇입니까?

고맙습니다. 문안 인사.

답변

0

주 스레드에서 네트워크 연결을 수행하면 단추를 누를 수 없으므로 UI가 멈 춥니 다.

올바른 방법은 백그라운드 스레드에서 긴 동작을 수행하고 주 스레드에서만 UI 작업을 수행하는 것입니다.

NSURLConnection은 백그라운드 스레드에서 서버의 실제 데이터 페치를 쉽게 수행 할 수있는 비동기 메서드를 제공합니다. 이러한 방법을 사용하는 방법에 대한 내용은 NSURLConnection Class Reference

입니다. 그러나 멀티 스레딩의 개념은 매우 중요하므로 비동기 메서드를 사용하기 전에 약간의 내용을 읽으시기 바랍니다. 당신이 기본 개념을 학습 한 후

당신은 내가 this tutorial를 읽어 보시기 바랍니다의 apple documentation

에 대한 완벽한 가이드를 읽을 수 있습니다. 그것은 초보자를위한 잔인한 ASIHTTPRequest를 사용하지만, 거기에 스레드 개념의 설명은 내 의견으로는 매우 좋습니다.

+0

NSURLConnection의 비동기 메서드를 사용하여 문자열을 검색하는 것이 훨씬 간단합니다. 아마 –

+0

. 그러나 멀티 스레딩은 중요한 개념이므로 지금 올바르게 학습하고 사물을 단순화하는 방법을 이해하는 것이 좋습니다.이 자습서는 실제로 교육적입니다. 그것은 단지 NSURLConnection 대신에 ASIHTTPRequest를 사용하지만, 같은 개념입니다. – adamsiton

+0

예,하지만 - OP가 비동기 호출을 모르는 경우 GCD가 큰 도약이 될 것입니다. 또한, NSURLConnection에 대한 비동기 호출은 사용하기 쉽고 어쨌든 배경으로 사용됩니다. 따라서 귀하의 ASIHTTPRequest 제안은이 점을 개선하지 못합니다. 키스. –

관련 문제