2013-04-15 3 views
0

나는 항상 서버 싱글 톤 클래스에 연결하는 데 사용됩니다. 나는 서버로부터 응답을 체크하지 않았고 쉽게 데이터를 가져왔다. 이제 10 가지 요청을 사용해야합니다. NSURLConnection 속성을 만듭니다. 어떻게 내가 때문에 내가 다른 데이터다른 NSURLConnection에 대한 싱글 톤

답변

2

당신이 할 수있는 것은 연결, 데이터를 나타내는 사용자 정의 연결 클래스를 가지고있다을 각 요청에서

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 

같이 대리자 메서드에서 사용하는 어떤 연결을 식별 할 수 있습니다 선택적으로 연결에 대한 정보. 연결 만들기

@interface MyConnection : NSObject 

@property NSURLConnection *connection; 
@property id info; 
@property NSMutableData *data; 

@end 

그럼 그냥 배열에 연결을두고, 데이터를 수신 한 연결 발견하기 위해, 서로에 실제있는 NSURLConnection 개체를 비교/실패 등

:이 사용 :

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:someRequest delegate:self]; 

    if (connection){ 
     MyConnection *con = [[MyConnection alloc] init]; 
     con.connection = connection; 
     con.data = [NSMutableData data]; 
     [self.arrayWithConnections addObject:con]; 
    } 

방법 :

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    MyConnection *con = [self getConnection:connection] 
    [con.data appendData:data]; 
} 

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    MyConnection *con = [self getConnection:connection]; 
    [con.data setLength:0]; 
} 

-(MyConnection *)getConnection:(NSURLConnection *)con 
{ 
    for (MyConnection *myCon in self.arrayWithConnections) 
     if ([con isEqual: myCon.connection]) 
      return myCon; 
    return nil; 
} 
+0

은 대단히 감사합니다 – user2213271