【发布时间】:2019-09-18 04:13:30
【问题描述】:
我想用一堆文件夹填充我的表视图(类似于 Apple Notes 应用程序的文件夹结构屏幕)。我希望电视中的第一项是一个单元格,该单元格会导致其他文件夹中的所有内容的组合。我可以显示所有文件夹,但在尝试弄清楚如何显示“组合内容”文件夹时遇到了麻烦。所有单独的文件夹都是在 CoreData 上创建的,并通过 NSFetchedResultsController 提供。
我创建了一个仅包含单个文件夹实例的数组,用作组合文件夹的对象。我有以下代码来尝试创建 2 个部分(1 个用于组合,另一个用于单个文件夹)但目前它只会显示我在 case 0 中放置的任何内容。我这样做的方式是否正确?
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch section {
case 0:
return comboFolder.count
case 1:
return fetchedRC.fetchedObjects?.count ?? 0
default:
return 0
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "folderCell", for: indexPath) as! FolderTableViewCell
switch indexPath.section {
case 0:
let folder = comboFolder[indexPath.row]
cell.updateComboFolder(with: folder)
case 1:
let folder = fetchedRC.object(at: indexPath)
cell.update(with: folder)
default:
print("default")
}
return cell
}
【问题讨论】:
-
对于初学者,您应该在
numberOfSections函数中返回 2 -
是的,对不起。这是我在编辑时的一个错误。有 2 会导致崩溃...
-
崩溃在哪里,它在说什么?
-
@nambatee 'NSInternalInconsistencyException',原因:'在索引 0 的部分中索引 1 处没有对象'
-
你认为我应该这样做吗?我是否需要将数组全部废弃并通过 CoreData 和排序来完成?
标签: ios swift uitableview core-data nsfetchedresultscontroller