iOS Swift | 核心数据按特定值获取

kla*_*das 4 core-data fetch ios swift

我有这个核心数据模型:

class Posts: NSManagedObject {
@NSManaged var title: String?
@NSManaged var author: String?
@NSManaged var url: String?
@NSManaged var isFavorite: NSNumber?
}
Run Code Online (Sandbox Code Playgroud)

我想在我的应用中添加收藏夹功能.

如何获取具有属性isFavorite == true的实体?到目前为止,我已设法获取所有数据,但我需要具有特定isFavorite值的数据.

小智 13

仅使用favorite = true获取对象非常简单,您只需使用它设置谓词即可.像这样的东西应该给你一些灯光:

    class func fetchFavourites(managedObjectContext: NSManagedObjectContext)->[Posts]{

    let fetchRequest = NSFetchRequest(entityName: "Posts")
    let predicate = NSPredicate(format: "isFavorite = \(NSNumber(bool:true))")

    fetchRequest.predicate = predicate

    do {

        let results = try managedObjectContext.executeFetchRequest(fetchRequest) as! [Posts]
        return results

    } catch let error as NSError {

    }

    return []
}
Run Code Online (Sandbox Code Playgroud)

  • 太复杂了:`isFavorite == TRUE`,因为它在Core Data中声明为boolean (3认同)