代码: -
#import <Foundation/Foundation.h>
int main(int argc, const char* argv[]){
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
char* charString = argv[1];
printf("%s", charString);
[pool drain];
return 0;
}
问题: -
但上面的行是打印null,如何获取整数数组;
答案 0 :(得分:0)
argv[0]
是您的计划的名称。如果您想阅读参数,请先阅读argv[1]
。当然,您还应该使用argc > 1
检查实际上是否有一些参数。
或者您可以使用[[NSProcessInfo processInfo] arguments]
int main(int argc, const char* argv[]){
@autoreleasepool {
for (NSInteger i = 0; i < argc; i++) {
NSString *stringArgument = [NSString stringWithFormat:@"%s", argv[i]];
NSLog(@"%@", stringArgument);
NSLog(@"Integer value: %i", [stringArgument intValue]);
}
}
return 0;
}
或
int main(int argc, const char* argv[]){
@autoreleasepool {
for (NSString *argument in [NSProcessInfo processInfo].arguments) {
NSLog(@"%@", argument);
NSLog(@"Integer value: %i", [argument intValue]);
}
}
return 0;
}
参数:10 20
输出:
ObjcTest [65709:1964435] / Projects / ObjcTest / Build / Products / Debug / ObjcTest
ObjcTest [65709:1964435]整数值:0
ObjcTest [65709:1964435] 10
ObjcTest [65709:1964435]整数值:10
ObjcTest [65709:1964435] 20
ObjcTest [65709:1964435]整数值:20
请注意,第一个参数无法转换为整数,因此打印值为0
。