【问题标题】:iOS how to extract command line arguments from string into NSDictionary in Objective-C?iOS如何将命令行参数从字符串提取到Objective-C中的NSDictionary?
【发布时间】:2014-08-07 21:27:14
【问题描述】:

我正在尝试解析字符串,提取命令行参数并将它们存储在 NSDictionary 中。我看到something similar is already possible using NSUserdefaults,如下所述:

MyApplication -aString "Hello, World" -anInteger 10

NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];

NSString *aString = [standardDefaults stringForKey:@"aString"];
NSInteger anInteger = [standardDefaults integerForKey:@"anInteger"];

有没有办法使用 -key value 格式从任何字符串中提取通用参数到任何 NSDictionary 中?

【问题讨论】:

  • 1) 这被标记为 iOS。为什么?您不会在 iOS 应用程序中处理命令行参数。 2) NSUserDefaults 与命令行参数没有任何关系。
  • 我在 iOS 应用程序中有一个控制台,我正在处理在该控制台中键入的命令行参数。用户默认值只是参数外观的一个示例

标签: ios objective-c parsing command-line arguments


【解决方案1】:

我会说不,因为这个原因:NSDictionaries 不一定是简单的结构。例如,“值”可能是一个原始对象,但它可能是另一个 NSDictionary 或 NSArray。也就是说,如果您的字符串是 JSON 格式,它将使用任何 JSON 库进行映射,包括 iOS 中的库。

【讨论】:

    【解决方案2】:

    没有内置的方法,实际上 NSUserDefaults 也不这样做——它只是访问传递给程序的参数,而不是任意的 shell 命令。你必须自己解析它。这将有多复杂取决于您需要多少复杂性。对于您在此处显示的内容,查找空格并在找到时匹配引号的 NSScanner 就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      相关资源
      最近更新 更多