在iOS 11中不推荐使用CKModifyBadgeOperation.任何人都知道另一种方法吗?

use*_*040 10 badge cloudkit cknotification swift4 ios11

我搜索过,我找不到一个例子.我也尝试过修改此代码(在别处推荐(CloudKit不会将我的徽章计数重置为0):

func resetBadgeCounter() {
    let badgeResetOperation = CKModifyBadgeOperation(badgeValue: 0)
    badgeResetOperation.modifyBadgeCompletionBlock = { (error) -> Void in
        if error != nil {
            print("Error resetting badge: \(String(describing: error))")
        }
        else {
            UIApplication.shared.applicationIconBadgeNumber = 0
        }
    }
    CKContainer.default().add(badgeResetOperation)
}
Run Code Online (Sandbox Code Playgroud)

这暂时有效,但不再受支持,很快就会消失.

我想也许我应该使用CKModfyRecordsOperation或其他一些CKDatabaseOperation,但我甚至无法猜测如何.

Cli*_*rum -1

最好只跟踪您正在计数的项目并自行设置应用程序徽章计数。我引用了一个包含我的项目的本地数据库,然后返回总数并相应地设置我的应用程序徽章。

  • 这不适用于远程通知。它在本地工作,但下次收到远程通知时,徽章编号将变为 2 而不是 1。 (3认同)
  • 这仍然是一个现实问题。有什么解决方法吗? (2认同)