2

我有一个用 C 语言制作的控制台应用程序,在终端中运行良好。但我需要将它移植到 iPhone。所以我需要制作一个响应模仿终端的 GUI。所以基本上我需要输入数据并从控制台应用程序获取输出(printf)。这个 C 应用程序连接到路由器,所以我不确定是否有实现 GUI 的方法,可能是从控制台应用程序接收输出的文本字段。问题是,iphone 没有终端,C 应用程序在 Xcode 中编译得很好,它也被加载到 iPhone 上。但是由于没有终端..它只是打印一些诸如“正在连接..”之类的东西,但是连接完成后......它会断开连接。我猜是因为它没有找到任何可以与之交互的终端。我已经尝试过 -MobileTerminal- 但该应用程序只能在越狱的 iphone 上运行,所以我不想要那个。

有什么建议么 ??

4

1 回答 1

3

首先,创建一个 iPhone 应用程序。相应地创建您的 UI 和其他内容。

其次,将 C 文件添加到您的项目中,在那里执行您的逻辑。由于 main() 不是您的应用程序的入口点,因此您需要修改代码逻辑并将其组织到方法中。

第三,在要使用逻辑的地方添加对您创建的 C 文件的引用。

最后,直接调用方法就可以了。


这是我尝试的一个小例子:

  1. 我创建了一个 iPhone 单视图项目 getCNumber。

  2. 我在项目中添加了两个文件:Number.h 和 Number.m

在 Number.h 中:

  #include <stdio.h>

  int getNum();

在 Number.m 中:

  #include "Number.h"

  int getNum()
  {
      return 234;
  }


3. In getCNumber.xib, I have a label.

在 getCNumber.h 中,

    #import <UIKit/UIKit.h>

    @interface getCNumber : UIViewController
    {
         UILabel *lblNum;
    }

    @property (nonatomic, retain) IBOutlet UILabel *lblNum;

    @end

在 getCNumber.m 中,在 -(void)viewDidLoad() 中,

    - (void)viewDidLoad
   {
          [super viewDidLoad];
      // Do any additional setup after loading the view, typically from a nib.

          int someNum = getNum();
          self.lblNum.text = [NSString stringWithFormat:@"Number from C: %i",someNum];

    }

您可能需要做一些额外的工作才能让您的 C 程序与 iOS“包装器”一起使用,因为我不确切知道您在 C 中做了什么,但这应该向您展示这里的一般想法。

希望能帮助到你。

于 2012-07-20T18:09:45.613 回答