Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
Swift 无法调用';性能操作';具有类型为';(NSAttributedString)和#x27;_Swift - Fatal编程技术网

Swift 无法调用';性能操作';具有类型为';(NSAttributedString)和#x27;

Swift 无法调用';性能操作';具有类型为';(NSAttributedString)和#x27;,swift,Swift,大脑。执行操作错误为 无法使用类型为的参数列表调用“performOperation” “(NSAttribute字符串)” 这是斯坦福大学白胡子教师课程的内容,为什么Stackoverflow强制用户输入更多文本,这是非常不合理的您需要将NSAttributedString转换为String,因为您的函数只接受String参数 通过这种方式,您可以将NSAttributedString转换为String: func evaluate() -> Double? { let (re

大脑。执行操作
错误为

无法使用类型为的参数列表调用“performOperation” “(NSAttribute字符串)”


这是斯坦福大学白胡子教师课程的内容,为什么Stackoverflow强制用户输入更多文本,这是非常不合理的

您需要将
NSAttributedString
转换为
String
,因为您的函数只接受
String
参数

通过这种方式,您可以将
NSAttributedString
转换为
String

 func evaluate() -> Double? {
    let (result, _) = evaluate(opStack)
    return result
}

 func performOperation(symbol: String) -> Double? {
    if let operation = knownOps[symbol] {
        opStack.append(operation)
    }
    return evaluate()
}

它会很好地工作。

您需要将
NSAttributedString
转换为
String
,因为您的函数只接受
String
参数

通过这种方式,您可以将
NSAttributedString
转换为
String

 func evaluate() -> Double? {
    let (result, _) = evaluate(opStack)
    return result
}

 func performOperation(symbol: String) -> Double? {
    if let operation = knownOps[symbol] {
        opStack.append(operation)
    }
    return evaluate()
}

谢谢,我知道它们是两种不同的类型,但是我有代码var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!)!.doubleValue}set{display.text=“(newValue)”}var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!)!.doubleValue}set{display.text=“(newValue)”}}谢谢,我知道它们是两种不同的类型,但我有代码var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!)!.doubleValue}set{display.text=“(newValue)”}var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!)!.doubleValue}set{display.text=“(newValue)“}}是的,语法为true,但在程序中运行,错误,自计算。ViewController 0x00007fda2a5219f0 0x00007fda2a5219f0var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!).doubleValue}set{display.text=“(newValue)”}var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!)!.doubleValue}set{display.text=“(newValue)”}是的,语法为true,但在程序中运行,错误,自计算。ViewController 0x00007fda2a5219f0 0x00007fda2a5219f0var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!)!doubleValue}set{display.text=”(newValue)“}}var displayValue:Double{get{return NSNumberFormatter().numberFromString(display.text!)!.doubleValue}set{display.text=“(newValue)”}
if let result = brain.performOperation(operation.string)