2011-08-25 3 views
1

Objective-C에서 초보자이므로 아직 대표자 개념을 얻지 못했습니다. 나는 주변을 둘러 보았지만 대답은 이해할 수 없었기 때문에 나는 이것을 내 자신의 말로 묻고있다.NSURLConnection 및 객체 위임

I는 그 4 개 함수와 DownloadDelegate을 구현 :

  • (공극) 연결 (있는 NSURLConnection *) 연결 didReceiveResponse (NSURLResponse *) 응답 {
  • (공극) 연결 (있는 NSURLConnection *) 연결 didReceiveData (을 NSData *) 데이터 {
  • (공극) 연결 (있는 NSURLConnection *) 연결 didFailWithError (NSError *) 오류 {
  • (공극) connectionDidFinishLoading (있는 NSURLConnection *) 연결 {

문제는, 데이터를 다운로드 한 후 보내고 싶습니다. 그 방법은 내 appviewcontroller에 있었을 때 그렇게 할 수 있었지만, 다운로드 프로세스를 여러 번 호출하고 싶었 기 때문에 대리자에 넣어야한다고 생각했습니다 (심지어 사실입니까?)

하지만 대리인에게 데이터를 보내고 검색하는 방법을 알지 못합니다. 그건 그렇고 처음에 NSURLConnection을 설정하기 위해 사과 자습서를 사용 했으므로 제대로 작동했습니다. Link

어떤 도움을 주셔서 감사합니다!

답변

2

아마도 대리인이 무엇인지 혼란 스러울 것입니다. 귀하의 경우에 NSURLConnection은 위에서 언급 한 것과 같은 중요한 이벤트에 대한 정보를 보내기 위해 위임자 (선언하려는 노드)를 사용합니다. 실제 대리자는 뷰 컨트롤러 또는 다른 모델 클래스의 일부이거나 자체 파일에있을 수 있습니다. 중요하지 않습니다. 있는 NSURLConnection의 대리자를하고 실제로 콜백을 받기 위해서는, 당신은 당신이 당신의 연결을 시작 어디든지

@implementation DownloadDelegate : NSObject <NSURLConnectionDelegate> 

그런 다음 @implementation 선언에 프로토콜을 선언해야합니다, 당신은 그 선언의 대리인으로 자신을 설정해야

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:string]]; 
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];//here is where you are declaring yourself as the delegate 
[connection start]; 

희망이 있습니다.

+0

실제로 대리인이 무엇인지 혼란 스러웠습니다. 답변 해주셔서 감사합니다 – Crafti