核心数据和自定义 NSCell
Posted
技术标签:
【中文标题】核心数据和自定义 NSCell【英文标题】:Core data and custom NSCell 【发布时间】:2009-12-14 21:17:12 【问题描述】:我正在使用两个实体Log
(属性text
和date
)和Tag
的核心数据构建一个玩具应用程序,其中tags
的关系从Log
到@987654329 @。
我想在表格中显示日志,所以我:
在 IB 中创建了一个NSArrayController
实例 LogController
,实体设置为 Log
(pic)
创建了一个单列NSTableView
,其列绑定到LogController
。 pic
使用IBOutlet
在我的应用程序委托(AppDelegate
) 中链接LogController
。 AppDelegate
也有 managedObjectContext
。
创建了一个自定义 NSCell
类,其中包含 NSString
属性 mainText
和 tagsText
,我将其绘制到单元格上
我在- (void)tableView: willDisplayCell: forTableColumn: row:
方法中设置了AppDelegate
中的上述两个单元格属性。 (MainController
也是该表的代表)。对于tagsText
,我获取当前日志的标签并将它们连接成一个NSString
一切正常,除了:当我用鼠标选择一行显示多个标签时,应用程序崩溃并显示EXC_BAD_ACCESS
。这是我唯一一次有任何错误,但我不知道是什么原因造成的。
【问题讨论】:
【参考方案1】:EXC_BAD_ACCESS
是内存错误。您在释放对象后使用它。没有代码很难调试。
你在使用垃圾收集器吗?您不必在 Mac 上自己管理内存。
您的自定义 NSCell 中的属性是否声明为“保留”?
【讨论】:
正确:我没有将其中一个属性声明为保留。这解决了它。以上是关于核心数据和自定义 NSCell的主要内容,如果未能解决你的问题,请参考以下文章
如何调用 NSCell 的 fieldEditorForView:分配自定义字段编辑器
NSControl 和 NSCell:以正确的方式管理单元状态