コンテキスト: カスタム セルを含むテーブルビューがあります。各セルには、リソースをダウンロードするためのボタンがあります。ボタンを押すと、テーブルビューの他のすべてのボタンが無効になります。
したがって、私の問題は、遅延読み込みであるため、テーブルビューのすべての行への参照を取得できないことです。そのため、他の行にアクセスしようとすると、ボタンを無効にし始めた時点で追加するオブジェクトがないため、失敗します。
私の問題をより啓発するかもしれないコードは次のとおりです。
NSMutableArray *cells = [NSMutableArray array];
for (NSInteger i = 0; i < [mainTableView numberOfRowsInSection:1]; ++i) {
WSVideoLibraryTableCell *addedCell = (WSVideoLibraryTableCell *)[mainTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:1]];
NSLog(@"CELL ADDED: %@", addedCell);
[cells addObject:addedCell];
}
if (stateEnabled) {
for (WSVideoLibraryTableCell *cell in cells) {
[[cell downloadButton] setEnabled:YES];
}
}
else
{
for (WSVideoLibraryTableCell *cell in cells) {
[[cell downloadButton] setEnabled:NO];
}
}
表示されているセルのみを取得するコードを追加してみました。NSArray *array = [mainTableView visibleCells]
しかし、問題は、表示されていなかったセルでボタンが有効になり、表示されている行で奇妙なことが起こり、tableViewに何度も表示されることです(遅延読み込みと変更に関係していますか?)
コメントや提案をありがとうございました!!