2016-05-14 23 views
3

我試圖以編程方式從特定時間從地址簿中刪除聯繫人。在Swift中甚至有可能,蘋果是否允許它?我已經熟悉CNContactStore,因爲我已經在將聯繫人添加到電話簿中了。允許訪問聯繫人等。但我不知道如何在特定時間以編程方式從聯繫人(永遠)刪除聯繫人。以編程方式從特定時間在地址簿中刪除聯繫人在快速

任何幫助表示讚賞!

+0

'其實我想用NSTimer'爲什麼 – Moritz

回答

6

參考:

http://www.ios-blog.co.uk/tutorials/swift/contacts-framework-p2/


說明(從鏈接):

刪除聯繫人

「的iOS設備通訊錄框架爲我們提供了功能deleteContact( h。:) elp我們刪除聯繫人。希望您已經足夠了解本教程,因爲我只是要概述過程並讓您嘗試。就像我們在本教程中所討論的那樣,我們將實例化一個類型爲CNSaveRequest的對象,發出剛剛提到的deleteContact( :)函數,並將可變聯繫人傳遞給它。然後,就像我們創建聯繫人或更新聯繫人時一樣,我們將使用executeSaveRequest(_ :)。

請注意,刪除意味着刪除!刪除的聯繫人無法再次獲取。這在模擬器上不應該太重要,但是您需要確保安裝了安全協議,以便您不會刪除用戶聯繫人。

那麼,你是否設法讓刪除工作?好吧,好吧,我會發布完整的代碼,所以你可以看到「


解決方案(從鏈接):

let predicate = CNContact.predicateForContactsMatchingName("John") 
let toFetch = [CNContactEmailAddressesKey] 

do{ 
    let contacts = try store.unifiedContactsMatchingPredicate(predicate,keysToFetch: toFetch) 
    guard contacts.count > 0 else{ 
    print("No contacts found") 
    return 
    } 

    guard let contact = contacts.first else{ 

return 
    } 

    let req = CNSaveRequest() 
    let mutableContact = contact.mutableCopy() as! CNMutableContact 
    req.deleteContact(mutableContact) 

    do{ 
    try store.executeSaveRequest(req) 
    print("Success, You deleted the user") 
    } catch let e{ 
    print("Error = \(e)") 
    } 
} catch let err{ 
    print(err) 
} 
+0

爲什麼呢?我需要一個解釋! – Coder1000

+0

非常感謝你的幫助,它的工作原理應該是這樣,我真的不知道爲什麼downvote。乾杯:)實際上,我也只是通過googling找到相同的解決方案,我必須be dumb:D –

+0

@TarvoMäesepp哈哈:D樂意幫忙! – Coder1000

相關問題