【发布时间】:2021-01-04 10:53:05
【问题描述】:
我在领域数据库中有一个属性“天”,当用户进行一些交易时,我会保存所有天数。正是我需要计算的天数才能获得正确数量的部分。现在看起来每笔交易都有一个部分,我希望有一个部分包含一天的所有交易。我的领域模型:
class Items: Object {
@objc dynamic var Amount = 0.0
@objc dynamic var category = ""
@objc dynamic var type = Bool()
@objc dynamic var month = Int()
@objc dynamic var day = Int()
}
typealias Sections = [(quantity: [Int], name: String, items: [Items])]
func getAllItems() -> [Items] {
var array: [Items] = []
let objects = realm.objects(Items.self)
for object in objects {
array.append(object)
}
return array
}
func getSections() -> Sections {
var sections: Sections = []
let data = getAllItems()
var temp = [Items]()
var summ: [Int] = []
for item in data {
for item2 in data {
if item2.day == item.day {
summ.append(item.day)
temp.append(item)
}
}
sections.append((quantity: summ, name: "\(item.day)", items: temp))
temp = [Items]()
}
return sections
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
RealmModel.shared.getSections()[section].name
}
func numberOfSections(in tableView: UITableView) -> Int {
RealmModel.shared.getSections().count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return RealmModel.shared.getSections()[section].name.count
}
事实上,除了“numberOfSections”之外,这一切都有效。我得到它们是这样的:incorrect quantity of sections, I need one section for one day。我无法理解我如何才能从 numberOfSections() 中的 getSections() 中仅获得“总和”,或者我如何才能以另一种方式获得正确的数量。
【问题讨论】:
-
为什么不将日期存储在 List 属性中?然后您可以使用
let count = daysList.count获取天数。或者也许创建一个“交易日”模型,该模型在 List 属性中包含当天的所有交易。也许如果您可以包含您的领域模型,我们可以帮助简化这一点。 -
@Jay,添加了领域模型。另外,我认为,我需要从一个数组中获取 tableview 的数据以避免错误。但我很高兴看到您的解决方案。
-
好的,这有帮助。我添加了一个答案,应该可以大大简化你正在做的事情。