ios - 当有 2 个部分时,从 CoreData 填充部分中的行数
<p><p>在我的 CoreData 中,我有一个 Person 实体,每个 Person 可以有多个(到多个)Statement 实体。语句实体有一个名为 <code>amountOwed</code> 的属性,它是一个小数。现在我的想法是循环所有数量并将它们加起来,如果它们是正数,则将它们添加到正数组中,如果它们是负数,则将它们添加到该数组中。然后使用该数组来计算每个部分需要显示多少个单元格。 </p>
<p>我创建了一个 <code>fetchedResultsController</code> 并尝试将它用于 for 循环</p>
<pre><code>for i in 0..<fetchedResultsController.fetchedObjects!.count {
let person = fetchedResultsController.fetchedObjects?
let amountTotal = person?.value(forKeyPath: "[email protected]") as? Decimal
if(amountTotal! <= Decimal(0) )
{
postiveCellNumber += 1
print("\(postiveCellNumber) postive number count")
}
else{
negativeCellNumber += 1
print("\(negativeCellNumber) negative number count")
}
}
</code></pre>
<p>然后,我尝试在 <code>numberOfRowsInSection</code> 函数中使用这些数组,如下所示:</p>
<pre><code> func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch(section) {
case 0:
return postiveCellNumber
case 1:
return negativeCellNumber
default :return 0
}
}
</code></pre>
<p>我认为我的 for 循环没有正确循环,因为我收到一个错误提示 <br/> </p>
<blockquote>
<p>no object at index 2 in section at index 0.</p>
</blockquote></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如何使用两个不同的查询,一个用于正值,一个用于负值,并带有两个不同的获取结果 Controller ?然后,您可以让 FRC 为您进行迭代和计数。</p>
<p>您将无法使用 FRC 管理部分。你必须自己做。为 <code>sectionNameKeyPath</code> 指定 <code>nil</code>。然后你想要类似的东西</p>
<pre><code>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
}
}
</code></pre>
<p>或许</p>
<pre><code>func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
let sectionInfo = positiveResultsController.sections!
return sectionInfo.numberOfObjects
}
else {
let sectionInfo = negativeResultsController.sections!
return sectionInfo.numberOfObjects
}
}
</code></pre>
<p>与 <code>tableView(_:cellForRowAt:)</code> 的逻辑类似。</p></p>
<p style="font-size: 20px;">关于ios - 当有 2 个部分时,从 CoreData 填充部分中的行数,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/41273826/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/41273826/
</a>
</p>
页:
[1]