2016-05-14 15 views
3

Ich versuche, Kontakte aus dem Adressbuch zu einer bestimmten Zeit programmgesteuert zu entfernen. Ist es in Swift überhaupt möglich und lässt Apple es zu? Ich bin bereits vertraut mit CNContactStore, weil ich arbeiten habe Kontakte in Telefonbuch hinzufügen. Zugang zu Kontakten usw. gewährt. Aber ich weiß nicht, wie man Kontakte aus dem Adressbuch (für immer) zu einem bestimmten Zeitpunkt programmatisch löscht.Programmatisch entfernen Sie den Kontakt aus Adressbuch zu bestimmten Zeit in Swift

Jede Hilfe wird geschätzt!

+0

' Eigentlich möchte ich NSTimer' verwenden Warum – Moritz

Antwort

6

REFERENZ:

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


ERKLÄRUNG (DER LINK):

Kontakt löschen

„Das iOS Kontakte Rahmen gibt uns die Funktion deleteContact (:) zu h elp uns Kontakte löschen. Hoffentlich haben Sie dieses Tutorial soweit verstanden, dass Sie fortfahren können, da ich nur den Prozess skizzieren und Sie versuchen lassen werde. Genau wie wir es in diesem Tutorial getan haben, werden wir ein Objekt vom Typ CNSaveRequest instanziieren, die deleteContact ( :) -Funktion, die ich gerade erwähnt habe, ausgeben und den veränderbaren Kontakt dorthin übergeben. Dann, wie wenn wir Kontakte oder aktualisierte Kontakte erstellt haben, werden wir die executeSaveRequest (_ :) verwenden.

Bitte beachten Sie, dass Löschen Löschen bedeutet! Kontakte, die gelöscht werden, können nicht erneut abgerufen werden. Dies sollte im Simulator nicht so wichtig sein, aber Sie müssen sicherstellen, dass Sie über Sicherheitsprotokolle verfügen, damit Sie keine Benutzerkontakte löschen.

Also, hast du es geschafft, das Löschen funktioniert? Ok, Fein, ich werde den vollständigen Code veröffentlichen, damit Sie sehen können „


SOLUTION (DER LINK).

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

Warum? the downvote? Ich brauche eine Erklärung! – Coder1000

+0

Vielen Dank für Ihre Hilfe. Es funktioniert wie es sollte. Und ich weiß wirklich nicht, warum der Downvote. Prost :) Und eigentlich habe ich nur die gleiche Lösung gefunden, indem ich auch googlen muss sei dumm: D –

+0

@ TarvoMäeSpp Haha: D Glücklich zu helfen! – Coder1000