从ContactStore获取重复的CNContacts?

时间:2015-11-30 20:31:10

标签: ios swift swift2 cncontact

我正试图在 iOS 9联系人框架中获得重复CNContacts,但我找不到一个好的解决方案。

我试图让它们循环播放,但它有点慢,而在较旧的设备上它会慢一点..

这是我在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我不知道它会重复吗?或者我如何改进它以加快速度?

0 个答案:

没有答案