0

当我们知道和地址簿时,如何获取地址簿的索引ABRecordRef

我在用:

ABRecordRef ref= CFArrayGetValueAtIndex(AddressBookPeople, index);

获取给定索引处的记录引用。

ABRecordRef同样,当值已知时,如何获取记录的索引?

4

2 回答 2

0

NSArray有一个方法:

- (NSUInteger)indexOfObject:(id)anObject 

返回其对应数组值等于给定对象的最低索引。

CFArray与免费桥接NSArray。所以我认为这应该有效,

int index = [(NSArray *)AddressBookPeople indexOfObject:ref];

编辑:::

  ABAddressBookRef addressBook = ABAddressBookCreate();
  CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
  ABRecordRef ref= CFArrayGetValueAtIndex(people, 4);
  NSUInteger i = [(__bridge NSArray *)people indexOfObject:(__bridge id)(ref)];

这让我返回了正确的索引。

于 2013-09-10T10:53:58.153 回答
0

您还可以更正确地使用:

CFArrayGetFirstIndexOfValue
于 2013-09-10T11:31:33.080 回答