在iPhone上实现地址簿自动完成的最佳方式?

时间:2011-03-08 10:08:25

标签: iphone core-data memory-management autocomplete addressbook

我想知道什么是最好(最快和最简单)的文本字段方式 自动完成iPhone的地址簿联系信息。

每次按键足够快时,是否会访问地址簿? 或者我是否必须在我自己的本地数据库中加载所有内容(通常是CoreData)? 另一种方法是在每个应用程序启动时加载内存中的所有内容。任何经验 关于地址簿的访问速度?

ADDED:我想避免加载地址簿内容的本地副本,因为它不仅需要编写更多代码,而且还需要在修改地址簿时同步本地副本。

2 个答案:

答案 0 :(得分:2)

对于通过字符检索的超快字符,您需要的方法称为Directed acyclic word graph

答案 1 :(得分:1)

  

每次都会访问地址簿   按键的时间足够快?

可能不适合大书而是测试一下。您可以使用每个附加角色调用ABAddressBookCopyPeopleWithName,然后查看弹出的内容。您很可能需要最少数量的字符,例如3在执行搜索之前,因为否则你会为每个第一个字符获得大量的回报。

但是,我不认为有电话号码和地址的功能。

另一种方法是创建一个带有字母和数字的树数据结构,这些结构将分支到包含特定AddressBook条目的ABRecordID的叶子。使用核心数据关系是一种快速简便的方法。当然,您必须不断更新树。