ユーザーが文字を入力するたびに検索バーを使用して連絡先をフィルタリングしようとしています。これは通常の文字では問題ありませんが、シンボルが$や(最初の文字の場合はABAddressBookCopyPeopleWithNameは "Invalid CFArrayRef"を返します。コードは以下の通りです。iPhone - Xcode - アドレス帳でシンボルを検索するときに無効なCFArrayRef
CFArrayRef filteredContacts = ABAddressBookCopyPeopleWithName(addressBook, (CFStringRef)searchText);
CFMutableArrayRef filteredContactsMutable = CFArrayCreateMutableCopy(kCFAllocatorDefault, CFArrayGetCount(filteredContacts), filteredContacts);
CFArraySortValues(filteredContactsMutable, CFRangeMake(0, CFArrayGetCount(filteredContactsMutable)), (CFComparatorFunction)ABPersonComparePeopleByName, (void*)sortOrdering);
contacts = (NSArray *)filteredContactsMutable;
CFRelease(filteredContacts);
私はそれをデバッグするとき、私は。filteredContactsMutableがfilteredContactsを使用して作成された2行目EXC_BAD_ACCESSを取得し、filteredContactsはシンボルが最初文字のとき無効CFArrayRefです。ネイティブAppleが作成したPeoplePickerでは、最初の文字としてシンボルを検索できるので、可能です。
すべての入力をいただければ幸いです。
誰かアイデアはありますか?それは再現可能ですか? – MDIF