如何发送和接收来自外部附件的数据异步

问题描述:

我对从外部附件异步发送和接收数据感到困惑。我使用MFi External Accessory,我查了EADemo,但似乎是发送和接收数据的同步方式。有关这方面的任何建议,提前致谢。如何发送和接收来自外部附件的数据异步

你所输入/输出流附加到runLoop首先:

[[session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[[session inputStream] open]; 
[[session outputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[[session outputStream] open]; 

成为他们的代表:

[[session outputStream] setDelegate:self]; 
[[session inputStream] setDelegate:self]; 

一旦你成为委派你必须实现这个方法:

-(void)stream:handleEvent:{}; 

这里是一个例子:

-(void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)_event { 
    switch (_event) 
    { 
     case NSStreamEventHasBytesAvailable: 
      /* This part will be executed every time your rx buffer contains at least 1 byte */ 
      switch(state) { 
       uint8_t ch; 
       /* Read byte per byte */ 
       [stream read:&ch maxLength:1]; 
       /* now ch contains a byte from your MFI device 
       ** and 'read' function decrease the length of the rx buffer by -1 */ 
      } 
      break; 
    } 
} 

这是将数据写出到流命令:我要失败响应

/* txQueue is a NSData containing data to transmit. */ 
[[session outputStream] write:(uint8_t *)[txQueue bytes] maxLength:[txQueue length]]; 
+0

。请帮帮我? –