我具有被绑定到我的应用程序的的AppDelegate的managedObjectContext一个NSArrayController。它作为一个下载队列。项被添加到NSArrayController的编程

我有一个表,其示出了两个在这个字段,每一个与它的分别结合到所述NSArrayController的值列。当一个新的下载被启动它从NSArrayController的编程方式移除。

我添加了一个按钮,从队列中删除下载他们开始之前,该按钮被绑定到NSArrayController的的remove:其应在表中删除所选择的项目的动作

我的问题是,点击删除按钮选择的项目没有得到从表中删除时,它仍然在那里,直到点击表中的另一个条目。选择项被使得当鼠标按键被持续按压时将被选择,因为如果它仍然存在,但没有值的行。

在控制台被点击删除按钮时,出现以下内容: -[NSCFDictionary _setUnprocessedDeletion__:]: unrecognized selector sent to instance 0x2000f2220

如果我从表编程方式使用删除项目 [[downloadsArray content] removeObjectAtIndex:0]; [downloadsTable reloadData]; [downloadsTable deselectAll:nil]; 它似乎工作正常,但我仍然可以留下了无形的项目可以选择,只有保持选定当鼠标按键时。

我已绑定删除按钮的enabled属性到NSArrayController的的canRemove和这个工作正常。

我有一个标签,该标签示出了队列中的项目的数量,这势必NSArrayController的,arrangedObjects,@count。加入项目时,但不能删除它们时,这正常工作。

这是我做错了任何想法,将不胜感激。

有帮助吗?

解决方案

我有同样的问题时,我试图使用NSFetchRequest与NSManagedObjectIDResultType,然后试图与删除的结果 - [的NSManagedObjectContext DeleteObject的:]。

解决方法:不使用NSManagedObjectIDResultType一个NSFetchRequest如果你打算删除对象返回

其他提示

我只是有类似的问题。事实证明,_setUnprocessedDeletion__:为NSManagedObject定义的方法,显然其消息发送到当从被设置为实体模式阵列控制器中移除的对象。这是我的问题;重重塑的一天后,我结束了与设置为实体模式,其内容被绑定到正规的对象,而不是管理对象的数组的数组控制器。每当我删除的对象之一发生这些错误。看你的阵列控制器的contentArray。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top