如何在单次获取请求中调用两个NSPredicate.核心数据iOS Swift

Jac*_*ght 1 core-data nspredicate nsfetchrequest ios swift

在我的应用程序中,我使用的是Core Data.现在我想从数据库中获取数据,为此我使用获取请求.但是我想NSPrediate在单个获取请求中使用两个,所以我该怎么做呢.

这是我的代码:

let feedfetch = NSFetchRequest(entityName: "Feed")
feedfetch.predicate = NSPredicate(format: "userid == %@", userid)

let fetchedPerson = try moc.executeFetchRequest(feedfetch)
Run Code Online (Sandbox Code Playgroud)

但是我想使用两个或更多谓词,那么我该怎么做呢?

我想在一个获取请求中调用所有这些,所以我该怎么做

let feedfetch = NSFetchRequest(entityName: "Feed")
feedfetch.predicate = NSPredicate(format: "userid == %@", userid)
feedfetch.predicate = NSPredicate(format: "is_deleted == %@", "0")
let sortDescriptor = NSSortDescriptor(key: "feed_id", ascending: false,selector: #selector(NSString.localizedStandardCompare))
feedfetch.sortDescriptors = [sortDescriptor]

let fetchedPerson = try moc.executeFetchRequest(feedfetch)
Run Code Online (Sandbox Code Playgroud)

And*_*riy 15

如果您出于任何原因需要使用两个谓词(NSPredicate对象)而不是一行:

"(userid == %@) AND (is_deleted == %@)"
Run Code Online (Sandbox Code Playgroud)

然后使用NSCompoundPredicateAPI:

feedfetch.predicate = NSCompoundPredicate(type:.AndPredicate, subpredicates:[
    NSPredicate(format: "userid == %@", userid), 
    NSPredicate(format: "is_deleted == %@", "0")])
Run Code Online (Sandbox Code Playgroud)