我只是试图将这个Objective-C块转换为swift,但是似乎有一个问题,我无法解决。这些变量都不是可选的。
Objective-C-工作
[CLPlacemark hnk_placemarkFromGooglePlace:place
apiKey:YOUR_API_KEY
completion:^(CLPlacemark *placemark, NSString *addressString, NSError *error) {
}];
迅速-提供错误
CLPlacemark.hnk_placemarkFromGooglePlace(placeAtIndexPath(indexPath),"YOUR_API_KEY",
completion:{ (placemark:CLPlacemark!, addressString: NSString!, error: NSError!) -> Void in
})
错误信息:
Cannot invoke 'hnk_placemarkFromGooglePlace' with an argument list of type '(HNKGooglePlacesAutocompletePlace!, String, completion: (CLPlacemark!, NSString!, NSError!) -> Void)'
Swift方法签名
CLPlacemark.hnk_placemarkFromGooglePlace(place:
HNKGooglePlacesAutocompletePlace!, apiKey:String!, completion:
((CLPlacemark!, String!, NSError!) -> Void)
最佳答案
Swift在块中将NSString桥接到String。您仍在回调中使用NSString,但应使用String。
关于ios - 将Objective-C块转换为Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31147241/