Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift语法-闭包_Ios_Swift_Syntax_Closures - Fatal编程技术网

Ios 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

我在SWIFT中为这个函数构造一个调用有点困难

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})是的,这些括号你说得对。谢谢,效果很好。