【发布时间】:2013-01-18 15:36:29
【问题描述】:
我正在使用DDMathParser 来解析公式并计算结果,效果很好。
问题:
如果替换字典中不存在变量,是否可以将变量设置为默认值?
示例:
我的公式$a + $b 需要两个变量$a 和$b。但是,我的替换字典仅包含变量键 a 的值(例如 1),但不包含键 b。
将变量b 定义为0 作为默认值并避免解析错误消息"unable to resolve variable" 的首选方法是什么?
谢谢!
编辑
我使用DDMathParser 的方式是循环多个公式并为每个公式提供相同的变量替换字典。有时,我没有变量的值:在这种情况下,变量(键和值)不会包含在字典中。
根据公式本身,如果其中一个变量不存在,我想返回 nil 作为公式的结果(例如,我没有 profit 的值,而公式是 $profit / $revenue ,我想返回nil,我可以稍后将其转换为n/a的NSString)或将变量设置为0,如果它在字典中不存在(例如,对于像$profitA + $profitB + $profitC这样的公式,我想假设 0 用于任何缺失的变量($profitA、$profitB 或 $profitC)。
因此,我不能使用通用解决方案,它总是返回 0 或 nil,但需要将此逻辑放入公式中(例如,作为自定义函数)。
【问题讨论】:
标签: ios objective-c parsing nsdictionary nspredicate