연결

2009-07-09 4 views
0

iPhone 용 objective-c에 대해 NSURLConnection에 대해 질문하고 싶습니다.연결

데이터를 받기 위해 하나의 웹 서비스 (예 : YouTube 비디오)를 연결해야하는 앱이 하나 있습니다. 그런 다음 연결해야하는 모든 것들이 있습니다 (Hello_Soap 샘플 코드와 유사). didReceiveResponse, didReceiveData, didFailWithErrorconnectionDidFinishLoading :

그러나 지금, 내 문제는 내가 Connection라는 이름의 클래스를 (NSObject에서 상속) 만들고 내가 방법을 구현 한 것입니다. 또한 방법

-(void)Connect:(NSString *) soapMessage{ 
    NSLog(soapMessage); 

    NSURL *url = [NSURL URLWithString:@"http://....."]; 
    NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; 
    NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]]; 


    [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
    [theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"]; 
    [theRequest setHTTPMethod:@"POST"]; 
    [theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]]; 

    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 

    if(theConnection) 
    { 
     webData = [[NSMutableData data] retain]; 
    } 
    else 
    { 
     NSLog(@"theConnection is NULL"); 
    } 
} 

하지만 내 AppDelegate에에서 내가 한 Connection 개체를 만들 때 :

Connection * connect = [[Connection alloc] Init:num]; //It's only one param to test. 
[connect Connect:method.soapMessage]; 

을 그리고이 방법을 호출이 완료 될 때, 그것은 didReceiveResponse, didReceiveData, didFailWithError를 호출 계속되지 않습니다 또는 connectionDidFinishLoading. 나는 이것을하려고 노력하고 있지만 나는 잠시 할 수 없다.

내가하고 싶은 건이 클래스를 "Connection"이라고 부를 때마다 데이터를 받고 싶습니다. (그 후에 파싱되어 UITableView에 표시됩니다.)

감사합니다.

+0

위임 방법도 게시하십시오. 또한 Objective-C 규칙은 메소드 이름이 소문자로 시작한다는 것입니다. – Chuck

답변

0

내가 탐구 할 수있는 출발점은 클래스 이름을 "연결"하지 않는 것입니다. Objective-C에는 네임 스페이스가 없으며 "Connect"와 같은 일반적인 이름을 사용하면 같은 이름의 다른 클래스가 문제를 일으킬 수 있습니다.

프로젝트 또는 회사와 관련된 몇자를 앞에 붙이는 것이 관례입니다. 예를 들어 프로젝트의 이름이 놀라운 이름 인 경우 클래스 이름을 "ATConnector"로 지정할 수 있습니다. .h 파일에서 클래스 이름을 강조 표시하고 "Refactor"메뉴 명령을 사용하여 다른 참조를 쉽게 수정할 수 있습니다.

또한 호출 후 Connect 클래스 나 NSURLconnection을 해제하는 경우 대리자 메서드가 호출되지 않는 것을 볼 수 있습니다.하지만 코드에서 결정하기는 어렵습니다.

+0

외부 코드를 다루지 않는 한 접두사를 사용할 필요가 없습니다. 접두사가없는 유일한 Apple 클래스는 Object 및 Protocol과 같은 핵심 Objective-C 언어 클래스입니다. – Chuck

관련 문제