我正在为--------
|Total |
--------
|1 |
|1 |
|2 |
--------
编写代码。我的数据模型包括name和moneyAmount。这是我遇到麻烦的代码部分
CoreData
现在问题是我的 do {
let request = NSFetchRequest(entityName: "MoneyData")
let results = try context.executeFetchRequest(request)
if results.count > 0 {
for item in results as! [NSManagedObject] {
let name = String(item.valueForKey("name"))
let moneyAmount = item.valueForKey("moneyAmount")
moneyManager.addMoney(name, moneyAmount: moneyAmount)
}
}
} catch {
print("There was an error saving data")
}
需要moneyManager.addMoney
和String
。但是,使用此代码,我得到的错误是:
可选链无效,已生成'Anyobject?'
无法转换AnyObject类型的值?期望参数类型'Double'
我真的不明白Double
的含义。我想我应该将anyobject转换为double以使其正常工作?
提前致谢
答案 0 :(得分:1)
valueForKey()
返回类型为AnyObject
的对象,因为在编译时无法知道它引用的对象类型。您可以使用as
转换为特定类型。例如,moneyAmount as? Double
将生成类型为Double?
的对象,其中包含数值,如果对象不是nil
类型,则为Double
。