0

我有一个类ETXTableView,它是NSTableView. (评论后更改)它的委托在 IB 中设置为 viewController(就像它的数据源一样)。

这个类有四个实例:四个表相互叠加。用户可以从一个实例单击或鼠标移动到另一个实例。的代码moveDown:如下:

-(void)moveDown:(id)sender
{
    NSLog(@"self=%ld, delegate=%ld",self,self.delegate);
    lastKeyDownOrUp = 1;
    if (viewController.sectionArrayController.canSelectNext)
    {
        NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:(viewController.sectionArrayController.selectionIndex+1)];
        [self selectRowIndexes:indexSet byExtendingSelection:NO];
    }
    else{
        [[self window] selectKeyViewFollowingView:self];
    }
    << Code to show a details panel >>;
}

此代码中的值self.delegate为零。我几乎可以肯定,这是因为代表的引用很弱。

  1. 为什么要发布这个参考?(如果需要更多信息,请告诉我)
  2. 在这种情况下我应该如何定义委托?

谢谢!

4

0 回答 0