带fetchedresultscontroller的ios UITableView-添加自定义行
我有一个带fetchedresultscontroller的ios UITableView-添加自定义行,ios,uitableview,Ios,Uitableview,我有一个UITableView,数据来自NSFetchedResultsController 这是我的桌面视图: 我需要添加一行“所有类型”。它还需要: 可与所有其他项目排序 可选择(现在已选择设计) 选择“所有类型”应取消选择其他行 给出一些信息,以了解选中时它是“所有类型”行 我读过,也读过。给定的方法不可能对数据进行排序,或者看起来非常粗糙,产生了大量难以维护的代码,因此不可能更改逻辑和维护代码 还有其他好的选择吗 注:我明白,我的问题听起来可能“宽泛”,不包含代码,但我认为这是一个非常
UITableView
,数据来自NSFetchedResultsController
这是我的桌面视图:
我需要添加一行“所有类型”。它还需要:
注:我明白,我的问题听起来可能“宽泛”,不包含代码,但我认为这是一个非常常见的问题。我认为这根本不是一个非常常见的问题。我可以看出,做您正在尝试的事情似乎很自然,但让我们分析一下您的情况:您通常有两个对象数组,您希望将它们排序为单个数组。现在这是一个相当普遍的情况,我相信每个人都知道如何解决这个问题。您需要创建单个对象数组,然后对其进行排序 在我看来,您有3种选择:
- 获取所有项目,合并2个数组,排序并呈现它们。这不是一个好主意,因为如果数据库中有很多项,内存消耗可能会有点太大
- 将额外的数据放入数据库,并像平常一样使用fetchresult控制器。这应该可以很好地工作,但是您可能需要标记这些项目,以便以后删除它们,或者将其保留在数据库中,但在不希望显示它们的地方忽略它们
- 创建一个临时数据库,结合需要从数据库中获取的内容和其他数据。如果您的数据在此列表中是只读的,那么这种方法非常好(在您发布的内容中似乎就是这种情况)。不过,最好在对象之间创建某种链接。例如,某种类型的ID会很好,这样当用户从第二个数据库中选择一个对象时,您只需读取ID并从原始数据库中获取对象