我想每個過濾用戶輸入字符時使用搜索欄搜索聯繫人地址簿時。這適用於普通字符,但是當輸入符號像$或(對於第一個字符,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);
我得到,其中使用filteredContacts創建filteredContactsMutable第二行的EXC_BAD_ACCESS。當調試它,filteredContacts是一個無效CFArrayRef當符號是第一字符。本機由蘋果公司創建的PeoplePicker允許你搜索一個符號作爲第一個字符,所以我知道這是可能的。
任何輸入將不勝感激。
沒有任何人有一個想法?它是否可重現? – MDIF