     
     // MARK: Initializers
     
-    /// Returns an object initialized from data in a given unarchiver.
-    ///
-    /// - Parameter coder: An unarchiver object.
-    /// - Returns: self, initialized using the data in decoder.
-    
     public required init?(coder aDecoder: NSCoder) {
         
         super.init(coder: aDecoder)


extension GCCountryPickerViewController: UISearchResultsUpdating {
    
    /// Called when the search bar becomes the first responder or when the user makes changes inside the search bar.
    ///
    /// This method is automatically called whenever the search bar becomes the first responder or changes are made to the text in the search bar. Perform any required filtering and updating inside of this method.
    ///
    /// - Parameter searchController: The UISearchController object used as the search bar.
    
    public func updateSearchResults(for searchController: UISearchController) {
        
        var searchResults = [GCCountry]()


extension GCCountryPickerViewController {
    
    public override func numberOfSections(in tableView: UITableView) -> Int {
        
        return self.countries.count
    }
    
    public override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return self.countries[section].count
    }
    
    public override func sectionIndexTitles(for tableView: UITableView) -> [String]? {
        
        return self.sectionIndexTitles
    }
    
    public override func tableView(_ tableView: UITableView, sectionForSectionIndexTitle title: String, at index: Int) -> Int {
        
        return self.collation.section(forSectionIndexTitle: index)
    }
    
    public override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath)
