AddressBookiOSで連絡先からPersonレコードを取得する際に、名前のキーワードで検索して意図しない挙動となった。やりたかったのは名字の頭文字で検索して該当する名前を取得したかったのだが、これまでの処理では検索対象が名字だけでなく名前にもなっていたため、名字だけを検索対象となるように修正した。Personレコードを検索する方法は以下の3つの方法がある。検索結果をフィルタリングする(filteredArrayUsingPredicate関数)これまでは1)のABAddressBookCopyPeopleWithNameを使用していたが、これは「姓」「姓(読み)」「名」「名(読み)」が検索対象(※日本語設定の場合)となり、これら全ての項目を検索対象とするある場合は便利だが、検索対象を1つに絞りたい場合などは不便だ。CFStringRef)keyword));}この結果は「姓」「名」「姓(読み)」「名(読み)」のどれかが「さ」から始まる場合に結果として返ってくる。カタカナの場合でもヒットする。}]];}Personデータで検索したプロパティでのみ比較しているので、検索項目を絞り込み結果を得ることが可能となる。上記のコードではARCを対応としてるため、「__bridge」でキャストをしてる。iOS6からはアドレス帳へのアクセスにユーザへの同意を求める必要があるので、ABAddressBookGetAuthorizationStatus()を使用してアクセス許可の状態を判断する処理が必要となる。(13)Amazonアソシエイトについて佐長Blogはamazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。