Ios 如何在不使用AddressBookCopyArrayFallPeople的情况下一次从通讯簿中获取一个联系人?

Ios 如何在不使用AddressBookCopyArrayFallPeople的情况下一次从通讯簿中获取一个联系人?,ios,ios7,ios8,abaddressbook,Ios,Ios7,Ios8,Abaddressbook,目前,我们可以使用返回联系人对象数组的AbAddressBookCopyArrayFallPeople获取地址簿中的所有联系人。如果手机上有大量联系人,那么分配给阵列的内存将非常重要。为了避免大量内存消耗,我们希望通过编程方式直接访问数据库,一次从通讯录中获取一个联系人 可使用RecordID或PeopleName对此进行设置。如果没有接触对象数组,我们也无法获得,因为我们首先要避免使用数组 是否有任何方法可以从通讯录数据库中取回一个联系人,并将光标移动到下一个联系人并取回下一个联系人?Andr

目前,我们可以使用返回联系人对象数组的AbAddressBookCopyArrayFallPeople获取地址簿中的所有联系人。如果手机上有大量联系人,那么分配给阵列的内存将非常重要。为了避免大量内存消耗,我们希望通过编程方式直接访问数据库,一次从通讯录中获取一个联系人

可使用RecordID或PeopleName对此进行设置。如果没有接触对象数组,我们也无法获得,因为我们首先要避免使用数组


是否有任何方法可以从通讯录数据库中取回一个联系人,并将光标移动到下一个联系人并取回下一个联系人?Android有这样做的条款,我们希望在iOS中也有类似的方法?

我认为在iOS中不可能。但是,如果我们有10000个联系人,那么这应该不会是一个问题,因为
abAddressBookCopyArrayFallPeople
函数为您提供了对
ABPerson
的一系列引用。该函数没有给我们整个地址簿的副本,因此内存开销不是问题。是的,我们浏览了Apple文档,似乎没有API一次获取一个联系人。您确定ABAddressBookCopyArrayFallPeople只返回对实际ABperson联系人类的引用数组吗?这将确保内存消耗不会像我之前所想的那样大。如果您可以从
ABPerson
类引用中看到返回类型,您可以看到该方法返回
CFArrayRef
,它是指向实际对象的指针(就像java中的光标一样)。是的,您是对的。静态分配的字符串太多,占用了内存。我们已经纠正了这个问题,非常感谢。欢迎您随时光临。