如何解析字符串调用数组和数组内容
问题描述:
我想用解析字符串并调用数组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:
来调用方法和函数。我坚持使用数组和参数
答
你没有显示任何你已经尝试过的东西,所以你不清楚你的问题是什么 - 你似乎知道你可以从中构建解决方案的东西(valueForKeyPath:
,正则表达式)。
这里是一个解决方案的概要:
- 你的字符串的所有似乎是一个三种形式:数组名,然后在方括号零,一个或两个整数。您可以使用(至少)
NSRegularExpression
或NSScanner
将其分解为一到三个重要部分。如果您选择NSRegularExpression
,那么只需谨慎编写该模式为[
,]
和.
是特殊字符,并且需要适当的转义 - 只需阅读文档。 - 一旦你有你的三部分,你可以使用
valueForKey:
假设它是一个属性或一个实例变量获得数组的值。 - 如果您已经匹配/扫描了一个或两个索引,那么您可以使用
NSArray
的方法获取对象,您可能会发现这里有用NSIndexSet
。
就是这样。如果你试图做到这一点,卡住编辑你的问题,显示你已经尝试过什么,说明什么是坏的,并寻求帮助;有人可能会进一步帮助。
HTH
+0
谢谢,我会检查出来 – Sumanth
看来你正在编写一个小型编译器。 –
不是。我的要求是,我会从服务器获取这些字符串,我必须从我的应用数据中动态评估这些字符串,并将输出返回给服务器。 – Sumanth
这就是我的意思。你正在对表达式进行文本表示并试图将它们作为代码执行,这是一种编译器类型的函数。 (或者,“解释者”可能会更准确。) –