【发布时间】:2016-12-21 23:56:19
【问题描述】:
在我的 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 循环没有正确循环,因为我收到一条错误消息
索引 0 的部分中索引 2 处没有对象。
【问题讨论】:
-
您应该编辑您的问题以显示您的
cellForRowAtIndexPath方法。此外,postiveArray和negativeArray是令人困惑的变量名称(因此,我输入了一个错误假设的答案)。您应该将名称更改为更有意义的名称,例如positiveEntryCount或numberOfPositiveEntries。更好的办法是简单地将 Core Data 的正负结果填充到实际数组中。 -
Michael,只使用数字而不是数组的单元格数量的想法是,我希望 FetchedResultsController 仍然处理所有 ViewTable NSFetchedResultsControllerDelegate 操作。我更新了问题,以便更好地阅读
-
我在上一篇文章中给了你获取值的确切解决方案,但你仍然尝试使用不安全的方法来获取值...
标签: ios arrays core-data swift3