如何使用 Core Data 进行计算

How to compute with Core Data

我正在尝试制作一个小程序来记录按下按钮的次数。我正在使用核心数据来存储信息。唯一的问题是我无法弄清楚如何使用核心数据中的信息进行计算。如果有人能告诉我如何使代码中的变量等于核心数据中信息的值,我就知道了。 如果有另一种计算核心数据的方法我想知道。

import UIKit
import CoreData

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    let appDelegate = UIApplication.shared.delegate as! AppDelegate

    let context = appDelegate.persistentContainer.viewContext



    /*let newUser = NSEntityDescription.insertNewObject(forEntityName: "Data", into: context)

    newUser.setValue(number, forKey: "number")

    do{
        try context.save()
        print("Saved")
    }catch{
        print("Error occured in the saving process.")
    }*/




    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Data")

    request.returnsObjectsAsFaults = false

    do{
        let results = try context.fetch(request)

        if results.count > 0{
            for result in results as! [NSManagedObject]{

                if let number = result.value(forKey: "number") as? Double{
                    print("number is ", number)
                result.setValue(number + 1, forKey: "number")
                        do{
                            try context.save()
                        }catch{

                }
            }
            }
        }
    }catch{
        print("Error with fetching data.")
    }

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

var number = 0.0

}

在 nummer = number += 1 行给出的错误: 无法将类型“()”的值分配给类型 'Double'

非常感谢您的所有回答。

这与核心数据无关。这行没有意义:

nummer = nummerVar += 1

+= 运算符原地增加 nummerVar。您将其分配给 number,但 += 操作的 return 值 不是 Double,因此您可以'将其分配给 Double.

我不完全确定你在这里的意图。你的意思可能是

nummer = nummerVar + 1

或者你的意思是

nummerVar += 1
nummer = nummerVar

这些都是有效代码,但您需要哪一个取决于您要执行的操作。