我有一个类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
为零。我几乎可以肯定,这是因为代表的引用很弱。
- 为什么要发布这个参考?(如果需要更多信息,请告诉我)
- 在这种情况下我应该如何定义委托?
谢谢!