ios - Swift 中的 NSExpression 计算器

标签 ios cocoa-touch swift ios8

我正在尝试复制 Need to write calculator in Objective-C在 Swift 中,但我的代码无法正常工作。

import Foundation

var equation:NSString = "5*(2.56-1.79)-4.1"

var result = NSExpression(format: equation, argumentArray: nil)

println(result)

最佳答案

如评论中所述,您必须调用 expressionValueWithObject() 关于表达:

let expr = NSExpression(format: equation)
if let result = expr.expressionValueWithObject(nil, context: nil) as? NSNumber {
    let x = result.doubleValue
    println(x)
} else {
    println("failed")
}

Swift 3 更新:

let expr = NSExpression(format: equation)
if let result = expr.expressionValue(with: nil, context: nil) as? Double {
    print(result) // -0.25
} else {
    print("failed")
}

关于ios - Swift 中的 NSExpression 计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24704028/

相关文章:

ios - 拉取刷新数据

iphone - 在 iPhone 上对 double 组或 CLLocationDistance 值进行排序

ios - swift如何处理内存中的nil值

ios - UIButton 的动画图像不会快速显示

ios - 显示来自 FB 和 Gmail 登录的用户信息

ios - UICollectionReusableView 中的标签始终为零

ios - 我的 iPhone 应用程序应该占用多少内存?

iphone - 按钮 titleLabel 设置为隐藏 YES,触摸时重新出现

iphone - 进入/退出编辑模式时重绘 UITableViewCell

ios - 如何在 iOS 中使用 NSRegularExpression 替换字符串?