1

仍然在我的 RSS 阅读器开发中,我使用以下模型:

Categorie -> Feed -> Post

对于我的主视图控制器,我想在类别名称旁边显示未读帖子的数量(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

我认为,如果您引入一个默认设置为 post的标志属性unread(重命名read为),效率会更高:firstReadDate1

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