相关疑难解决方法(0)

如何限制NSFetchRequest的结果数?

我想在我的iOS应用程序中拥有"最近20项"的功能.我使用Core Data和NSFetchRequest.如何将结果数限制为20才能实现此目的?先感谢您!

凯.

iphone core-data objective-c nspredicate ios

26
推荐指数
2
解决办法
1万
查看次数

使用Swift中的NSPredicate对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
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我使用以下代码从返回的结果中提取特定值(其中searchResult是SearchName所在的类的实例):

    var particularEntry = self.searchResult[self.selectedItem] as Directory
    lblDetailName.text = thisPerson.name_f
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望能够:1 …

arrays search core-data nsmanagedobject swift

13
推荐指数
1
解决办法
2万
查看次数