0

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

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

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

这段代码不起作用,但我不知道该怎么做……
我必须写什么代码,在哪里写?在 AppDelegate 或 RootViewController 内部?以及采用哪种方法?

感谢大家的帮助!

4

2 回答 2

1
NSInteger section = [[self tableView] numberOfSections];

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

此外,您可以在sectionInfo变量的赋值上放置一个断点,并确保您没有返回 nil。您还可以在 sectionInfo 之后进行调试,以确保您得到一些有意义的东西。

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

于 2010-08-20T00:03:12.377 回答
1
NSInteger section = [self.tableView numberOfSections];

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

于 2010-08-20T00:12:38.970 回答