数组 – 使用Swift中的NSPredicate对CoreData结果进行排序
发布时间:2020-12-14 05:21:50 所属栏目:百科 来源:网络整理
导读:我正在 Swift中编写一个简单的电话本应用程序,需要对CoreData查询的结果进行排序. 基本上,我设置了一个名为“Directory”的NSManagedObject,其中包含适当的字段名称. “name_f”是用户的名字. CoreData数据库中查询的名称按字母顺序排列.然而,尽管第一次搜索
我正在
Swift中编写一个简单的电话本应用程序,需要对CoreData查询的结果进行排序.
基本上,我设置了一个名为“Directory”的NSManagedObject,其中包含适当的字段名称. “name_f”是用户的名字. CoreData数据库中查询的名称按字母顺序排列.然而,尽管第一次搜索以字母顺序返回结果,但有时候不会在程序的其他区域查询数据库之后进行进一步的搜索.我不知道为什么这是,但是想要放入代码来主动排序返回的数组任何字段. 我的代码返回NSManagedObject数组如下: func SearchName(nameToSearch: String) -> NSArray { let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate let context:NSManagedObjectContext = appDel.managedObjectContext! //I added the ! let request = NSFetchRequest(entityName: "Directory") request.returnsObjectsAsFaults = false //will return the instance of the object //request.predicate = NSPredicate(format: "name_f = %@",nameToSearch) //request.predicate = NSPredicate(format: "name_f MATCHES '.*((nameToSearch)).*'") request.predicate = NSPredicate(format: "name_f MATCHES[cd] '((nameToSearch)).*'") var results:NSArray = context.executeFetchRequest(request,error: nil) return results } 除此之外,我使用以下代码从返回的结果(其中searchResult是SearchName所在的类的实例)中提取一个特定值: var particularEntry = self.searchResult[self.selectedItem] as Directory lblDetailName.text = thisPerson.name_f 理想情况下,我希望能够: 提前致谢!
谢谢 – 在request.predicate行之前需要以下行:
let sortDescriptor = NSSortDescriptor(key: "name_f",ascending: true) let sortDescriptors = [sortDescriptor] request.sortDescriptors = sortDescriptors (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |