gpt4 book ai didi

ios - 将 Realm 查询结果用作UITableView节标题

转载 作者:行者123 更新时间:2023-12-01 22:03:51 24 4
gpt4 key购买 nike

我试图将Realm查询的结果用作UITableView中的节标题。

领域类:

class Person: Object {
@objc dynamic var personId = UUID().uuidString
@objc dynamic var firstName: String = ""
@objc dynamic var surname: String = ""
@objc dynamic var mobileNumber: Int = 0
@objc dynamic var password: String = ""

override static func primaryKey() -> String? {
return "personId"
}
}

class Category: Object {
@objc dynamic var categoryId = UUID().uuidString
@objc dynamic var person: Person?
@objc dynamic var categoryName: String = ""
let categoryContent = List<String>()

override static func primaryKey() -> String? {
return "categoryId"
}
}

我的代码:
class HomeController: UIViewController, UITableViewDelegate, UITableViewDataSource {

let realm = try! Realm()
var itemsInSections: Array<Array<String>> = [["1A"], ["2A"], ["3A"], ["4A"], ["5A"], ["6A"], ["7A"], ["8A"], ["9A"], ["10A"]] //Test content to figure out later

@IBOutlet weak var tableDetails: UITableView!

override func viewDidLoad() {
super.viewDidLoad()
tableDetails.dataSource = self
tableDetails.delegate = self
}



func numberOfSections(in tableView: UITableView) -> Int {
return getCategoryNames().count
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return itemsInSections[section].count
}

private func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> [String] {
return getCategoryNames()
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "HomeTableViewCell", for: indexPath)
let text = self.itemsInSections[indexPath.section][indexPath.row]

cell.textLabel!.text = text

return cell
}

func getCategoryNames() -> [String] {
let categoryNames = realm.objects(Category.self).filter("person.mobileNumber == %@", mobileNumber).map({$0.categoryName})
return Array(categoryNames)
}

}

部分的数量可以完美工作,但是部分标题为空白。

如果我添加:
print(Array(categoryNames))

到getCategoryNames函数,它将多次返回[“Category 1”,“Category 2”,“Category 3”,“Category 4”]。这似乎是节标题所需的字符串的正确格式,但表标题未显示。

最佳答案

尝试这个:

private func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let nameArr = getCategoryNames()
return nameArr[section]
}

功能:func tableView(_ tableView:UITableView,
titleForHeaderInSection部分:Int)->字符串?因此您需要为特定部分返回字符串。

关于ios - 将 Realm 查询结果用作UITableView节标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60000245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com