2014-12-02 5 views
4

cloudkit에 대한 구독 알림을 설정했습니다. 내 코드는 다음과 같습니다.Cloudkit : CKNotificationInfo 배지 값이 결코 감소하지 않습니다.

잘 작동합니다. 문제는 배지입니다. 배지 개수를 0으로 설정해도 cloudKit에서 배지 번호를 재설정하지 않고 계속 유지하는 것처럼 보입니다.

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    application.applicationIconBadgeNumber = 0; 
} 

앱은 새 알림이 0 ~ 5로 이동 접수 (1하여 모든 새 알림 증가, 다음 번에 6 것) 당신의 상관 권리 횟수를 추적 방법을 알고

때 당신은 당신의 통지를 처리 ​​한 후 CKModifyBadgeOperation을 수행해야합니다 (목표 - C에서) cloudkit에서 배지

+1

가능한 중복 [CloudKit 0으로 내 배지 카운트를 재설정하지 않습니다 (http://stackoverflow.com/questions/25120070/cloudkit-wont-reset-my-badge-count-to-0) –

답변

7

의이 CloudKit won't reset my badge count to 0

있었다 대답의 중복입니다.

다음은 모든 알림을 읽음으로 표시 한 후 호출하는 Swift 함수입니다. 나는 그것을 시작하는 대신에 defaultContainer에 연산을 추가한다 - 어떤 차이가 있는지 궁금하다.

func resetBadgeCounter() { 
    let badgeResetOperation = CKModifyBadgeOperation(badgeValue: 0) 
    badgeResetOperation.modifyBadgeCompletionBlock = { (error) -> Void in 
     if error != nil { 
      println("Error resetting badge: \(error)") 
     } 
     else { 
      UIApplication.sharedApplication().applicationIconBadgeNumber = 0 
     } 
    } 
    CKContainer.defaultContainer().addOperation(badgeResetOperation) 
} 
+0

내 proyect는 객관적입니다 - c. 객관적인 관점에서 동등한 것을 게시 할 수 있습니까? – user2924482

1

이렇게하면 도움이됩니다.

CKModifyBadgeOperation *badgeResetOperation = [[CKModifyBadgeOperation alloc] initWithBadgeValue:0]; 
[badgeResetOperation setModifyBadgeCompletionBlock:^(NSError * operationError) { 
    if (!operationError) { 
     [UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
    } 
}]; 
[[CKContainer defaultContainer] addOperation:badgeResetOperation]; 
관련 문제