Я новичок в Objective-C, поэтому то, что я пытаюсь сделать, может оказаться невозможным. Я занимаюсь рефакторингом большой функции C на несколько функций C и методов Obj-C.
Возможно ли это?
Следующее не будет строить и жалуется
«Я» необъявленное.
void serverCB(CFReadStreamRef stream, CFStreamEventType event, void *myPtr)
{
switch(event) {
case kCFStreamEventHasBytesAvailable:
[self readStreamData:stream];
break;
case kCFStreamEventErrorOccurred:
NSLog(@"A Read Stream Error Has Occurred!");
break;
case kCFStreamEventEndEncountered:
NSLog(@"A Read Stream Event End!");
break;
default:
break;
}
}
-(void) readStreamData: (CFReadStreamRef)stream
{
NSData *data = [[NSMutableData alloc] init]; //TODO: I have to flush this at some point..?
uint8_t buffer[1024];
unsigned int len = 0;
len = [(NSInputStream *)stream read:buffer maxLength:1024];
if(len > 0)
{
[data appendBytes:&buffer length:len];
}
NSString *serverText = [[NSString alloc] initWithData: data encoding:NSASCIIStringEncoding];
[data release]; // I got my string so I think I can delete this
[self processServerMessages:serverText];
}
}
В первой из перечисленных функций 'serverCB' я пытаюсь отправить сообщение 'readStreamData' текущему объекту. Так я могу вызывать только функции c из функций c?
Спасибо!