Я новичок в сцене программирования iOS, и недавно я наткнулся на несколько примеров кода в Интернете, таких как:
functableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: customCellIdentifier, for: indexPath) as? CustomCell
if (cell == nil) {
cell = CustomCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: customCellIdentifier) asCustomCell
}
...
}
Где автор пытался обработать событие, когда dequeueReusableCell
возвращает ноль.
Но из-за моего ограниченного личного опыта с UITableView и пользовательскими ячейками мне еще не приходилось сталкиваться со временем, когда dequeueReusableCell
вернул мне ноль.
Из исследования я обнаружил, что причина может быть
«Методы удаления… пытаются найти ячейку с заданным идентификатором повторного использования, которая в данный момент находится вне экрана. Если они находят одну, они верните эту ячейку, в противном случае они вернут ноль. "
из ответа МрТЖ здесь
Но такого никогда не случалось со мной. Когда я намеренно даю ему неправильный идентификатор, происходит ошибка во время выполнения, но ни разу не было возвращено ноль. Интересно, когда именно это произойдет, и если это действительно необходимо.