从字典中读取整数数据并进行简单计算

时间:2015-09-08 13:39:25

标签: ios swift nsdictionary

我在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

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

2 个答案:

答案 0 :(得分:1)

Swift不支持这种隐式转换,因此您必须自己明确转换它。 试试这个

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

答案 1 :(得分:0)

我建议你以这种安全的方式进行投射:

if let num = myDictFromFile?.valueForKey("num") as? Double {
   let result = num * 30.0 + num * 60.0
}

这样,如果键的字典元素" num"不是双倍,应用程序不崩溃,并没有意外的行为。