     private var selectedContacts: [CNContact] = []
     private let completion: Completion
     private let infoText: String?
+    private let showPermissionAlertAutomatically: Bool
     
     
     // MARK: - Init

     
     - parameter infoText:   This is the text that will appear at the top of the EmailPicker. Use this to provide additional instructions or context for your users.
     - parameter doneButtonTitle: This is the title of the right bar button item, used to finish selecting emails.
     - parameter completion: The completion closure to handle the selected emails.
     
     - returns: Returns an EmailPicker.
     */
    public init(infoText: String? = nil, doneButtonTitle: String = "Done", completion: @escaping Completion) {
        self.completion = completion
        self.infoText = infoText
        super.init(nibName: nil, bundle: nil)
        
        navigationItem.title = "Select Contacts"

        CNContactStore.fetchAllContacts(keysToFetch: keysToFetch, filter: { !$0.emailAddresses.isEmpty }) { (results, error) in
            finishLoading()
            if let error = error {
                if self.showPermissionAlertAutomatically {
                    self.showPermissionAlert(error: error)
                }
            } else if let results = results {
                self.contacts = results.sorted(by: { (lhs, rhs) -> Bool in
                    return lhs.givenName < rhs.givenName
