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

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
}    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容