Show google maps marker in Swift 4

I am want to call drawMarker function from outside the geoCoder but it doesn't work. If I call it from inside the geoCoder then marker shows on map but when I call it from outside the geoCoder or from another function the no marker shows even though the mapView is set in the geoCoder before the call!

private func setCamera(address: String) {
    let geoCoder = CLGeocoder()
    geoCoder.geocodeAddressString(address) {
        (placemarks, error) in
        let placemark = placemarks?.first?.location?.coordinate
        let camera = (placemark?.latitude)!, longitude: (placemark?.longitude)!, zoom: 10)
        self.mapView =, camera: camera)
        self.view = self.mapView

        //self.drawMarker() This work
    //self.drawMarker() This Does Not work

private func drawMarker() {
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: 42.886447, longitude: -78.878369)
    marker.title = "Buffalo"
    marker.icon = UIImage(named: "ic_other") = self.mapView