CoreData 是否支持方法?
Does the CoreData support methods?
我有一个带有属性(var 和 let)和方法的 class。为了存储数据,我使用 UserDefaults 并尝试使用 MVC。现在我想使用 CoreData。我可以使用一个实体来存储 var,但是我应该把方法放在哪里呢?方法可以放在CoreData中吗?如果不是,那么将处理变量的方法和逻辑放在哪里更好?请帮助我)
class Statistics {
var defaults = UserDefaults.standard
var completed = 0
var launched = 0
var minutes = 0
var today = 0
var dateNew = 0
let calendar = Calendar.current
static var passedSecondsBackground = 0
static var didBackground = false
enum Keys: String {
case day = "PMDR.Day"
case week = "PMDR.Week"
case month = "PMDR.Month"
case year = "PMDR.Year"
case completed = "Completed"
case launched = "Launched"
case minutes = "Minutes"
}
var keyCompleted = Keys.completed.rawValue
var keyLaunched = Keys.launched.rawValue
var keyMinutes = Keys.minutes.rawValue
func checkDate(array: Array<Statistics>) {
for date in array {
date.dateNew = date.defaults.integer(forKey: "\(date)")
if date.today != date.dateNew {
date.deleteScore(when: date)
date.defaults.set(date.today, forKey: "\(date)")
date.dateNew = date.defaults.integer(forKey: "\(date)")
}
}
}
func updateScore(array: Array<Statistics>) {
for date in array {
date.completed = date.defaults.integer(forKey: date.keyCompleted)
date.launched = date.defaults.integer(forKey: date.keyLaunched)
date.minutes = date.defaults.integer(forKey: date.keyMinutes)
}
}
/* etc... */
}
有两种选择。
- 如果 类 是由 Xcode 生成的,请将您的自定义逻辑放入 类.
的 extensions
- 自己创建 类(通过将 Codegen 设置为 Manual/None 和菜单项 Editor > Create NSManagedObject Subclass)。这种方式更难维护,但您可以通过将可选类型替换为非可选类型并将关系类型
NSSet
替换为本机 Set
来自定义 NSManagedObject sub类
我有一个带有属性(var 和 let)和方法的 class。为了存储数据,我使用 UserDefaults 并尝试使用 MVC。现在我想使用 CoreData。我可以使用一个实体来存储 var,但是我应该把方法放在哪里呢?方法可以放在CoreData中吗?如果不是,那么将处理变量的方法和逻辑放在哪里更好?请帮助我)
class Statistics {
var defaults = UserDefaults.standard
var completed = 0
var launched = 0
var minutes = 0
var today = 0
var dateNew = 0
let calendar = Calendar.current
static var passedSecondsBackground = 0
static var didBackground = false
enum Keys: String {
case day = "PMDR.Day"
case week = "PMDR.Week"
case month = "PMDR.Month"
case year = "PMDR.Year"
case completed = "Completed"
case launched = "Launched"
case minutes = "Minutes"
}
var keyCompleted = Keys.completed.rawValue
var keyLaunched = Keys.launched.rawValue
var keyMinutes = Keys.minutes.rawValue
func checkDate(array: Array<Statistics>) {
for date in array {
date.dateNew = date.defaults.integer(forKey: "\(date)")
if date.today != date.dateNew {
date.deleteScore(when: date)
date.defaults.set(date.today, forKey: "\(date)")
date.dateNew = date.defaults.integer(forKey: "\(date)")
}
}
}
func updateScore(array: Array<Statistics>) {
for date in array {
date.completed = date.defaults.integer(forKey: date.keyCompleted)
date.launched = date.defaults.integer(forKey: date.keyLaunched)
date.minutes = date.defaults.integer(forKey: date.keyMinutes)
}
}
/* etc... */
}
有两种选择。
- 如果 类 是由 Xcode 生成的,请将您的自定义逻辑放入 类. 的 extensions
- 自己创建 类(通过将 Codegen 设置为 Manual/None 和菜单项 Editor > Create NSManagedObject Subclass)。这种方式更难维护,但您可以通过将可选类型替换为非可选类型并将关系类型
NSSet
替换为本机Set
来自定义 NSManagedObject sub类