Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSExpression表达式中的自定义变量_Ios_Objective C_Swift_Expression - Fatal编程技术网

Ios NSExpression表达式中的自定义变量

Ios NSExpression表达式中的自定义变量,ios,objective-c,swift,expression,Ios,Objective C,Swift,Expression,最近我发现了NSExpression类,我想知道是否有可能在表达式中计算自定义变量 大概是这样的: 5+4+MYVAR*5 我想用自定义双精度值替换这个MYVAR字符串 如果这不存在,我将使用循环和类似的方法,但希望有一个内置的(更快的)解决方案 谢谢 let myInt = 4 let myFormulaInt = "5 + 4 + myInt * 5" let intElements = ["myInt": myInt] let myResultInt = NSExpression(fo

最近我发现了NSExpression类,我想知道是否有可能在表达式中计算自定义变量

大概是这样的:

5+4+MYVAR*5
我想用自定义双精度值替换这个MYVAR字符串

如果这不存在,我将使用循环和类似的方法,但希望有一个内置的(更快的)解决方案

谢谢

let myInt = 4
let myFormulaInt = "5 + 4 + myInt * 5"
let intElements = ["myInt": myInt]

let myResultInt = NSExpression(format: myFormulaInt).expressionValueWithObject(intElements, context: nil).integerValue

println(myResultInt)   // 29


let myDouble = 2.5
let myFormulaDouble = "5 + 4 + myDouble * 5"
let doubleElements = ["myDouble": myDouble]

let myResultDouble = NSExpression(format: myFormulaDouble).expressionValueWithObject(doubleElements, context: nil).doubleValue

println(myResultDouble)   // 21.5
Xcode 8 GM•Swift 3

let myInt = 4
let myFormulaInt = "5 + 4 + myInt * 5"
let intElements: [String:Int] = ["myInt": myInt]

let myResultInt = NSExpression(format: myFormulaInt).expressionValue(with: intElements, context: nil) as! Int

print(myResultInt)   // 29


let myDouble = 2.5
let myFormulaDouble = "5 + 4 + myDouble * 5"
let doubleElements: [String: Double] = ["myDouble": myDouble]

let myResultDouble = NSExpression(format: myFormulaDouble).expressionValue(with: doubleElements, context: nil) as! Double

print(myResultDouble)   // 21.5

谢谢,我还能说什么:)