我制作了一个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
上键入类似的内容,它应该给出相同的输出。
答案 0 :(得分:3)
您可以使用candump can0
和argc
参数。它们提供对命令行参数的访问。 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
更好,因为您可以使用基金会类型argv
和NSArray
。