1
ARCにいくつか問題があります。 ScrollViewに複数のビューを追加しようとしています。その後、ユーザーが1つのビューをタップするとアクションが呼び出されます。ARC - 複数のサブビューを挿入して操作を処理する
しかし、ユーザーがビューをタップすると、私はこのメッセージが表示されます:「割り当て解除インスタンスに送信されたメッセージ」
がどのように私は、ビューを保持することができますか?
これはViewControllerをで私のコードです:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
int i;
for (i=0;i<10;i++) {
ChannelViewController *channelView = [[ChannelViewController alloc] init];
[channelView.view setFrame:CGRectMake(i*175, 0, 175, 175)];
//channelsScrollView is a ScrollView
[self.channelsScrollView addSubview:channelView.view];
}
[self.channelsScrollView setContentSize:CGSizeMake(i*175, 175)];
}
私は同様のものを見ていますが、なぜこれが必要なのか分かりません。 Kazukiは '[self.channelsScrollView addSubview:channelView.view]'を呼び出すので、 'self.channelsScrollView'は' channelView.view'への参照を保持します。 UIView自体のコントローラへの参照を保持していませんか?それは奇妙に思える。 –
UIViewが内部的にUIViewControllerへの参照を保持しているかどうかはわかりませんが、たとえそれがあっても、保持サイクルを避けるために弱い参照にする必要があります。 – barley
ああ、良い点、ありがとう。 –