像标题一样,通过电话号码在设备通讯录中查找联系人的最佳和有效方法是什么?实际上我使用这样的方法:
注意:
[rm getElencoContatti]
返回通讯录中的所有联系人 从通讯录
[contatto getID]
返回联系人 id 从通讯录
[contatto getNumeriContatto]
返回所有联系人的电话号码
+(NSMutableDictionary *)getNomeContattoDaNumero:(NSString *)numeroTelefono {
NSMutableDictionary *returnValue = [[NSMutableDictionary alloc]init];
NSNumber *idContact;
for(ContattoRubrica *contatto in [rm getElencoContatti]) {
idContact = [contatto getID];
for(id numero in [contatto getNumeriContatto]) {
if([numeroTelefono isEqualToString:[numero objectForKey:@"numeroTelefono"]]) {
[returnValue setValue:[contatto getNomeContatto] forKey:@"nome"];
[returnValue setValue:idContact forKey:@"idContatto"];
return returnValue;
}
}
}
[returnValue setValue:numeroTelefono forKey:@"nome"];
[returnValue setValue:[NSNumber numberWithInt:-1] forKey:@"idContatto"];
return returnValue;
}
我用大约200个联系人的通讯录测试了这个方法,这个功能很慢。是否存在任何自动执行此操作的 ABAddressbook.h 方法?
提前致谢。