如何使用核心数据进行计算

时间:2017-09-20 15:33:50

标签: core-data swift3 xcode8

我正在尝试制作一个小程序来计算按下按钮的次数。我正在使用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'类型

我感谢您的所有答案。

1 个答案:

答案 0 :(得分:0)

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

nummer = nummerVar += 1

+=运算符会增加nummerVar。您已将此分配给number,但+=操作的返回值不是Double,因此您无法分配它是Double

我不完全确定你的意图。你可能意味着

nummer = nummerVar + 1

或许你的意思是

nummerVar += 1
nummer = nummerVar

其中任何一个都是有效的代码,但您需要的代码取决于您尝试做的事情。