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");
}
} 다른 클래스에서
, 내가 다음을했다.
나를 도와 주실 수 있습니까?
안녕하기 Akshay, 난 당신을 얻을하지 않습니다, 당신은 나에게 좋은 본보기를 줄 수? – Suppi
handleEvent 메소드에 다른 클래스에 대한 포인터를 제공해야합니다. 그런 다음 [[otherClass actOnEvent : output]; 이후 [self messageReceived : output]; – Akshay
actOnEvent를 사용할 때 발견되지 않는다고 ... – Suppi