【发布时间】: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