【发布时间】:2017-02-14 19:29:04
【问题描述】:
我有一个核心数据实体的请求:
override func viewWillAppear(animated: Bool) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "Constants")
do {
let results = try managedContext.executeFetchRequest(fetchRequest)
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
}
在Constants 实体内有 4 个属性:moneyPerSecondSave、moneySave、tapMultiplierSave 和tapValueSave。
我的问题是,有没有办法在我得到results 之后创建四个变量,每个变量都保存属性的每个值。
我已经尝试过使用valueForKey:
moneyConstants.money = results.valueForKey("moneySave")
但是,当我尝试此操作时,它会出现错误:“'[AnyObject]' 类型的值没有成员'valueForKey'。任何帮助将不胜感激。
【问题讨论】:
-
提示:
results是一个 数组 ... -
@MartinR 所以如果我用
results[0]创建一个变量,它大概会给我第一个属性的值?抱歉,如果这是一个愚蠢的问题,我是 swift 新手。 -
这与 Swift 关系不大,更多的是与 Core Data 相关(因此您可能需要阅读 Core Data Programming Guide)。 –
results是一个托管对象数组。如果您只创建了一个对象,则该数组只包含一个元素。