Я пытаюсь реализовать IOS Table View в Swift, который делает следующее:Swift: Заполнение numberOfSectionsInTableView и numberOfRowsInSection динамически
- Формирует количество секций путем подсчета количества объектов, в настоящее время хранится в моей сущности Core Data
- Создать одну строку для каждой секции, каждая строка, представляющая/удержание объекта в моей сущности Core Data
Пожалуйста, простите лоскутной код, он нуждается в уборке.
Вот моя функция для установки количества разделов. Он просто возвращает количество полученных результатов и предоставляет это как мое количество разделов. Отлично.
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
let count = self.fetchedResultsController.fetchedObjects?.count
if (count != 0){
return count! }
else {
return 0
}
}
Однако я не знаю, как адаптировать базовый метод numberOfRowsInSection, включенный в файл проекта. Он запускает исключение NSRangeException для массива, выходящего за рамки 0. Я предполагаю, что это массив [section].
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let sectionInfo = self.fetchedResultsController.sections![section]
return sectionInfo.numberOfObjects
}
Просто возвращение 1, для одной строки в секции, которая является то, что я хочу, не работает, падает на ту же ошибку выше.
Может ли какой-нибудь кодер указать мне в правильном направлении.
Спасибо!
Edit: Ошибка происходит здесь, когда я вернусь любое numberOfSectionsInTableView больше 1.
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let sectionInfo = self.fetchedResultsController.sections![section]
return sectionInfo.numberOfObjects
}
Почему бы вам не вернуться просто к одному в вашем tableView (tableView: UITableView, numberOfRowsInSection: Int) '? –
Я пробовал это, но я получил следующее исключение: 2015-10-26 16: 35: 01.842 * имя приложения * [9504: 2278828] *** Завершение приложения из-за неперехваченного исключения «NSRangeException», причина: '** * - [__ NSArrayM objectAtIndex:]: индекс 1 за пределами границ [0 .. 0] ' – CodeKnight
, так что у вас есть проблема в некоторых местах, пожалуйста, напишите код вашего контроллера табличного представления –