gpt4 book ai didi

ios - 当有 2 个部分时,从 CoreData 填充部分中的行数

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:26:12 26 4
gpt4 key购买 nike

在我的 CoreData 中,我有一个 Person 实体,每个 Person 可以有多个(对许多)Statement 实体。报表实体有一个名为 amountOwed 的属性,它是一个十进制数。现在我的想法是遍历所有金额并将它们相加,如果它们是正数,则将它们添加到正数数组中,如果它们是负数,则将它们添加到该数组中。然后使用该数组计算出每个部分需要显示多少个单元格。

我创建了一个 fetchedResultsController 并试图将它用于 for 循环

for i in 0..<fetchedResultsController.fetchedObjects!.count {

let person = fetchedResultsController.fetchedObjects?[i]

let amountTotal = person?.value(forKeyPath: "statement.@sum.amountOwed") as? Decimal

if(amountTotal! <= Decimal(0) )
{
postiveCellNumber += 1
print("\(postiveCellNumber) postive number count")
}
else{
negativeCellNumber += 1
print("\(negativeCellNumber) negative number count")
}

}

然后,我尝试在 numberOfRowsInSection 函数中使用这些数组,如下所示:

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

switch(section) {
case 0:
return postiveCellNumber
case 1:
return negativeCellNumber

default :return 0
}
}

我认为我的 for 循环没有正确循环,因为我收到一条错误消息

no object at index 2 in section at index 0.

最佳答案

如何使用两个不同的查询,一个用于正值,一个用于负值,使用两个不同的获取结果 Controller ?然后您可以让 FRC 为您进行迭代和计数。

您将无法使用 FRC 来管理部分。你必须自己做。为 sectionNameKeyPath 指定 nil。然后你想要类似的东西

func numberOfSections(in tableView: UITableView) -> Int {
return 2
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return positiveResultsController.fetchedObjects?.count ?? 0
}
else {
return negativeResultsController.fetchedObjects?.count ?? 0
}
}

或者也许

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
let sectionInfo = positiveResultsController.sections![section]
return sectionInfo.numberOfObjects
}
else {
let sectionInfo = negativeResultsController.sections![section]
return sectionInfo.numberOfObjects
}
}

tableView(_:cellForRowAt:) 具有类似的逻辑。

关于ios - 当有 2 个部分时,从 CoreData 填充部分中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41273826/

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