数组 – 使用Swift中的NSPredicate对CoreData结果进行排序

数组 – 使用Swift中的NSPredicate对CoreData结果进行排序,第1张

概述我正在 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

理想情况下,我希望能够:
1 – 修改上面的代码以确保“结果”数组被适当排序.
2 – 识别可以随后应用于结果数组的代码,以便任何字段重新排序.

提前致谢!

谢谢 – 在request.predicate行之前需要以下行:
let sortDescriptor = NSSortDescriptor(key: "name_f",ascending: true)let sortDescriptors = [sortDescriptor]request.sortDescriptors = sortDescriptors
总结

以上是内存溢出为你收集整理的数组 – 使用Swift中的NSPredicate对CoreData结果进行排序全部内容,希望文章能够帮你解决数组 – 使用Swift中的NSPredicate对CoreData结果进行排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1028513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存