ios-sim:如何在我的iPhone应用程序中访问命令行参数?

3
我正在使用在github上发现的强大工具ios-sim。它允许你通过命令行运行模拟器,并且可以选择使用哪个模拟器(iPhone或iPad)。
我能够无缝地使用它来运行我的应用程序。然而,我不确定如何使用通过命令行传递给我的应用程序的参数。
有没有人做过这个或者知道如何做?
./ios-sim launch iTest.app --family ipad --args argument1 argument2

我该如何在iPhone应用程序中访问argument1和argument2?


请参考我在以下链接中的回答:http://stackoverflow.com/questions/8009472/does-any-one-have-used-ios-sim-utility-to-run-app-file-in-simulator 供您参考,有许多版本的实用程序都存在... 每个实用程序都有一些独特之处..... 1. iPhoneSim 2. iPhoneSim 3. WaxSim 如果您找不到解决方案,请明确说明您想要什么? - DShah
3个回答

2

在 main.m 文件中,您可以使用以下代码打印参数:

int main(int argc, char *argv[])
{
 int i;
 for (i = 0; i < argc; i++) {
          NSLog(@"%s", argv[i]);
 }


@autoreleasepool {
...
...
    }
}

啊,我明白了。我怎么在我的控制器中访问这些 argc 变量呢?我的意思是,我可以在那里循环遍历它们,但是如何存储这些变量,以便稍后可以由控制器访问它们?所以需要一种全局变量的形式吗? - Abs
1
尝试使用NSUserDefaults类:http://www.cocoadev.com/index.pl?NSUserDefaults和http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html - CarlJ
我不确定在哪里使用!我猜main.m是唯一可以访问参数的地方,但我不能在main.m中声明NSUserDefaults? - Abs
谢谢您一直以来的帮助 - 这对我来说是新的。我认为我理解了所有的东西,但是我无法在我的控制器中使用 [standardDefaults valueForKey:1],因为 standardDefaults 没有被声明? - Abs
1
NSUserDefault就像一个“全局存储环境”。 - CarlJ
显示剩余4条评论

1
您可以使用此代码来获取参数:

[[NSProcessInfo processInfo] arguments];

我知道这是一个老问题,但我认为将其发布供以后参考。


-2

iOS不支持命令行访问。 这是来自苹果的Cocoa基础指南,第17页 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html#//apple_ref/doc/uid/TP40002974-CH3-SW27

一般来说,iOS的系统库和框架最终支持UIKit是Mac OS X中库和框架的子集。例如,在iOS中没有Carbon应用程序环境,在Darwin中没有命令行访问(BSD环境),没有打印框架和服务,并且QuickTime缺少平台。但是,由于iOS支持的设备的性质,有一些特定于iOS的框架,包括公共和私有框架。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接