【问题标题】:How to make a GUI on Xcode (iPhone) for a console application made in C.如何在 Xcode (iPhone) 上为用 C 制作的控制台应用程序制作 GUI。
【发布时间】:2012-07-04 20:33:07
【问题描述】:

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

有什么建议吗??

【问题讨论】:

  • 以编程方式重定向标准输入/标准输入输出。

标签: iphone xcode terminal


【解决方案1】:

首先,创建一个 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 中具体做了什么,但这应该会向您展示这里的总体思路。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2011-04-11
    • 1970-01-01
    相关资源
    最近更新 更多