指定objective-C命令行应用程序的参数

时间:2015-01-01 05:22:06

标签: objective-c command-line-arguments

我制作了一个Objective-C命令行应用程序,它接受用户输入的字符串。 目前我创建它的方式是它在命令提示符下询问用户

int main(int argc, const char * argv[]) {
@autoreleasepool {
    printf("Enter your string: ");
    char str[11];
    scanf("%s", str);
    printf("Your string is %s\n", str);
    NSString *lastName = [NSString stringWithUTF8String:str];

    NSLog(@"lastName=%@", lastName);
}
return 0;

}

因此,当我通过键入programName从终端运行此程序时,我将获得以下内容:

Enter your string:

相反,我想在终端programName StringThatNeedsToBeneterd上键入类似的内容,它应该给出相同的输出。

1 个答案:

答案 0 :(得分:3)

您可以使用candump can0argc参数。它们提供对命令行参数的访问。 C的许多介绍将描述它们如何工作。

但是,由于您使用的是Objective-C和Foundation框架,因此可以使用the arguments property of NSProcessInfo

argv

这比使用NSLog(@"arguments: %@", NSProcessInfo.processInfo.arguments); // NSProcessInfo.processInfo.arguments[0] is the executable's name. if (NSProcessInfo.processInfo.arguments.count > 1) { NSString *lastName = NSProcessInfo.processInfo.arguments[1]; } argc更好,因为您可以使用基金会类型argvNSArray