Ios Swift语法-闭包
我在SWIFT中为这个函数构造一个调用有点困难Ios Swift语法-闭包,ios,swift,syntax,closures,Ios,Swift,Syntax,Closures,我在SWIFT中为这个函数构造一个调用有点困难 func addressFromLocation(location:CLLocation!, completionClosure:((NSDictionary?)->())){ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in var geoCoder = CLGeocode
func addressFromLocation(location:CLLocation!, completionClosure:((NSDictionary?)->())){
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
var geoCoder = CLGeocoder()
geoCoder.reverseGeocodeLocation(location, completionHandler: { (placeMarks, error) -> Void in
if let places = placeMarks {
var marks = places[0] as! CLPlacemark
completionClosure(marks.addressDictionary)
}else {
completionClosure(nil)
}
})
})
}
有人能帮忙吗?首先,您可以从
completionClosure
参数类型中删除不必要的括号:
func addressFromLocation(location: CLLocation!, completionClosure: NSDictionary? -> ()){
//...
}
你可以这样调用这个函数:
addressFromLocation(location, completionClosure: {
dict in
// your code
})
或者更简单,因为如果闭包是函数的最终参数,则可以使用尾随闭包语法:
addressFromLocation(location) {
dict in
// your code
}
如果您不需要命名参数dict
,则可以按编号引用参数:
addressFromLocation(location) {
print($0)
}
你能解释一下你想构造什么吗?@arthankamal我想调用这个函数,所以要根据SWIFT语法构造一个调用,我不知道该怎么做,希望如此helps@arthankamalthanx,但是我想知道如何用这个特定的闭包调用这个函数(位置,completionClosure:{yourDict in//your code})是的,这些括号你说得对。谢谢,效果很好。