gpt4 book ai didi

ios - 评估 NSExpression 中的值

转载 作者:行者123 更新时间:2023-11-28 08:35:21 26 4
gpt4 key购买 nike

我正在使用 NSExpression 来评估以下操作。但是我为此收到 NSInvalidArgumentException 错误。请让我知道如何评估以下操作。提前致谢

  let formula:NSString = "((y*4)⁄5)"
formula=formula.stringByReplacingOccurrencesOfString("y", withString: "8")
let expression = NSExpression(format: formula as String)
if let convertedValue = expression.expressionValueWithObject(nil, context: nil) as? NSNumber {
formula=NSNumber(float:convertedValue.floatValue).stringValue
}

最佳答案

有点晚了,但这是为了其他人的利益。 formula 应该是一个 var ,因为你改变它,但大概这是一个复制错误,或者你的代码永远不会编译。

我将您的代码复制到 playground 中并遇到了类似的错误,但仅限于通过替换方法获得的表达式。逐个字符地检查字符串,我终于发现你的“/”有些不同。看到不同? /⁄。我已经为 Swift 3 更新了它;似乎有很多尴尬的类型转换!

var formula = "y*4/5"
//"((y*4)⁄5)" : what you had, brackets were superfluous but ok
formula = formula.replacingOccurrences(of: "y", with: "8")

let expression: NSExpression = NSExpression(format: formula)

if let convertedValue = expression.expressionValue(with: nil, context: nil) {
let formula = String(convertedValue as! Float)
print(formula)
}

请注意,您会得到一个整数答案。如果您想要一个真实的结果,您必须将“.0”添加到其中一个操作数。

关于ios - 评估 NSExpression 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37915683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com