代码之家  ›  专栏  ›  技术社区  ›  etotheipi

相当于c中头文件的swift?

  •  0
  • etotheipi  · 技术社区  · 6 年前

    我有一个简单的问题。在我的Xcode项目中,我有几个函数在几个视图控制器中使用了多次。为了解密代码,我想创建另一个包含这些函数的文件,这样我在viewcontroller中的代码就不会被代码过度膨胀。在C语言中,您可以使用头文件来完成这项工作,但我不知道如何使用swift来完成这项工作。我搜索了一些基本的关键词,但在谷歌上没有找到任何东西。

    2 回复  |  直到 6 年前
        1
  •  4
  •   Rob Napier    6 年前

    这不是您通常应该对C中的头文件执行的操作。这只是代码重用。

    如果您有纯函数,那么只需定义这些函数并将它们放在一个文件中。

    如果您有希望视图控制器可以访问的方法,通常可以通过定义协议和通过扩展添加方法来实现。例如:

    protocol ExtraMethods {}
    
    extension ExtraMethods {
        func doSomething() -> Int { return 1 }
    }
    
    class MyViewController: UIViewController, ExtraMethods {}
    

    或者,可以向所有视图控制器添加方法,或者可以限制 ExtraMethods 查看控制器( extension ExtraMethods where Self: UIViewController )有许多方法可以扩展。但没有一个与C头文件相关。

        2
  •  2
  •   Schwern    6 年前

    虽然Swift有头文件,但它们不是你要找的。

    如果您只想将代码分解成可重用的单元,那么swift是一种面向对象的语言,您应该 organize your code into classes 以及 protocols (which I believe everyone else calls interfaces) .

    至于将代码组织成多个文件,请使用 Swift Package Manager . 文档中有许多简单的示例,如 example-package-playingcard .