Swifit 5.0 编译运行 NSArrayController Binding事件时,如果出现以下错误
Xcode 的错误提示 this class is not key value coding-compliant for the key XXXXXX变量
可以用低版本Swift去编译,不过这样不太好,毕竟Swift5 ABI稳定了
另一个解决办法,在绑定的变量前面加@objc dynamic
,即KVO模式
例:@objc dynamic var managedObjectContext: NSManagedObjectContext
如果你自定义类了,在VC定义了自定义类的变量,在VC的变量要加,如果你要绑定到自定义类里的变量,在自定义的类定义的变量也需要加
NSArrayController 要绑定的值
self.classesManager.managedObjectContext
- VC里的自定义类变量
@objc dynamic lazy var classesManager: ClassesManager = {
return ClassesManager()
}()
- 自定义类变量
@objc dynamic var managedObjectContext: NSManagedObjectContext {
return self.persistentContainer.viewContext
}