2011-08-09 2 views
0

iPhone에서 네트워킹을하고 있는데, 특정 서버에 연결하여 데이터를 보내고받을 수 있습니다. 내 질문은 다른 클래스의 수신 된 데이터에 액세스하는 방법입니다.iPhone의 다른 클래스에있는 대리인의 액세스 값

예 : 아래 코드에서 기본 위임 스트림은 특정 서버의 수신 데이터를 문자열 출력으로 표시합니다. 어떻게 액세스합니까? 다른 수업에서 온거야?

SEL mySelector = @selector(stream:handleEvent:); 
[NSTimer scheduledTimerWithTimeInterval:30.0 target:ISIS selector:mySelector  
userInfo:nil repeats:YES]; 
NSLog(@"Output: %@",ISIS.output); 

하지만 ISIS.output에 null를 받고 :

- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent { 

NSLog(@"stream event %i", streamEvent); 

switch (streamEvent) { 

    case NSStreamEventOpenCompleted: 
     NSLog(@"Stream opened"); 
     break; 
    case NSStreamEventHasBytesAvailable: 

     if (theStream == inputStream) { 

      uint8_t buffer[1024]; 
      int len; 

      while ([inputStream hasBytesAvailable]) { 
       len = [inputStream read:buffer maxLength:sizeof(buffer)]; 
       if (len > 0) { 

        output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding]; 

        if (nil != output) { 

         NSLog(@"server said: %@", output); 
         [self messageReceived:output]; 
        } 
       } 
      } 
     } 
     break; 


    case NSStreamEventErrorOccurred: 

     NSLog(@"Can not connect to the host!"); 
     break; 

    case NSStreamEventEndEncountered: 

     [theStream close]; 
     [theStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
     [theStream release]; 
     theStream = nil; 

     break; 
    default: 
     NSLog(@"Unknown event"); 
} 

} 다른 클래스에서

, 내가 다음을했다.

나를 도와 주실 수 있습니까?

답변

1

다른 클래스의 handleEvent을 호출하는 대신 handleEvent의 데이터를 다른 클래스로 전달해야합니다. 당신은 다른 클래스 대리자 확인하고 handleEvent에 다음과 같은 작업을 수행 할 수 있습니다 -

[self.delegate actOnEvent:data]; //where data is whatever you want to pass & actOnEvent is the name of your method 
+0

안녕하기 Akshay, 난 당신을 얻을하지 않습니다, 당신은 나에게 좋은 본보기를 줄 수? – Suppi

+1

handleEvent 메소드에 다른 클래스에 대한 포인터를 제공해야합니다. 그런 다음 [[otherClass actOnEvent : output]; 이후 [self messageReceived : output]; – Akshay

+0

actOnEvent를 사용할 때 발견되지 않는다고 ... – Suppi

관련 문제