2016-05-14 51 views
3

我有這個模型的核心數據:iOS Swift |核心數據提取由特定值

class Posts: NSManagedObject { 
@NSManaged var title: String? 
@NSManaged var author: String? 
@NSManaged var url: String? 
@NSManaged var isFavorite: NSNumber? 
} 

我要收藏夾功能添加到我的應用程序。

如何獲取具有屬性isFavorite == true的實體?到目前爲止,我已經設法獲取所有數據,但我需要具有特定isFavorite值的數據。

+0

您可以獲取所有數據並檢查isFavorite是否爲true。 –

+0

這就是我正在做的,但是當我嘗試顯示過濾的數據,我真的不知道如何計算isFavorite ==真正的實體內numberOfItemsInSection ..我正在過濾數據,但我計算所有的數據。這給我留下了一堆空白單元格。 – KK7

+0

您可以添加第二個數組並使用它來設置內容。 –

回答

11

只抓取具有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 [] 
} 
+3

太複雜:'isFavorite == TRUE'因爲它在覈心數據中被聲明爲布爾值 – vadian