如何解析字符串以调用数组及其数组内容

时间:2016-06-07 12:34:32

标签: ios objective-c arrays xcode expression

我想使用valueForKeyPath:

解析字符串和调用数组

例如:

NSArray *myArray = @[1,2,3,4,5,6,7,8];

我有一个字符串如下

myArray[], myArray[3],myArray[1..3]

当我评估这些字符串时,我想要输出如下

evaluate(@"myArray[]")
output:@[1,2,3,4,5,6,7,8]
evaluate(@"myArray[3]")
output:4
evaluate(@"myArray[1..3]")
output:@[2,3,4]

我已经使用valueForKeyPath:使用自定义函数来调用方法和函数。我坚持使用数组和参数

1 个答案:

答案 0 :(得分:1)

您没有尝试过任何尝试,因此不清楚您的问题是什么 - 您似乎知道可以从中构建解决方案的事情(valueForKeyPath:,正则表达式)。

以下是解决方案的概述:

  1. 您的字符串似乎都是以下三种形式之一:数组名称后跟零,方括号中有一个或两个整数。你可以解决这个问题,使用(至少)NSRegularExpressionNSScanner来提取一至三个重要部分。如果您选择NSRegularExpression,请注意将模式写为[].是特殊字符,需要适当的转义 - 只需阅读文档。
  2. 一旦有了这三个部分,就可以使用valueForKey:获取数组的值,假设它是属性或实例变量。
  3. 如果您匹配/扫描了一个或两个索引,那么您可以使用NSArray的方法来获取对象,您可能会发现NSIndexSet在这里很有用。
  4. 就是这样。如果您尝试这样做并且卡住了,请编辑您的问题,显示您尝试过的内容,说明损坏情况,并寻求帮助;有人可能会进一步提供帮助。

    HTH