swift - 如何将 isLeaf 和子级添加到 NSManagedObjects 以与 NSTreeController 一起使用?
问题描述
我正在尝试在我的应用程序中将NSManagedObject
s 与NSTreeController
and一起使用。NSOutlineView
macOS
我在大纲视图中有一个两级数据:Project
和Item
,两者都NSManagedObject
在我的模型中设置。
在我的故事板中,我添加了这个:
我在我的代码中添加了这个:
extension Project {
@objc var isLeaf: Bool {
return false
}
@objc var childCount: Int {
return items?.count ?? 0
}
@objc var children: [Item] {
return items?.allObjects as! [Item]
}
}
extension Item {
@objc var isLeaf: Bool {
return true
}
@objc var childCount: Int {
return 0
}
@objc var children: [NSManagedObject] {
return []
}
}
当我运行该应用程序时,我收到以下错误:
Thread 1: "[<MyApp.ProjectBrowserViewController 0x600001580820> valueForUndefinedKey:]: this class is not key value coding-compliant for the key isLeaf."
它没有说明哪个类,但该错误出现了两次,所以我猜一次是Project
,一次是Item
。
我在这里缺少什么,我该如何解决?如果需要,将很乐意添加更多信息。
解决方案
推荐阅读
- azure-devops - 来自不同存储库的 Helm Chart
- c# - 如何解析 AWS S3 路径 (s3://
/ ) 在 C# 中使用 AWSSDK.S3 以获取存储桶名称和密钥 - jquery - jQuery中的执行顺序
- c# - 如何在 c# ASP.NET 中传递这个值?
- angular - Angular 6:无法在 Google pagespeed 洞察中提高移动性能
- google-sheets - 如何在不混淆的情况下将行转换为联系人详细信息列?(谷歌表格)
- java - 从 Java 调用带有表类型参数的 OracleDB 过程——DB 总是接收空值而不是值
- ssl - 如何在带有 TLS 的 FTP 的 Windows 10 命令提示符中构造 CURL FTPS 命令
- asp.net - Azure SignalR 服务的 SignalR 脚本标记
- javascript - 节点/快递应用程序中错误处理的正确方法是什么?