Xcode中的单个.swift文件是否可以包含iOS应用程序的完整源代码?

时间:2017-04-11 17:45:12

标签: ios swift xcode swift-playground

换句话说,Xcode中的Swift代码可以像在Playground文件中那样运行吗?

3 个答案:

答案 0 :(得分:7)

当然可以。

此特殊文件名为 main.swift ,其行为与Playground文件类似。

来自Files and Initialization,Apple Swift博客上的帖子:

  

...“main.swift”文件可以包含顶级代码,以及   依赖于订单的规则也适用。实际上,第一行代码   在“main.swift”中运行被隐式定义为主入口点   对于该计划。这允许最小的Swift程序是单个的   line - 只要该行在“main.swift”中。

但是,在iOS上,@UIApplicationMain是应用程序入口点。它会自动为您完成整个启动工作。但是在iOS应用的main.swift中,您必须手动初始化它。

在Swift 3.1中,您的main.swift文件应该像这样开始:

// main.swift

import Foundation
import UIKit

class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
}

UIApplicationMain(
    CommandLine.argc,
    UnsafeMutableRawPointer(CommandLine.unsafeArgv)
        .bindMemory(
            to: UnsafeMutablePointer<Int8>.self,
            capacity: Int(CommandLine.argc)),
    nil,
    NSStringFromClass(AppDelegate.self)
)

// Your code begins here
UIApplicationMain initialization提供了

Matt Neuburg

答案 1 :(得分:2)

是的,您可以这样做,就像您可以在一行代码上编写所有代码一样,如果您真的想使用分号来结束行。虽然,这绝对不推荐,因为它可能会导致很多混乱,你不得不打扰原始有组织的文件。

答案 2 :(得分:1)

是的,但AppDelegate除外。不建议这样做,但在一个文件中,您可以有多个类。