快速链接方法-(不要与可选链接混淆)

我在说的api调用看起来像这样:

在这里,我们正在Almofire类上调用一个称为request的方法。 接下来是一个称为validate(statusCode:)方法,然后是另一个名为validate(contentType:) 。 最后,我们可以看到一个名为responseData的方法,该方法带有一个trailing closure ,该trailing closure返回api调用的输出。

它是如何工作的?? 好吧,逻辑很简单。

使函数可链接非常容易,并且可以允许我们使用几乎类似于DSL的语法进行编写。

我们将添加一个执行某些操作的新函数,然后返回 self 就这么简单。

让我们更清楚一点。 我们通常有一个init方法来初始化类的对象。 我们可以有多个designated convenience初始化程序,以使我们的工作更加轻松。 我们可以使用自定义参数来初始化类对象。 考虑一个叫做Celcius的类。

  class Celsius {var temperatureInCelsius:Doubleinit(fromFahrenheit华氏度:Double){temperatureInCelsius =(fahrenheit — 32.0)/ 1.8} init(fromKelvin kelvin:Double){temperatureInCelsius = kelvin — 273.15} func printTemperature(){print(“温度为( temperatureInCelsius)”)}} 

我们有两种初始化方法,一种以kelvin接受温度,另一种以fahrenheit接受温度。 下面的语法创建一个Celcius类的对象,并使用该对象,我们可以调用一个实例方法。

 摄氏(来自开尔文:400).printTemperature() 
 //打印温度为126.85 

如果您知道上面的代码是如何工作的,那么很容易理解本文开头提到的almofire方法链接。

链接方法示例:

让我们创建一个APICaller类。

一个api调用通常有一个url ,一个http methodparameters 。 如果我们使用上述类进行API调用,它将看起来像这样。

  let params = [“ key1”:“ value1”,“ key2”:“ value2”] APICaller()。urlString(“ www.google.com”)。method(.post).parameters(params).response {(resultDict )inprint(resultDict [“ result”]!)} // ----------------
 //在控制台中输出以下内容。   “结果值1”, “结果值2”, “结果值3”, “结果值4”  

让我们拆分以上调用。

  1. 创建一个APICaller类的实例。
  2. 使用字符串作为参数调用urlString方法。 这将在APICaller类中设置url属性并返回self
  3. 调用method方法,该method设置APICaller类的method属性并返回self
  4. 调用parameters方法,用于设置api调用的参数并返回self
  5. 最后,调用名为response的方法,该方法具有一个结尾的闭包作为参数。 在这里,进行API调用,并在成功或失败时,使用结果对象调用回调闭包。 在这里,闭包仅接受Dictionary类型的Dictionary

我希望一切都清楚。 我们可以使用具有所有这些参数的单个init方法,然后调用一个方法,该方法又调用api并返回响应。 但是,这里最大的优点是我们仅在需要时才需要调用任何链接方法。 如果正在执行get方法调用,则可以跳过method方法调用,因为get是代码内的默认方法。 另外,如果不需要参数,我们也可以跳过这些参数。

我们的目标是编写更少的代码,这更有意义!

请享用!!

如果您喜欢阅读这篇文章,请分享并推荐它,以便其他人可以找到💚💚💚💚💚💚!!!!

分类 编程 标签 iOS , iOS应用开发 , 方法链接 , 编程 , Swift