2010-08-27 67 views
2

這些天我在NSFetchRequest周圍掙扎。 我的數據模型是這樣的:NSFetchRequest對排除一些對象的多對多關係無法正常工作

Post <->> Category

現在我需要爲獲取請求獲得的所有帖子,其中category.name屬性不是「XXX」。 看着爲NSFetchRequest的文檔應該是:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NONE category.name == %@", categoryName]

但這會導致空列表(該請求是在UITableView的使用NSFetchedResultsController

文檔說:

NONE 指定以下表達式中的任何元素,例如NONE children.age < 18.這在邏輯上等於NOT(ANY ...)。

如果我顛倒我的謂詞

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY category.name == %@", categoryName]

列表中包含正是我想從該列表中排除的對象。

我在這裏失蹤了什麼?

在此先感謝

回答

2

您擁有的謂詞形式是正確的。

最簡單的解釋是,你必須匹配「@」 NONE category.name ==%@」謂詞沒有物體這可以解釋爲什麼逆工程

我建議你:。

  1. 登錄用的NSLog謂語,看看謂語實際上是每次
  2. 抓取所有Post比較對象的對象由「ANY」謂詞返回的對象的計數返回的數量。如果它們相同,則。 ..
  3. ...記錄category.name值以查看它們中的任何一個是否匹配「NONE」謂詞。

我認爲應該讓你找到問題。

相關問題