获取通讯录的人数不全

问题描述: 客户端读取本地通讯录, 读取后填充到页面显示. 发现部分测试机总有几个手机号读取不到. 比如王小明的手机号读取不到.
误区: 开始一直以为是代码中某些逻辑过滤掉了 某些手机号码. 所以查了好久也没有查到问题, 而且如上所说, 如果是过滤掉的, 那应该在其他手机可以复现, 结果并没有复现.

问题原因: 代码使用了 CNContactStore 方法获取通讯录(ios9+), 代码中, 获取用户全名, 我使用了NSString *name = [CNContactFormatter stringFromContact:contact style:CNContactFormatterStyleFullName];方法, 而该方法有一个问题是, 当通讯录中存在一个用户名为空的记录时, 全名会变成nil, 使得遍历过程中断(但是不会使程序崩溃). 中断后, 未遍历到的用户便成了"丢失人口".

具体详见: https://www.jianshu.com/p/4657f54265d7

你可能感兴趣的:(获取通讯录的人数不全)