gpt4 book ai didi

带有 fetchedresultscontroller 的 ios UITableView - 添加自定义行

转载 作者:行者123 更新时间:2023-11-29 12:40:50 24 4
gpt4 key购买 nike

我有一个 UITableView,其中的数据来自 NSFetchedResultsController

这是我的 tablewView:

enter image description here

我需要添加一行“所有类型”。它还需要:

  1. 可与所有其他项目一起排序
  2. 可选择(现在选择设计)
  3. 选择“所有类型”应取消选择其他行
  4. 提供一些内容以了解它在被选中时是“所有类型”行

我读过 Add extra row to a UITableView managed by NSFetchedResultsControllerNSFetchedResultsController prepend a row or section .给定的方法不可能对数据进行排序,或者看起来很笨拙并产生如此多难以维护的代码,以至于无法更改逻辑和维护代码。

还有其他好的选择吗?

附言。我明白,我的问题可能听起来“宽泛”并且不包含代码,但我认为这是非常普遍的问题。

最佳答案

我认为这根本不是一个很常见的问题。我可以看到做你正在尝试的事情似乎很自然,但让我们分析你的情况:你通常拥有 2 个对象数组,你希望将它们排序为一个数组。现在这种情况很普遍,相信大家都知道如何解决这个问题。您需要创建单个对象数组,然后对其进行排序。

在我看来,您有 3 个选择:

  • 获取所有项目,合并 2 个数组,排序并呈现它们。这不是一个好主意,因为如果数据库中有很多项目,您的内存消耗可能会有点太大。
  • 将额外的数据放入数据库并像往常一样使用获取结果 Controller 。这应该很好用,但您可能需要标记这些项目,以便稍后将它们删除或将其保留在数据库中,但在您不希望显示它们的地方忽略它们。
  • 创建一个临时数据库,结合需要从数据库中提取的内容和您的其他数据。如果您的数据在此列表中是只读的(实际上您发布的内容似乎就是这种情况),则此方法非常有用。如果您在对象之间创建某种链接,那仍然是最好的。例如,某种 ID 会很好,这样当用户从第二个数据库中选择一个对象时,您只需读取 ID 并从原始数据库中获取该对象。

关于带有 fetchedresultscontroller 的 ios UITableView - 添加自定义行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24989628/

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