我正在尝试制作一个小程序来计算按下按钮的次数。我正在使用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'类型
我感谢您的所有答案。
答案 0 :(得分:0)
这与核心数据无关。这条线没有意义:
nummer = nummerVar += 1
+=
运算符会增加nummerVar
。您已将此分配给number
,但+=
操作的返回值不是Double
,因此您无法分配它是Double
。
我不完全确定你的意图。你可能意味着
nummer = nummerVar + 1
或许你的意思是
nummerVar += 1
nummer = nummerVar
其中任何一个都是有效的代码,但您需要的代码取决于您尝试做的事情。