重新加载后NSTableView崩溃

时间:2015-09-17 14:11:06

标签: objective-c macos nstableview

最近我遇到了以下问题。

我有一个NSTableView,每行都有按钮。现在,当点击按钮时,事件进入服务器并返回,表格将重新加载新数据。因此,如果您单击按钮两次,相当快,但第二次单击您按住并在释放后单击表将重新加载,因为第一个事件由于发送到行视图的解除分配实例的消息而导致应用程序崩溃。我发现了这次崩溃的三种解决方案:

  1. 点击后禁用按钮,并在因第一个事件而重新加载表时启用。
  2. 将消息发送到按钮(onMouseUp to onMouseDown)时更改事件。
  3. 将所有行视图保留在附加数组中以防止它们被释放,这是我猜的最糟糕的一个,因为像这样的数组真的非常快速地增长。
  4. 启用僵尸对象后,我在崩溃时得到了这些信息: [RowView performSelector:withObject:]: message sent to deallocated instance 0x11177d1b0

    我正在使用ARC。

    你们有没有人更好地了解如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我不允许用户干扰,而表已经加载了之前的调用。我会选择你的第一选择。