核心数据和自定义 NSCell

Posted

技术标签:

【中文标题】核心数据和自定义 NSCell【英文标题】:Core data and custom NSCell 【发布时间】:2009-12-14 21:17:12 【问题描述】:

我正在使用两个实体Log(属性textdate)和Tag 的核心数据构建一个玩具应用程序,其中tags 的关系从Log 到@987654329 @。

我想在表格中显示日志,所以我:

在 IB 中创建了一个 NSArrayController 实例 LogController,实体设置为 Log (pic) 创建了一个单列NSTableView,其列绑定到LogController。 pic 使用IBOutlet 在我的应用程序委托(AppDelegate) 中链接LogControllerAppDelegate 也有 managedObjectContext。 创建了一个自定义 NSCell 类,其中包含 NSString 属性 mainTexttagsText,我将其绘制到单元格上 我在- (void)tableView: willDisplayCell: forTableColumn: row:方法中设置了AppDelegate中的上述两个单元格属性。 (MainController 也是该表的代表)。对于tagsText,我获取当前日志的标签并将它们连接成一个NSString

一切正常,除了:当我用鼠标选择一行显示多个标签时,应用程序崩溃并显示EXC_BAD_ACCESS。这是我唯一一次有任何错误,但我不知道是什么原因造成的。

【问题讨论】:

【参考方案1】:

EXC_BAD_ACCESS 是内存错误。您在释放对象后使用它。没有代码很难调试。

你在使用垃圾收集器吗?您不必在 Mac 上自己管理内存。

您的自定义 NSCell 中的属性是否声明为“保留”?

【讨论】:

正确:我没有将其中一个属性声明为保留。这解决了它。

以上是关于核心数据和自定义 NSCell的主要内容,如果未能解决你的问题,请参考以下文章

核心数据和自定义属性类型

如何调用 NSCell 的 fieldEditorForView:分配自定义字段编辑器

NSControl 和 NSCell:以正确的方式管理单元状态

NSCell 和 NSControl 之间的关系/区别是啥?

jsp的标签库和自定义标签

NSCell 子类化:绘制 NSProgressIndicator?