5

ユーザーが iCloud にサインインしているかどうかを具体的にどのように検出しますか? URLForUbiquityContainerIdentifier の戻り値の確認は非常に限られています。

1) iCloud にサインインしていないユーザーと他のシナリオ (iCloud が有効になっていないなど) を区別できません。2) ゲームがまだバックグラウンドで実行されている間に、ユーザーが設定アプリから iCloud にサインインし、アプリに戻って iCloud サービスにアクセスしようとしても、動作は変わらないようです。

ユーザーがサインインしているかどうかを具体的に検出する、より信頼できる方法はありますか?

4

3 に答える 3

1

「ユーザーがログインしていない」と「iCloud が有効になっていない」を区別する方法はありません。アプリでわかることは、アプリが現在 iCloud にアクセスできるかどうかですが、答えが「いいえ」の場合は、その理由を知ることができません。

ただし、問題の解決策があります #2-- Observe NSUbiquityIdentityDidChangeNotification。これは、iCloud の全体的な状態 (ユーザーのログイン、ユーザーのログアウト、ユーザーのアカウントの切り替え) が変化するたびに発生します。

于 2013-01-08T01:01:03.670 に答える
0
func isUserSignedIntoICloud() -> Bool {
    return FileManager.default.ubiquityIdentityToken != nil
}
于 2019-05-21T15:51:37.763 に答える