问题描述
我有一个带有人名数据库的 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 (将#修改为@)