【问题标题】:Reuse a function across multiple UIViewControllers跨多个 UIViewController 重用一个函数
【发布时间】:2015-01-27 19:13:20
【问题描述】:

我可以跨多个 UIViewController 重用一个变量,方法是将它存储在我的项目中的一个单独的 Swift 文件中,但我似乎不能对函数做同样的事情。它根本无法像变量那样被识别。

我该怎么做?

【问题讨论】:

    标签: ios swift uikit


    【解决方案1】:

    你必须在类体之外声明它:

    import UIKit
    import SpriteKit
    
    class OneClass{
        func notGlobal(){
          println("not global")
    }
    
    func globalMethod(string:String){
        println("its global")
    }
    

    【讨论】:

    • 这是正确的。我实际上做这部分是对的,但我使用self 来引用当前视图控制器。我将全局函数更改为将视图控制器作为附加参数,现在它可以工作了。
    【解决方案2】:

    查看 Swift 扩展:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html

    如果这是您希望所有UIViewController 实例的函数,您可以将该方法放在UIViewController 扩展中。

    【讨论】:

      【解决方案3】:

      您甚至可以在同一个文件中定义它,但如果必须在 class 主体之外,这将使其成为全局变量或函数,并且可以从任何地方访问。

      【讨论】:

        猜你喜欢
        • 2011-02-09
        • 2018-08-12
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 2012-03-27
        • 1970-01-01
        • 2021-03-22
        • 2014-10-06
        相关资源
        最近更新 更多