想象一下,我们有两个类A和B. A是非特定类,B是ViewController的子类
如何使B实例变量等于实例变量?
一个类不能保存B的实例,并且相互B不能保存A的实例。
我想要实现的确切事实是B类变量更新为A类变量的值。
委托是不可能的,因为没有一个类拥有另一个实例。 我该怎么办?志愿?我读到它不应该因为它的缺陷而被使用。
答案 0 :(得分:1)
如果两个类都不能保存对另一个类的引用,则它们都需要保存对第三个类的对象的引用,该对象保存实际值。 A
和B
中的属性需要引用C
中的相应属性:
class C {
var prop : String = "hello"
}
class A {
var prop : String {
get { return c.prop }
set(v:String) { c.prop = v }
}
let C:c
init(c:C) {
self.c = c
}
}
class B : NSViewController {
var prop : String {
get { return c.prop }
set(v:String) { c.prop = v }
}
let C:c
init(c:C) {
self.c = c
}
}
答案 1 :(得分:0)
KVO
或NSNotification
是您的选择。考虑使用诸如KVOController