如何设置 NSManaged 变量?
How to set a NSManaged variable?
我有一个 NSManagedObject class 有两个关系:courseA
和 courseB
。
这些关系应该用动态变量表示。如何从 class 外部更改此变量?
@objc(Universtity)
public class Universtity: NSManagedObject {
dynamic var name: String {
get {
let name = self.courseA?.name
return name!
}
}
}
例如来自 ViewController 之类的 University.name = University.courseB.name
?
我在考虑通知,但这似乎可能更复杂一些。
如果没有别的办法,大学内部应该怎么实现observerclass?
谢谢你的每一个想法。
查看您的代码,您声明了一个 "computed" 或 "ready-only" 变量。这是一个变量,其值来自另一个变量或变量组合。
我看不到你的数据模型,所以不清楚你是否在核心数据模型中定义了名称参数。无论如何,如果您的逻辑有些混乱,因为您定义的 getter 意味着它可能持有的任何值都将被忽略。如果要确保可以写入该值,则需要定义一个 setter 来设置 self.courseA.name。您无需担心键值编码通知,因为它们将由 Core Data Managed Object 触发。
public class Universtity: NSManagedObject {
dynamic var name: String {
get {
let name = self.courseA?.name
return name!
}
set(newValue) {
courseA!.name = newValue
}
}
}
此外,您用于在 getter 中强制展开非可选值的模式也不是最佳的。我没有编辑这个,因为那是另一个讨论,但我建议问问自己这个问题,我确定我为什么要这样做吗?对于每个“?”和 ”!”你用。
我有一个 NSManagedObject class 有两个关系:courseA
和 courseB
。
这些关系应该用动态变量表示。如何从 class 外部更改此变量?
@objc(Universtity)
public class Universtity: NSManagedObject {
dynamic var name: String {
get {
let name = self.courseA?.name
return name!
}
}
}
例如来自 ViewController 之类的 University.name = University.courseB.name
?
我在考虑通知,但这似乎可能更复杂一些。
如果没有别的办法,大学内部应该怎么实现observerclass?
谢谢你的每一个想法。
查看您的代码,您声明了一个 "computed" 或 "ready-only" 变量。这是一个变量,其值来自另一个变量或变量组合。
我看不到你的数据模型,所以不清楚你是否在核心数据模型中定义了名称参数。无论如何,如果您的逻辑有些混乱,因为您定义的 getter 意味着它可能持有的任何值都将被忽略。如果要确保可以写入该值,则需要定义一个 setter 来设置 self.courseA.name。您无需担心键值编码通知,因为它们将由 Core Data Managed Object 触发。
public class Universtity: NSManagedObject {
dynamic var name: String {
get {
let name = self.courseA?.name
return name!
}
set(newValue) {
courseA!.name = newValue
}
}
}
此外,您用于在 getter 中强制展开非可选值的模式也不是最佳的。我没有编辑这个,因为那是另一个讨论,但我建议问问自己这个问题,我确定我为什么要这样做吗?对于每个“?”和 ”!”你用。