如何在NSExpression中使用条件语句(如三元运算符)?
解决NSExpression中实现三元逻辑的问题
NSExpression并不支持传统的?:三元运算符语法,不过你可以使用它内置的IF()函数来实现等价的条件判断逻辑,仅修改format字符串即可。
基础示例
将报错的写法替换为IF()函数形式:
NSExpression(format: "IF(1 + 1 == 2, 'YES', 'NO')").expressionValue(with: nil, context: nil)
这段代码会正确返回字符串"YES",和你预期的三元运算符逻辑完全一致。
复杂逻辑扩展
如果需要处理多层嵌套的条件判断,可嵌套使用IF()函数:
NSExpression(format: "IF(score > 90, '优秀', IF(score > 60, '及格', '不及格'))").expressionValue(with: ["score": 85], context: nil)
内容的提问来源于stack exchange,提问作者Senseful
相关产品推荐
相关产品推荐

