0

ETXTableViewのサブクラスであるクラスがありNSTableViewます。(コメント後に変更) そのデリゲートは IB で viewController に設定されます (データ ソースと同様)。

このクラスには 4 つのインスタンスがあります。つまり、上下に 4 つのテーブルがあります。ユーザーは、あるインスタンスから別のインスタンスをクリックまたはマウスで移動できます。のコード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.delegatenilです。デリゲートの参照が弱いためであるとほぼ確信しています。

  1. なぜこの参照がリリースされるのですか? (さらに情報が必要な場合は、お知らせください)
  2. この場合、デリゲートをどのように定義すればよいですか?

ありがとう!

4

0 に答える 0