MacOS-NSViewController 绑定变量出错解决办

2020-04-19  本文已影响0人  加盐白咖啡

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
@objc dynamic lazy var classesManager: ClassesManager = {
    return ClassesManager()
}()
@objc dynamic var managedObjectContext: NSManagedObjectContext {
    return self.persistentContainer.viewContext
}    
上一篇 下一篇

猜你喜欢

热点阅读