内部に NSButtonCell (チェックボックス) を持つ NSTableColumn を持つ NSTableView があり、行が追加されるたびに NSButtonCell の新しいインスタンスを生成します。これは IB で構成しました。ただし、次のコードのチャンクで 2 番目の NSLog が 0 を返す理由に興味があります。
NSLog(@"%ld", (long)[[self.tableView preparedCellAtColumn:0 row:0]state]);
[[self.tableView preparedCellAtColumn:0 row:0]setState:1];
NSLog(@"%ld", (long)[[self.tableView preparedCellAtColumn:0 row:0]state]);
0 を返すということは、NSButtonCell のインスタンスにメッセージを送信していることを意味しますよね? では、なぜ setState: は 2 番目の NSLog の戻り値を変更しないのでしょうか?