我在实现 ABPeoplePickerNavigationControllerDelegate 时遇到了这个奇怪的问题。所以标识符有时在委托方法中被错误地获取了它的值
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier;
例如,当我从联系人中选择第一个号码时,标识符应该为 0。但有时它是 1(即使该联系人只有 1 个号码)!
很容易验证,
...
ABMultiValueRef phoneProperty = ABRecordCopyValue(person,property);
int count = ABMultiValueGetCount(phoneProperty);
NSLog(@"How many numbers do I have %d and which number do I choose %d",count,identifier);
它有时会打印出来
我有多少个数字1我选哪个数字1
那么有人也遇到过同样的问题吗?
更新:有时标识符甚至大于计数。怎么会!!
我有多少个数字 2 我选择哪个数字 3