Swift:如何创建一个全局扩展,以便在Double或Int处使用它?

时间:2017-07-11 18:29:41

标签: swift extension-methods

这是我的问题:我正在尝试为Double(或Int)创建一个全局扩展,它可以在每个ViewController中使用,而不必重复每个ViewController文件顶部的代码。

例如:

extension Double {
    var mileToFeet: Double {return self * 5280}
}

当然我可以这样称呼它:

let feet = 26.mileToFeet

显然,当我将扩展放在ViewController的顶部并将其与代码一起使用时,这是有效的,但是我可以在哪里放置扩展名以便我可以在任何地方使用它?

我试着将它放入AppDelegate,但那不起作用? 我在正确的轨道吗?

由于

2 个答案:

答案 0 :(得分:3)

您需要制作广告public

public extension Double {
    var mileToFeet: Double {return self * 5280}
}

答案 1 :(得分:3)

您应该将代码放在顶层。因为不在任何视图控制器或任何其他类中。像这样:

extension Double {
    // Your code
}

class MyViewController: UIViewController {
    // ...
}

这个:

class MyViewController: UIViewController {
    extension Double {
        // Your code
    }

    // ...
}