This question already has an answer here:
Could not find an overload for '*' that accepts the supplied argument
                                
                                    (1个答案)
                                
                        
                                4年前关闭。
            
                    
我正在用Swift编写代码。

我创建了一个NSMutableDictionary,我将整数数据存储在其中,并将字典保存到文件中:

var myDict : NSMutableDictionary

//store Int value
let num : Int = 6
myDict.setValue(num, forKey: “num”)

//save myDict to file
myDict.writeToFile(FILE_PATH, atomically: false)


然后,我有另一种方法可以从文件中读取字典数据:

let myDictFromFile = NSDictionary(contentsOfFile: FILE_PATH)
//force cast to Int
let num = myDictFromFile?.valueForKey(“num”) as! Int

//COMPILER ERROR: Could not find an overload for ‘+’ that accepts the supplied arguments
let result: Double = num * 30.0 + num * 60.0


为什么我得到上面的编译器错误?如何摆脱它?

最佳答案

Swift不支持此类隐式转换,因此您必须自己进行显式转换。
尝试这个

let result: Double = Double(num) * 30.0 + Double(num) * 60.0

10-06 16:11
查看更多