1

私の RSS リーダー開発では、次のモデルを使用しています。

Categorie -> Feed -> Post

私のMaster View Controllerでは、カテゴリ名の横に未読の投稿( readNSDate である投稿)の数を表示したいと考えています。nil

カテゴリを選択するには NSFetchResultsController が必要ですが、Category.feeds.posts.read == nilカウントを取得するには別のコントローラが必要ですか?

どのようにしますか?

4

1 に答える 1

2

いいえ、個別のフェッチ済み結果コントローラーは必要ありません。

あなたの質問を理解する方法:あなたはカテゴリのリストを表示したいと考えています。カテゴリ名ごとに、未読メッセージの数を表示します。

このように、フェッチされたプロパティをCategoryクラスに実装します。

@implementation Category ()

-(NSUInteger)unreadMessages {
   NSUInteger count = 0;
   for (Feed *feed in self.feeds) {
      NSSet *posts = [feed.posts filteredSetUsingPredicate
       [NSPredicate predicateWithFormat:@"read = null"]];
      count += posts.count
   }
   return count;
}

@end

投稿用にデフォルトが設定されたフラグプロパティunread(名前readをに変更)を導入すると、さらに効率的だと思います。firstReadDate1

for (Feed *feed in self.feeds) {
  count += [[feed.posts valueForKeyPath:@"@sum.unread"] integerValue];
}
于 2013-08-28T19:44:44.567 に答える