gpt4 book ai didi

iphone - 将 iOS 上的 printf 重定向到用户界面

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:37 25 4
gpt4 key购买 nike

我是 iOS 开发(和 Obj-C)的新手,我正在尝试将现有的 C 程序移植到 iOS。

C 程序通常在控制台运行,但我想在 iPhone 上为它制作一个 UI。我已经移植了 C 代码,当模拟器运行时,我可以在控制台窗口中获得 printf 输出。我想尽可能避免更改原始代码,所以这是我的计划:

  1. 程序需要一些时间来执行,所以我想我需要在一个单独的线程上运行它。看起来我只需要一个 NSInvocationOperation 来调用它的主要方法。
  2. 我会将标准输出重定向到管道。
  3. 在另一个线程上,我将从管道中读取数据,并将其发送到 UI。我不确定用于此的最佳并发 API 是什么。

这对 iOS 来说是个好策略,还是有更好的移植方法?有什么我应该注意的陷阱吗?

最佳答案

对于并发,使用调度队列进行最快的编程。 See this guide: http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html

要打印到屏幕上,您可以通过多种不同的方式来实现,但如果您只是想立即在屏幕上显示文本,则只需使用 UILabel。您也可以稍后将其格式化。

多线程的主要缺陷与在任何操作系统上一样 - 锁定任何具有同步读/写的数据模型。您可以使用 @synchronize 或使用 dispatch barriers 使您的调度队列线程安全,这也在上面的链接指南中提到。

关于iphone - 将 iOS 上的 printf 重定向到用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11937467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com