我正在开发一个使用Core Data进行保存和检索数据的应用程序。
现在我想在主屏幕的应用程序图标上添加一个徽章编号,但是我有一些问题...
我试过这段代码:
NSInteger section = [self.tableView numberOfSections];
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[sectionInfo numberOfObjects];
此代码不起作用,但我不知道该怎么做...
我必须写什么代码,在哪里?在AppDelegate或RootViewController中?而在哪种方法?
谢谢大家的帮助!
答案 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。