获取AddressBook的索引值?

时间:2013-09-10 10:35:26

标签: ios addressbook

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

我正在使用:

ABRecordRef ref= CFArrayGetValueAtIndex(AddressBookPeople, index);

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

同样,如何知道ABRecordRef值后的记录索引?

2 个答案:

答案 0 :(得分:0)

NSArray有一个方法:

- (NSUInteger)indexOfObject:(id)anObject 

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

CFArrayNSArray免费联网。所以我认为这应该有用,

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)];

这给了我正确的索引。

答案 1 :(得分:0)

您还可以更正确地使用:

CFArrayGetFirstIndexOfValue