Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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_Methods - Fatal编程技术网

Ios 在Swift中仅使用点分隔符调用方法

Ios 在Swift中仅使用点分隔符调用方法,ios,swift,methods,Ios,Swift,Methods,我很难理解alamofire库函数中的以下语法 Alamofire.request(.GET, "https://someWebsite.com/api/", parameters: ["key":"2121"]) .responseJSON { response in if let JSON = response.result.value { print("JSON: \(JSON)")

我很难理解alamofire库函数中的以下语法

Alamofire.request(.GET, "https://someWebsite.com/api/", parameters: ["key":"2121"])
         .responseJSON { response in
                   if let JSON = response.result.value {
                        print("JSON: \(JSON)")
                    }
            }
为什么
responseJSON
方法没有前缀?此外,为什么这个方法的主体中有一个完成处理程序,它不应该是这个方法的参数吗?i、 e

    .responesJSON( response in ... )

为什么responseJSON方法没有前缀

如果从编译器的角度来看,responseJSON有一个前缀:responseJSON是一个根据请求方法的结果调用的方法。 由于回车和缩进,它似乎没有前缀,但您可以将.responseJSON函数放在request方法的右括号之后

这是Alamofire开发人员的设计选择:请求函数返回调用它的同一对象,因此您可以在同一对象上调用另一个函数,而无需重复Alamofire前缀。 这在这类场景中很常见,您需要在同一对象上调用多个函数来进行设置

为什么这个方法的主体中有一个完成处理程序,它不应该是这个方法的参数吗

在Swift中,如果方法或函数的唯一参数是闭包(例如,完成处理程序),则可以缩写并编写

.responseJSON { response in ... }
而不是

.responseJSON ({response in ...})

为什么responseJSON方法没有前缀

如果从编译器的角度来看,responseJSON有一个前缀:responseJSON是一个根据请求方法的结果调用的方法。 由于回车和缩进,它似乎没有前缀,但您可以将.responseJSON函数放在request方法的右括号之后

这是Alamofire开发人员的设计选择:请求函数返回调用它的同一对象,因此您可以在同一对象上调用另一个函数,而无需重复Alamofire前缀。 这在这类场景中很常见,您需要在同一对象上调用多个函数来进行设置

为什么这个方法的主体中有一个完成处理程序,它不应该是这个方法的参数吗

在Swift中,如果方法或函数的唯一参数是闭包(例如,完成处理程序),则可以缩写并编写

.responseJSON { response in ... }
而不是

.responseJSON ({response in ...})