Core data 从NSArraycontroller中删除的对象保留在表中,直到单击为止

Core data 从NSArraycontroller中删除的对象保留在表中,直到单击为止,core-data,nstableview,nsarraycontroller,Core Data,Nstableview,Nsarraycontroller,我有一个NSArraycontroller,它绑定到我的应用程序的AppDelegate的managedObjectContext。它充当下载队列。项目以编程方式添加到NSArraycontroller 我有一个表,其中显示了其中的两个字段,每个字段都是一列,其值分别绑定到所述NSArraycontroller。启动新下载时,会以编程方式将其从NSArraycontroller中删除 我添加了一个按钮,用于在下载开始之前从队列中删除下载,该按钮绑定到NSArraycontroller的remov

我有一个NSArraycontroller,它绑定到我的应用程序的AppDelegate的managedObjectContext。它充当下载队列。项目以编程方式添加到NSArraycontroller

我有一个表,其中显示了其中的两个字段,每个字段都是一列,其值分别绑定到所述NSArraycontroller。启动新下载时,会以编程方式将其从NSArraycontroller中删除

我添加了一个按钮,用于在下载开始之前从队列中删除下载,该按钮绑定到NSArraycontroller的remove:action,该操作应删除表中的选定项

我的问题是,单击“删除”按钮时,所选项目不会从表中删除,它会一直保留在表中,直到单击表中的另一项。选择项目所在的行会导致在按住鼠标按钮的同时将其选中,就像它仍然在那里,但没有值一样

在控制台中,单击“删除”按钮时会显示以下内容:
-[NSCFDictionary\u setunprocessedelement\uuu::::]:无法识别的选择器发送到实例0x2000f2220

如果我使用
[[downloadsArray content]删除objectatindex:0];
[下载稳定的重新加载数据];
[全部下载:无]
它似乎工作得很好,除了我仍然可以选择留下的不可见项目,并且只有当鼠标按钮按下时才保持选中状态

我已将remove按钮的enabled属性绑定到NSArraycontroller的canRemove,这可以正常工作

我有一个显示队列中项目数量的标签,它绑定到NSArraycontroller、arrangedObjects、@count。这在添加项目时可以正常工作,但在删除项目时不能正常工作


任何关于我做错了什么的想法都将不胜感激。

我刚刚遇到了一个类似的问题。事实证明_setUnprocessedElement_uuuuuu:是为NSManagedObject定义的方法,显然,当对象从设置为实体模式的数组控制器中删除时,它的消息会发送到对象。那是我的问题;经过一天的繁重改造,我最终将一个数组控制器设置为实体模式,其内容绑定到一个常规对象数组,而不是托管对象数组。每当我删除一个对象时,就会出现这些错误之一。查看阵列控制器的contentArray。

当我尝试将NSFetchRequest与NSManagedObjectResultType一起使用,然后尝试使用-[NSManagedObjectContext deleteObject:]删除结果时,我遇到了相同的问题

解决方案:如果计划删除返回的对象,请不要将NSManagedObjectdResultType用于NSFetchRequest