2016-08-05 11 views
4
func searchBar(searchBar: UISearchBar, 
    textDidChange searchText: String){ 

     let placesClient = GMSPlacesClient() 
     placesClient.autocompleteQuery(searchText, bounds: nil, filter: nil) { (results, error:NSError?) -> Void in 
      self.resultsArray.removeAll() 
      if results == nil { 
       return 
      } 
      for result in results!{ 
       if let result = result as? GMSAutocompletePrediction{ 
        self.resultsArray.append(result.attributedFullText.string) 
       } 
      } 
      self.searchResultController.reloadDataWithArray(self.resultsArray) 
     } 
} 

Ich habe diese Methode verwendet, um die Adresse in Google Map zu suchen. Aber Use of unresolved identifier 'GMSPlacesClient' Fehler gefunden. Wie könnte ich das lösen?Verwendung der unaufgelösten Kennung 'GMSPlacesClient' in Xcode 7.3.1

+0

Haben Sie Google Map in diesem View-Controller importiert? –

+0

GoogleMaps importieren Ja, ich importiere das. –

+0

Grundsätzlich funktioniert es gut vor der Installation Almofire durch Cocoapds. Aber wenn ich almofire in pods hinzufüge, dann aktualisiere ich den Pod diesen Fehler occor. –

Antwort

3

Use of unresolved identifier 'GMSPlacesClient' Fehler tritt wahrscheinlich auf, wenn Ihre neue Klasse ein anderes Ziel als das andere hat. Es wird in diesem thread angegeben, dass es ein Testziel und das andere nicht haben kann. In diesem Fall müssen Sie alle Klassen in das Testziel aufnehmen oder keines davon.

Diese blog gibt auch mögliche Lösung für den Fehler "Verwendung von unaufgelösten Bezeichner". Ändern Sie die Zugriffskontrolle für Ihre Klasse auf public. Markieren Sie außerdem alle Methoden, die Sie auch mit public testen möchten. Versuchen Sie auch, die Klasse (n) hinzuzufügen, für die Einheitentests für das Testziel geschrieben werden sollen.

Sie können dies auch überprüfen related SO question. Hoffe das hilft!

+0

Vielen Dank. Jetzt funktioniert es gut. –

8

Wenn Sie cocoapod verwenden, müssen Sie den Pod 'GooglePlaces' hinzufügen. Und importieren Sie GooglePlaces.