使用核心数据在表视图中按行设置应​​用程序徽章编号

时间:2010-08-19 22:53:55

标签: iphone core-data numbers badge

我正在开发一个使用Core Data进行保存和检索数据的应用程序。

现在我想在主屏幕的应用程序图标上添加一个徽章编号,但是我有一些问题...
我试过这段代码:

NSInteger section = [self.tableView numberOfSections];
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[sectionInfo numberOfObjects];

此代码不起作用,但我不知道该怎么做...
我必须写什么代码,在哪里?在AppDelegate或RootViewController中?而在哪种方法?

谢谢大家的帮助!

2 个答案:

答案 0 :(得分:1)

NSInteger section = [[self tableView] numberOfSections];

这将返回1或更多。不是要插入[[[self fetchedResultsController] sections] objectAtIndex:section]的值。你应该给它一个实际的部分(零或更多)而不是部分的总数。

此外,您可以在sectionInfo变量的赋值上放置一个断点,并确保您没有得到零。您还可以在sectionInfo之后进行调试,以确保您获得有意义的内容。

如果它为零或返回零,那么您的徽章将不会显示。

答案 1 :(得分:1)

NSInteger section = [self.tableView numberOfSections];

这不是有效的部分编号;它们从0变为numberOfSections-1。