У меня есть страница с 3 TableCells (изображение внизу): первая ячейка, заполненная динамически загруженным контентом из Firebase для изображения профиля, имени пользователя и просматриваемых минут, который заполняется в моем массиве userModel
.У меня проблема с установкой numberOfRowsInSection
для таблицы, потому что первая ячейка является динамической.
Когда я пытаюсь подсчитать количество ячеек, я добавляю 2, потому что у меня есть две статические ячейки (ячейка мерча и ячейка выхода), которые, как я знаю, мне нужно отобразить.Но поскольку userModel.count
начинается с 0, приложение вылетает из-за индексации строки динамического содержимого до заполнения массива userModel.count:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return userModel.count + 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "leaderboardCell", for: indexPath) as! LeaderboardCell
cell.profileImage.image = userModel[indexPath.row].photo
cell.profileImage.layer.cornerRadius = cell.profileImage.frame.size.width/2
cell.userName.text = userModel[indexPath.row].username
cell.watchTime.text = userModel[indexPath.row].watchTime
cell.profileLeaderboardContainer.layer.cornerRadius = 3.0
return cell
} else if indexPath.row == 1 {
let cell = tableView.dequeueReusableCell(withIdentifier: "merchCell", for: indexPath) as! MerchCell
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "logoutCell", for: indexPath) as! LogoutCell
cell.logoutButton.layer.cornerRadius = 3.0
return cell
}
Приложение вылетает по адресу:
cell.profileImage.image = userModel[indexPath.row].photo
, что вполне логично, потому что нет никакого индекса местоположения 2, прежде чем какие-либо данные будут загружены в эту модель.Но мой вопрос заключается в том, как предотвратить такую ошибку с помощью динамического массива в первой ячейке таблицы?Спасибо!
PS если у меня счетчик строк равен просто return userModel.count
, то верхняя ячейка прекрасно загружается с динамическим содержимым, но две другие ячейки не загружаются вообще (это имеет смысл, поскольку счетчик внутри массива0), поэтому индексы 1 и 2 не отображаются
![enter image description here](https://i.stack.imgur.com/LohHY.png)