0

我试图CNContactsiOS 9 联系人框架中复制,但我找不到一个好的解决方案。

我试图让它们循环,但它有点慢,在旧设备上它会更慢..

这是我在 iPhone 6 上取得的最好成绩(500 个联系人,134 个重复):

        func fetchDuplicateContacts(){

        self.arr_duplicateContacts.removeAll();
        NSLog("Start fetch duplicate", "")
        for (var i: Int = 0; i < self.arr_allContacts.count; i++){
            let contact1 = self.arr_allContacts[i]
            for (var j: Int = ++i; j < self.arr_allContacts.count; j++){
                let contact2 = self.arr_allContacts[j]
                if(contact1 != contact2){
                    if CNContactFormatter.stringFromContact(contact1, style: .FullName) == CNContactFormatter.stringFromContact(contact2, style: .FullName){
                        print("Move on cuz duplicate: \(CNContactFormatter.stringFromContact(contact1, style: .FullName))")
                        self.arr_duplicateContacts.append(contact2)
                        i = j;

//                        break; <- Commented because it can be 2-3-4 duplicate contacts
                    }
                }
            }
        }
        NSLog("End fetch duplicate", "")
        self.mytable.reloadData()
    }

NSLogs 向我展示了:

2015-11-30 22:18:03.528 Coxxxxx[5312:1581719] 开始获取重复

2015-11-30 22:18:05.812 Conxxx[5312:1581719] 结束获取重复

有没有Contacts Framework API我不知道它会重复?或者我怎样才能改进它以更快地运行?

4

0 回答 0