ユーザーの連絡先を含むゲームを作成していますが、各連絡先を一意に識別する方法が必要です。これは、ユーザーが特定の連絡先の名前、電話番号、またはその他のプロパティを簡単に変更できるためです。これを行う方法はありますか?
2 に答える
ABRecordGetRecordID()
レコードの一意の ID を取得するために使用できます。ABRecordID
の typedef である を返しますint32_t
。
ABRecordGetRecordID() は、使用できる API です。ただし、Apple のドキュメントには、この API によって返される ABRecordID に関する注目すべき点がいくつか記載されています。
アドレス帳データベースのすべてのレコードには、一意のレコード識別子があります。この識別子は、レコードが削除されるかデータがリセットされない限り、常に同じレコードを参照します。レコード識別子は、スレッド間で安全に受け渡すことができます。デバイス間で同じであるとは限りません。
Apple のガイドラインに従って推奨される方法は次のとおりです。
特定のレコードへの長期的な参照を保持するための推奨される方法は、識別子に加えて、姓と名、または姓と名のハッシュを保存することです。ID でレコードを検索するときは、レコードの名前と保存されている名前を比較します。一致しない場合は、保存された名前を使用してレコードを検索し、レコードの新しい ID を保存します。
私のアプリでは、ABRecordID に対する名前がユーザーによって変更された可能性があるため、連絡先の作成日も確認しています。連絡先の作成日は、デバイスのリセット時に変更されません。