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 または 0 を返す場合、バッジは表示されません。

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

これは有効なセクション番号ではありません。それらは 0 から numberOfSections-1 になります。

于 2010-08-20T00:12:38.970 に答える