1
好的球員,我掙扎與此:我已經成功地使自定義函數不帶參數的工作是這樣的:如何將參數傳遞給Swift中NSExpression的自定義NSNumber函數?
NSExpression(format: "function(1+1, 'myCustomFunction'").expressionValueWithObject(nil, context: nil) as! Double
但我不知道該怎樣實現與參數的自定義函數的想法,我已經嘗試過通過下面的字符串NSExpression沒有成功:
"function(1+1, 'myCustomFunctionWithArgument(42)')" // 42 as the argument
其中自定義函數的樣子:
public extension NSNumber {
func myCustomFunctionWithArgument(x: Double) -> NSNumber
//...
}
不過,我得到以下錯誤:
-[__NSCFNumber myCustomFunctionWithArgument(42)]: unrecognized selector sent to instance 0xb000000000000045
2016-03-14 18:23:00.755 MyApp[3517:263390] *** Terminating app due to uncaught exception
我已經找遍了,我只能找到Objective-C的答案,就像本教程: https://spin.atomicobject.com/2015/03/24/evaluate-string-expressions-ios-objective-c-swift/#comment-549856
在他解釋瞭如何做到這一點就完了Objective-C,但不是在Swift中。有什麼辦法可以做到嗎?順便說一句,這是我的計算器應用程序。