ios - 我如何在单个获取请求中调用两个 NSPredicate。核心数据 iOS Swift

标签 ios swift core-data nspredicate nsfetchrequest

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

这是我的代码:

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

let fetchedPerson = try moc.executeFetchRequest(feedfetch)

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

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

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)

最佳答案

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

"(userid == %@) AND (is_deleted == %@)"

然后使用NSCompoundPredicate API:

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

关于ios - 我如何在单个获取请求中调用两个 NSPredicate。核心数据 iOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37654656/

相关文章:

ios - 点击通过 UISlider

ios - awakeFromNib 未在自定义单元格类中调用,因为 IBOutlets 为零

ios - 快速自定义 map 类

ios - 如何在 ios swift 中显示 icloud 驱动器中的特定文件格式

iphone - 将 NSManagedObjects 添加到一对多关系

ios - 如何获取文件大小以了解是否下载?

ios - 如何强制 UIPickerView.selectRow 调用 didSelectRow 方法?

swift - 将 SCNAction 应用于 SceneKit 中具有约束的节点

ios - 使用 Swift 从 CSV 初始化 CoreData

ios - 页面 View Controller : Determining "next" and "previous" when using Core Data