From iOS 9, you can register your class to observe CNContactStoreDidChangeNotification
NSNotificationCenter.defaultCenter().addObserver( self, selector: #selector(addressBookDidChange), name: NSNotification.Name.CNContactStoreDidChange, object: nil)
And then:
@objc func addressBookDidChange(notification: NSNotification){
as indicated in the link reference information
After the save is successful, the contact store sends a notification message to CNContactStoreDidChangeNotification, the default notification center. If you cache any contact wireframe objects, you must restore these objects either by their identifiers or using the predicates that were originally used to retrieve them, and then release the cached objects. Please note that cached objects are outdated, but not invalid.
EDIT:
Note that the address book and address book user interface frameworks are now out of date.
source share