如何使用 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
这些都是有效代码,但您需要哪一个取决于您要执行的操作。
我正在尝试制作一个小程序来记录按下按钮的次数。我正在使用核心数据来存储信息。唯一的问题是我无法弄清楚如何使用核心数据中的信息进行计算。如果有人能告诉我如何使代码中的变量等于核心数据中信息的值,我就知道了。 如果有另一种计算核心数据的方法我想知道。
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
这些都是有效代码,但您需要哪一个取决于您要执行的操作。