快速将方法中的特定值作为参数传递

时间:2018-08-16 06:17:40

标签: ios methods parameter-passing swift4

如何制作用户只能传递特定值的方法

button.setTitle("SKIP", for: .normal)

setTitle方法在“ for”之后采用特定参数,我们只需按即可。 (点),并显示通过值的建议。

我想做同样的事情,例如,我想做一个计算两点之间距离的方法,

func distanceBetween(loc1: CLLocation, and loc2: CLLocation, unit: String) -> CLLocationDistance {}

在这里,用户将传递location1和location2作为参数,我想限制用户传递单位时,他应该只有3个选项,公里,英里和米。

1 个答案:

答案 0 :(得分:1)

使用所需的值创建一个enum并将该枚举用作参数。

enum Unit {
     case km
     case miles
     case meters
}

现在您的功能将更改为:

func distanceBetween(loc1: CLLocation, and loc2: CLLocation, unit: Unit) -> CLLocationDistance {
     switch unit {
     case .km:
         // Do something for kilometers
     case .miles:
         // Do something for miles
     case .meter:
         // Do something for meters
}

如果要添加另一个单元,编译器将抛出错误,提示您尚未指定default情况,您将立即被处理。

您的函数调用将使用Unit中的任何一个作为参数。示例:

distanceBetween(loc1: location1, and loc2: location2, unit: .km)