2016-05-08 10 views
2

私の質問は、現在クラウドキットを使用しているiCloudから現在ログインしているユーザー情報を取得する方法です。私は、このユーザーのデフォルトセクションにフィールドを追加し、それらを必要時に取得したいと思います。私は新しいスキーマを作成してユーザーデータを保存しようとしました。CloudKitを使用してiCloudから現在のユーザー情報を取得する方法

+0

お探しの情報はありますか? CloudKitでは、ユーザーの名前のみを取得できます。 – rmaddy

+0

@rmaddyユーザー名、電子メールアドレス、連絡先の詳細をiCloudのユーザーセクションに保存します。クラウドキットからユーザーのデバイスIDとユーザー名を取得するコードはありますか? –

+0

'CKContainer'のドキュメントを見てください。 – rmaddy

答えて

2

CloudKitのUser recordTypeに余分なフィールドを追加することはできますが、それは推奨されていません。 User recordTypeは、多くの制限を持つ特別なrecordTypeです。追加のユーザー設定を保存する新しいレコードタイプを作成する方が良いでしょう。次に、実際のユーザーrecordIdにCKReferenceを設定することができます。

アクティブユーザーのrecordIDを取得するには、CKcontainer関数fetchUserRecordIDWithCompletionHandlerを使用します。あなたが姓と名字を取得したい場合(詳細を知ることはできません)、関数を使用してください。discoverUserInfoWithUserRecordID

+0

ありがとうございました。私は新しい記録を作成し、その中にユーザー情報を保存しようとします。私の心配は、アップルのguidlinesによれば、私たちはユーザのパスワードを見たり見つけたりすることは想定されていないので、ユーザレコードが作成されるとそのユーザレコードにユーザ名とパスワードを保存しなければならないということです。私はそれを行う場合、私はユーザーのパスワードを見ることができるようになります。アップルが私のアプリを再編集する原因になるのだろうか? –

+1

ユーザーログインは必要ありません。 CloudKitを使用すると、自分のiCloudアカウントが正しいことを確認できます。ユーザーIDと名前を問い合せることができます。失敗した場合は、ユーザーがログインしていないことがわかり、設定アプリでiCloudにログインするようにユーザーに指示することができます。 –

+0

'discoverUserInfoWithUserRecordID'はiOS 10では廃止されました。ここでの優先メソッドは' discoverUserIdentity(with .... .... ')メソッドです。 –

関連する問題