5
在ios8,我想要訪問聯繫人屬性,如果他有多個電話號碼,但我不知道如何在iOS8中執行此操作。顯示聯繫人屬性,如果它有多個電話號碼與ios8
這是我在iOS7代碼:
-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
//If person has just one phone number
ABMultiValueRef phonesRef = ABRecordCopyValue(person, kABPersonPhoneProperty);
if(ABMultiValueGetCount(phonesRef) == 1){
CPIContact* contact = [self getCPIContactFromPerson:person andPhoneIndex:0];
[self addContact:contact];
// Dismiss the address book view controller.
[_addressBookController dismissViewControllerAnimated:YES completion:nil];
return NO;
}else if(ABMultiValueGetCount(phonesRef) == 0){
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Common_information",nil) message:NSLocalizedString(@"EditCallSMS_noNumber", nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"Common_ok",nil) otherButtonTitles:nil] show];
return NO;
}
else{
return YES;
}
}
我知道我要使用從iOS8上的方法didSelectPerson,但我不知道如何告訴應用程序,它可以選擇像一個人後繼續IOS 7。
我讀了關於蘋果文檔的predicateForSelectionOfPerson,但我不明白如何使用它。
預先感謝您的幫助。
if ([peoplePicker respondsToSelector:@selector(setPredicateForSelectionOfPerson:)])
{
peoplePicker.predicateForSelectionOfPerson = [NSPredicate predicateWithFormat:@"%[email protected] > 1", ABPersonPhoneNumbersProperty];
}
這隻會讓你選擇2個以上的電話號碼的聯繫人:
謝謝!這就是我需要的!恰恰相反(「%K @ count <2」),但現在我明白如何在人員選取器中使用謂詞。 – Leep 2014-10-06 12:38:33
可能還需要: 如果([拾取器respondsToSelector:@selector(setPredicateForEnablingPerson :)]) { picker.predicateForEnablingPerson = [NSPredicate predicateWithFormat:@ 「emailAddresses @計數> 0」]; } 沒有這一點,我的應用程序根本不會選擇聯繫人 – 2014-12-17 13:35:01
@Leep當我添加'(「%K. @ count <2」)'時,所有電話號碼少於2個的聯繫人將變灰。 – user1324887 2016-07-19 06:53:17