¿Puede un solo file .swift en Xcode contener el código fuente completo de una aplicación de iOS?

En otras palabras, ¿puede el código Swift en Xcode comportarse como lo hace en un file de Playground?

Ciertamente puede

Este file especial se llama main.swift y se comporta como un file Playground.

Desde Archivos e initialization , una publicación en Apple Swift Blog:

… El file "main.swift" puede contener código de nivel superior y también se aplican las reglas dependientes de la order. En efecto, la primera línea de código que se ejecuta en "main.swift" se define implícitamente como el punto de input principal para el progtwig. Esto permite que el progtwig Swift mínimo sea una sola línea, siempre que esa línea esté en "main.swift".

Sin embargo, en iOS, @UIApplicationMain es el punto de input de la aplicación. Hace que todo el inicio funcione automáticamente para usted. Pero en main.swift de una aplicación de iOS, tienes que inicializarlo manualmente.

En Swift 3.1, su file main.swift debería comenzar así:

 // 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 

UIApplication Initialization inicial proporcionada por Matt Neuburg .

Sí, podría hacer esto de la misma manera que podría escribir todo su código en una línea de código si realmente deseaba con punto y coma terminar sus líneas. Aunque, definitivamente no se recomienda, ya que puede causar mucha confusión y debe molestarse en jugar con los files organizados originales.

Sí, sí, excepto AppDelegate. No se recomienda hacer eso, pero en un file puede tener varias classs.