0
有一些擴展的NSNumber:NSExpression NSNumber的擴展斯威夫特改變3.0
extension NSNumber {
func factorialF() -> NSNumber {
return tgamma(self.doubleValue + 1)
}
}
然後我在計算中使用這個擴展
var stringFunction: String = "FUNCTION(10,'factorialF')"
var expn: NSExpression = NSExpression(format: stringFunction)
var result = expn.expressionValueWithObject(with: nil, context: nil)
在Xcode 7.3.1和2.2雨燕的所有作品,但在Xcode 8和Swift 3.0我有一些錯誤在我的擴展NSNumber「否'tgamma'候選人產生預期的上下文結果類型'NSNumber'」
我修復了這個錯誤,但得到新的
extension NSNumber {
func factorialF() -> Double {
return tgamma(self.doubleValue + 1)
}
}
var stringFunction: String = "FUNCTION(10,'factorialF')"
var expn: NSExpression = NSExpression(format: stringFunction)
var result = expn.expressionValue(with: nil, context: nil)
我得到了新的錯誤這裏
var result = expn.expressionValue(with: nil, context: nil)
錯誤:操場執行中止:錯誤:執行被中斷,原因是:EXC_BAD_ACCESS(代碼= EXC_I386_GPFLT)。 該進程已停留在被中斷的位置,使用「線程返回-x」返回表達式評估之前的狀態。
如何正確地修復擴展NSNumber中的第一個錯誤?
什麼是所有作品'tgamma',它從何而來? – Moritz
@EricAya:這是一個標準的數學庫函數,在終端中嘗試'man tgamma'。 –