将某些 NSFetchResults 带到 Swift 中的列表顶部

问题描述

我有一个带有人名数据库的 iOS 应用程序。我还有一个包含其中四个人姓名的数组(因用户输入而异)。我想显示一个 tableView,其中包含按字母表排序的 db 中的所有条目,但是我希望使用 fetch 请求将数组中的四个人显示在列表的顶部。如果可能的话,我不想直接操作结果数组。

有没有办法用排序描述符来做到这一点?我曾尝试使用下面的比较器,但没有成功。

var personsInArray: Array<PersonLookup>
let containsComparator: Comparator = {
                (obj1: Any!,obj2: Any!) -> ComparisonResult in
                print("comparing")
                let obj1 = obj1 as! PersonLookup
                let obj2 = obj2 as! PersonLookup
                if personsInArray.contains(obj1) && personsInArray.contains(obj2) {
                    return .orderedSame
                } else if personsInArray.contains(obj1) && !personsInArray.contains(obj2) {
                    return .orderedAscending
                } else if !personsInArray.contains(obj1) && personsInArray.contains(obj2) {
                    return .orderedDescending
                } else {
                    return .orderedSame
                }
            }
            fetchRequest.sortDescriptors? = [NSSortDescriptor(key: "value",ascending: true,comparator: containsComparator),NSSortDescriptor(key: "value",ascending: true)]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...