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){
//Handle event here...
}
as reported in Contacts Framework Reference
After a save is successfully executed, the contact store posts a
CNContactStoreDidChangeNotification notification to the default
notification center. If you cache any Contacts framework objects you
need to refetch those objects, either by their identifiers, or with
the predicates that were used to originally fetch them, and then
release the cached objects. Note that cached objects are stale, but
not invalid.
EDIT:
Note that Address Book and Address Book UI frameworks are now deprecated.