2017-11-08 18 views
0

iCloudアカウントのステータスが変更されたときに通知を受け取りたい。CKAccountChanged通知が受信されない

私は、このようにしてこれらの通知を登録:

NotificationCenter.default.addObserver(self, 
             selector: #selector(iCloudAvailabilityDidChange), 
             name: .CKAccountChanged, 
             object: nil) 

iCloudAvailabilityDidChangeはそれに応じて呼び出されることを期待する:

@objc func iCloudAvailabilityDidChange(_ notification: Notification) { 
    handleICloudAccountStatus() 
} 

これらの通知を確認するには、私はiCloudAvailabilityDidChangeにブレークポイントを設定し、アプリケーションを実行しますXcodeの下にあります。
Homeを発行し、システム設定アプリを開き、iCloudアカウントにログインするか、ログインしてログアウトします。

私はXcodeがブレークポイントに当たると予想しましたが、そうではありません。
何が間違っている可能性がありますか?

EDIT:
通知がCKContainerクラスのインスタンスによって送信されます。

たぶん問題は、私は理解していないdocsCKAccountChangedへの以下の情報に関連しています。クラスのインスタンスがない場合、通知は送信されません。
私は理解していないことは、常にCKContainer.default()を定義することです。

答えて

0

問題解決:

まず、コンテナにアクセスする必要があります。 by

let container = CKContainer.default() 

これは、このような通知を送信できるコンテナオブジェクトをインスタンス化します。

第2に、通知を受けるには、ホームボタンをタップするか、システム設定を開き、iCloudアカウントにログイン/ログアウトするか、とアプリに戻ってください。通知が届いたときのみです。

関連する問題