Cocoa中的命令行工具

时间:2010-01-06 21:12:49

标签: cocoa

我创建了一个简单的命令行工具,输出“hello world”。这是在main()函数中完成的。

在一个单独的应用程序中,我可以在hello world工具的输出中创建一个NSTask管道并成功使用它。

然而,我需要我的命令行工具,每秒输出一次(我简化了这一点)。在其他地方我使用NSTimer没有问题,但是在main()函数中创建NSTimer不会让我将'self'设置为目标(我猜因为它不是对象)?

这种结构的正确方法是什么?该工具只需要每秒输出“hello world”,直到进程停止(由将其作为NSTask启动的应用程序)?

3 个答案:

答案 0 :(得分:2)

sleep()功能怎么样?

int main(...) {
  while(1) {
    printf("Hello world!\n");
    sleep(1);
  }
  return 0;
}

答案 1 :(得分:2)

答案 2 :(得分:0)

我的方法是创建一个类(单独或在main.m文件中)。为此,请写(在#import语句下)

  

@interface TimerClass:NSObject

     

/ *类方法,所以“+”符号* / +(void)callFunction;

     

@end

然后

  

@implementation TimerClass

     

。 +(void)timerRespond:(NSTimer *)aTimer   {

     

//调用命令行工具

     

}

在main函数中,调用NSTimer并使其时间间隔为1,并调用TimerClass类的timerRespond。

这应该可以正常工作(可能有一些错误,因为我没有检查Xcode)。告诉我它是否有效。祝你好运!