【问题标题】:eaframework outputstream doesn't work on 11.2.1eaframework 输出流在 11.2.1 上不起作用
【发布时间】:2018-01-03 09:45:22
【问题描述】:
- (void)_writeData {
    while (([[_session outputStream] hasSpaceAvailable]) && ([_writeData length] > 0))
    {
        NSInteger bytesWritten = [[_session outputStream] write:[_writeData bytes] maxLength:[_writeData length]];
        if (bytesWritten == -1) {
            NSLog(@"write error");
            break;
        } else if (bytesWritten > 0) {
            [_writeData replaceBytesInRange:NSMakeRange(0, bytesWritten) withBytes:NULL length:0];
            NSLog(@"bytesWritten %ld", (long)bytesWritten);
        }
    }
}

我的代码和上面苹果官方demo完全一样,除了“iOS 11.2.1”外,通过闪电端口与外部配件的通信工作正常。

我调试了一下,发现确实做了Outputstream发送数据的动作,但是无论如何都失败了,检测不到数据。

有人知道如何找出流中发生的事情吗? 这是苹果的bug吗?

【问题讨论】:

  • 上述问题的任何更新,我在将数据写入外部设备时面临同样的问题。我已经用 iOS 10.3.3 和 iOS 11.2 及以上的代码进行了测试。
  • @sumitkumar 到目前为止,我检查了 11.2.2 的最新版本,没有任何进展。你呢?
  • 还没有,但你能帮我用 iOS 10.3.3,因为我的不工作
  • @sumitkumar 关于您的 10.3.3 我不知道确切原因,因为我没有与系统版本相关的特殊代码,但可能有帮助的一件事是请与您的硬件工程师联系以了解该命令他发来设置与iOS系统的通信,导致我这边之前遇到过这种问题,我们的硬件工程师根据苹果mfi文档更改了命令并修复了。

标签: ios objective-c nsstream external-accessory


【解决方案1】:

终于解决了:

1.硬件端按照Accessory Interface Specification R27.pdf的指示发送StatusExternalAccessoryProtocolSession命令

奇怪的是,在低于 11.2 的版本中,会话可以在没有此命令的情况下设置成功。

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    相关资源
    最近更新 更多