获取结果在实际获取之前出现

时间:2017-12-13 12:59:12

标签: ios swift core-data

今天我什么时候回溯这段代码

  func salesCountForEmployees(_ employee: Employee) -> String {
    let fetchRequest: NSFetchRequest<Sale> = NSFetchRequest(entityName: "Sale")
    let predicate = NSPredicate(format: "employee == %@", employee)
    fetchRequest.predicate = predicate

    let context = employee.managedObjectContext!
    do {

        let results = try context.fetch(fetchRequest)

        return "\(results.count)"
    } catch let error as NSError {
        print("Error: \(error.localizedDescription)")
        return "0"
    }
}

我很惊讶&#34;因为回溯字段显示我甚至在实际获取执行之前已经获取了结果。enter image description here

然后在实际获取执行结果发生变化后(当然) enter image description here

也许有人知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

results变量已声明,但尚未初始化(因为尚未执行提取),因此它指向应用程序通常使用的未清除的内存字段。当您继续执行程序时,results变量中的“垃圾”会被有效的获取结果数组覆盖。

所以这并不意味着你在命令执行之前就已经执行了获取请求。