检索coredata属性并在Swift中设置UILabel

时间:2014-12-05 01:40:36

标签: ios core-data swift uilabel

我在检索名为" totalWorkTimeInHoursString"的属性时遇到问题。并在UILabel中将其设置为文本。现在我有:

override func viewDidLoad() {
    super.viewDidLoad()

    func calculateTotalWorkTimeInHoursStringSum() {

    //CoreData
    let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let managedContext : NSManagedObjectContext = appDelegate.managedObjectContext!
    var fetchRequest = NSFetchRequest(entityName: "Log")
    fetchRequest.returnsObjectsAsFaults = false;
    var results: NSArray = managedContext.executeFetchRequest(fetchRequest, error: nil)!


        if (results.count > 0) {
            for res in results {
                var totalWorkTimeInHoursString = results.valueForKey("totalWorkTimeInHoursString") as String
                totalWorkTimeInHoursStringSumLabel.text = "\(totalWorkTimeInHoursString)"
            }
        }else {
            println("zero results returned, potential error")
            }
    }

}

这是标签所在的tableView单元格。 enter image description here

任何人都可以告诉我这里可能做错了什么。当我运行应用程序时,除了默认文本之外,它在UILabel中没有显示任何内容。我知道" totalWorkTimeInHoursString"正在保存到核心数据,因为它是在项目的其他地方的tableview中存储和检索的。

1 个答案:

答案 0 :(得分:0)

在以下循环中,您将访问结果数组的各个元素,即res s,但在循环内,当您应该使用resultsres 1}}因此你最终试图操纵results,就像它是字典而不是数组。因此,简而言之,将results.valueForKey替换为res.valueForKey

for res in results {
    var totalWorkTimeInHoursString = res.valueForKey("totalWorkTimeInHoursString") as String
    totalWorkTimeInHoursStringSumLabel.text = "\(totalWorkTimeInHoursString)"
}