Привет, я делаю приложение для iPAD, в котором мне нужно захватить данные, поступающие с внешнего устройства, которое отправляет 512 значений в секунду. Я использовал внешние аксессуары API от Apple для того же и есть код, как показано ниже: -захват потока данных с использованием внешних аксессуаров Apple API
- (void)stream:(NSStream*)theStream handleEvent:(NSStreamEvent)streamEvent
{
switch (streamEvent)
{
case NSStreamEventNone: //Sent when open complete
//NSLog(@"NSStreamEventNone");
break;
case NSStreamEventOpenCompleted: //Sent when open complete
//NSLog(@"NStreamEventOpenCompleted: %@", theStream);
break ;
case NSStreamEventHasBytesAvailable:
{
//NSLog(@"NSStreamEventHasBytesAvailable");
uint8_t buffer[1024];
unsigned int len=0;
len=[(NSInputStream *)theStream read:buffer maxLength:1024];
if(len>0){
NSData* data=[NSData dataWithBytes:buffer length:len];
NSString *value = [[NSString alloc] initWithData:dataencoding:NSASCIIStringEncoding];
}
}
break;
case NSStreamEventHasSpaceAvailable:
os = theStream;
break;
case NSStreamEventErrorOccurred:
//NSLog(@"NSStreamEventErrorOccurred");
break;
case NSStreamEventEndEncountered:
////NSLog(@"NSStreamEventEndEncountered");
break;
default:
break;
}
}
Что я получаю от этого какой-то искаженный текст без соответствующего кодирования. Я также попытался использовать приведенное ниже: -
NSString *value = [[NSString alloc] initWithData:dataencoding:NSUTF8StringEncoding];
, но это просто возвращает значение null. Edit: - когда я NSLog, я получаю ниже: -
vªª€ÿù…ªª€ ÿûƒªª€ÿK3ªª€ÿ£Ûªª€ÿ˳ªª€ÿ}ªª€ÿ噪ª€
Я должен получить целые числа здесь. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно здесь.
Вы использовали NSLog "dataencoding"? Вы получаете данные? –
См. NSLog возвращаемого значения выше. – Rasmus