新規登録や更新するアイテムの情報を指定する用途で使用する。検索結果も同じ形式で受け取る。NSData型で渡す。同じアカウントが存在する場合は重複エラー(-25299:errSecDuplicateItem)となる。この種類のことをクラスと呼び、クラスは次の5種類が用意されている。格納するアイテムはこのいずれかのクラスに分類する。設定可能な属性の種類は用途に応じて様々なものが用意されている。itemこれら全てが使われるわけではなく、クラスによって使う属性値が決まっている。場合、次の属性値を扱うことができる。CFDataRef上記は基本的にプログラムで設定する必要がある。自動的に設定される訳ではない。指定がない場合、自動的にデフォルト値が設定される(後述)。ドキュメントに書かれていたわけではなく調査の結果そう判断した。値をもつアイテムを登録することができる。運用することもできる。値は複数登録できない(登録時に重複エラーとなる)。ユニークキーの構成には入らない。値が異なるアイテムの登録はできない(やはり重複エラーとなる)。検索キーとしては有効に働くので、プログラム内でのキーの用途や分類を表す検索タグのような用途で利用することができる。内に格納した情報へのアクセスに制限を加えることができる。×デバイスの状態(ロック、アンロック)の他、PCへバックアップしたデータをリストアする時の対象に含めるかどうかを指定することができる。バックグラウンドで動作するアプリの場合、ロック状態(スリープ時)にはアクセスできないので注意。戻り値(エラーコード)はリファレンスで定義されている。正常終了、それ以外はエラー。値によってアクセスの可否が制御されている。Group(以下、グループ)と呼ぶ。アプリケーションはアクセス対象のアイテムと同じグループに所属している必要がある。アプリケーションと異なるグループに所属しているアイテムは検索にヒットしない。所属している必要がある。定義されるグループに所属している。定義されているアプリケーション識別子を指す。この為、アプリケーション自身が登録したアイテムを後から読み出すことができる。Entitlements.plistファイルの作成するとこのデフォルト値を変えることができる。デフォルト値をアプリケーションで変えることができる。このファイルにグループを複数既述することで、アプリケーションが所属するグループを複数定義することができる。以下、plistファイルの作成手順。専用の設定ファイルというわけではない。形式のファイルを作成する。Entitlements)が用意されているのでそれを使うのが良いだろう。テンプレートから作成されたファイルの内容は次の通り。keychain-access-groups(配列)へ所属するグループを列挙しておく。1.で作成したファイル名を指定する。作成した場合、この設定は自動的に行われる。あとはビルドすればいい。指定する文字列には次の命名ルールがある。場合、指定可能なグループ名は次のようになる。GFDZH8DCX.xcatsan.com.KeychainSampleGFDZH8DCX.xcatsan.com.KeychainSample.temporaryGFDZH8DCX.mikenekoこのルールが満たされない場合はアイテム登録時にエラーとなったり、実機へのインストール時にエラーとなる。このルールはセキュリティ上の理由によるもので、これによりプロビジョニングファイルが異なる他のアプリケーションが登録したアイテムの読み出しができなくなっている(シミュレータはこのルールが適用されないので他アプリケーションのアイテムが読み出せている)。設定される値は次の順番で評価される。設定されている場合は、その値が使われる。配列の1番目の値が使われる。