2016-07-11 25 views
1

Xcode 7.3.1を使用してコードを変換したいのですが、ここでの問題のいくつかの種類が、これは私がスウィフト1.1でそれを使用するために使用される方法ですが、私はエラーを取得しています:'([AnyObject] !, NSError!)の値を変換できません - >引数型を期待するためのVoid' CLGeocodeCompletionHandler '

private func geoCodeAddress(address:NSString){ 

    let geocoder = CLGeocoder() 
    geocoder.geocodeAddressString(address as String, completionHandler: {(place marks: [AnyObject]!, error: NSError!) -> Void in ---> Error //Cannot convert value of type '([AnyObject]!, NSError!) -> Void' to expect argument type 'CLGeocodeCompletionHandler' (aka '(Optional<Array<CLPlacemark>>, Optional<NSError>)->()') 

     if (error != nil) {     
      self.geocodingCompletionHandler!(gecodeInfo:nil,placemark:nil,error: error.localizedDescription)     
     } 
     else{ 

      if let placemark = placemarks?[0] as? CLPlacemark { 

       var address = AddressParser() 
       address.parseAppleLocationData(placemark) 
       let addressDict = address.getAddressDictionary() 
       self.geocodingCompletionHandler!(gecodeInfo: addressDict,placemark:placemark,error: nil) 
      } 
      else { 
       self.geocodingCompletionHandler!(gecodeInfo: nil,placemark:nil,error: "invalid address: \(address)")      
      } 
     } 
    }) 
} 

答えて

1

としては、CLGeocodeCompletionHandlerエラーメッセージで述べている:ここで

Cannot convert value of type '([AnyObject]!, NSError!) -> Void' to expect argument type 'CLGeocodeCompletionHandler' (aka '(Optional>, Optional)->()'):

が私のコードですオプションのコンクリートオブジェクトではないので、completionHandlerコードを

に変更するだけです。
geocoder.geocodeAddressString(address, completionHandler: {(placemarks: [CLPlacemark]?, error: NSError?) -> Void in 

}) 
関連する問題