当我从XCode调试OSX应用程序时,我可以从XCode调试控制台与应用程序的控制台进行通信 - 例如,应用程序可以printf()
到stdout
并且显示在XCode调试控制台上,我的应用程序可以在fgets()
上调用stdin
,我可以在XCode调试控制台中输入输入。
在调试iOS iPhone应用程序时,似乎XCode挂钩stdout
(printf()
et.al。工作正常),但不是stdin
?
有没有人在iOS / iPhone上stdin
工作?这在调试期间非常有用 - 即使使用iOS Cocoa应用程序也是如此。我可以用更复杂的方式使用它,比如使用套接字,但我只是让XCode为我做这个。
更新:
嗯,这可以解释它。 iOS模拟器实际为/dev/null
打开stdin
。可以找出stdout
的去向(通常是/dev/ttys00X
)然后用O_RDONLY
重新打开它并将其分配给stdin。这适用于iOS模拟器,但看起来与iphone硬件的串行连接的线路规则是错误的 - 你可以在xcode调试控制台中输入输入,它永远不会被发送到iphone硬件(并且你的程序正在运行)在iPhone硬件上只会等待stdin
又名/dev/ttys00X
)上显示的内容。
我想知道是否有任何方法可以使用iPhone硬件?
答案 0 :(得分:2)
我没有这个确切问题的解决方案,而且很可能没有办法做到这一点。我有另一个建议。我在我的一个项目中使用它并且效果很好。
我使用AsyncSocket库来实现微型TCP服务器,我可以使用telnet连接到该服务器并与我的应用程序通信。这种方法有一些优点: