从NSArrayController的删除的对象停留在表,直到点击
-
19-09-2019 - |
题
我具有被绑定到我的应用程序的的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。