즉, Xcode의 Swift 코드가 놀이터 파일에서와 같이 작동 할 수 있습니까?Xcode의 단일 .swift 파일에 iOS 앱의 전체 소스 코드가 포함될 수 있습니까?
6
A
답변
7
확실히 할 수 있습니다.
이 특수 파일의 이름은 main.swift
이며 놀이터 파일과 동일하게 작동합니다. Files and Initialization에서
, 애플 스위프트 블로그에 게시물 :
합니다 ... "main.swift"파일은 최상위 코드를 포함 할 수 있으며, 순서에 의존하는 규칙도 적용됩니다. 실제로, "main.swift"에서 실행될 코드 의 첫 번째 줄은 프로그램의 기본 진입 점 으로 암시 적으로 정의됩니다. 이렇게하면 최소한의 Swift 프로그램이 라인이 될 수 있습니다 (해당 라인이 "main.swift"에있는 한).
그러나 iOS에서는 @UIApplicationMain
이 애플리케이션 진입 점입니다. 전체 시동 장치가 자동으로 작동합니다. 하지만 iOS 앱인 main.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
예, AppDelegate를 제외하고 않습니다. 그렇게하는 것은 좋지 않지만 한 파일에서 여러 클래스를 가질 수 있습니다.
2
예, 세미콜론으로 줄을 끝내고 싶다면 코드 한 줄에 모든 코드를 쓸 수있는 것처럼 할 수 있습니다. 이것은 많은 혼란을 야기 할 수 있기 때문에 권장되지는 않습니다. 원래 구성된 파일을 망칠 필요가 있습니다.
며칠 전에 요청했지만 지금은 찾을 수 없습니다. 너 해봤 니? 왜 이것을하고 싶습니까? 당신의 질문/문제는 무엇입니까? – rmaddy