我想知道什么是最好(最快和最简单)的文本字段方式 自动完成iPhone的地址簿联系信息。
每次按键足够快时,是否会访问地址簿? 或者我是否必须在我自己的本地数据库中加载所有内容(通常是CoreData)? 另一种方法是在每个应用程序启动时加载内存中的所有内容。任何经验 关于地址簿的访问速度?
ADDED:我想避免加载地址簿内容的本地副本,因为它不仅需要编写更多代码,而且还需要在修改地址簿时同步本地副本。
答案 0 :(得分:2)
对于通过字符检索的超快字符,您需要的方法称为Directed acyclic word graph。
答案 1 :(得分:1)
每次都会访问地址簿 按键的时间足够快?
可能不适合大书而是测试一下。您可以使用每个附加角色调用ABAddressBookCopyPeopleWithName
,然后查看弹出的内容。您很可能需要最少数量的字符,例如3在执行搜索之前,因为否则你会为每个第一个字符获得大量的回报。
但是,我不认为有电话号码和地址的功能。
另一种方法是创建一个带有字母和数字的树数据结构,这些结构将分支到包含特定AddressBook条目的ABRecordID的叶子。使用核心数据关系是一种快速简便的方法。当然,您必须不断更新树。