참고 이전 구문을 찾고있는 경우 2019 년 6 월 XCode 10.1 및 Swift 5에 대한 구문이 업데이트되었습니다 ( 여기 에서 matt의 답변 && Tung Fam의 답변에 대한 크레딧 ). 편집 섹션을 참조하십시오.
네, 해결책을 찾았습니다
먼저 AppDelegate.swift 파일의 맨 위에 다음 줄이 있습니다.
@UIApplicationMain
이 줄은 범위 밖에 있기 때문에 (파일 수준에 있음) 즉시 실행되며 컴파일러가 표준 주 함수로 변환한다고 가정합니다.
그래서 저는 새로운 Swift-Only 애플리케이션에서 시작하여 이렇게했습니다.
- 주석 처리
@UIApplicationMain
- 다음과 같은 main.swift 파일을 추가했습니다 (FLApplication은 내 하위 클래스입니다).
중요 파일 이름은 main.swift로 지정해야합니다. 다른 파일에서는 최상위 문이 지원되지 않기 때문입니다! 다른 파일 내에 UIApplicationMain () 호출을 추가 할 수 없습니다. 그렇지 않으면 다음 오류가 발생합니다.
최상위 수준에서는 식을 사용할 수 없습니다.
이것은 main.swift 파일입니다.
UIApplicationMain(
CommandLine.argc, CommandLine.unsafeArgv,
NSStringFromClass(FLApplication.self), NSStringFromClass(AppDelegate.self)
)
그런 다음 다음 코드를 사용하여 UIApplication 하위 클래스 인 FLApplication.swift에 대한 신속한 파일을 만듭니다.
import UIKit
import Foundation
class FLApplication: UIApplication {
override func sendEvent(_ event: UIEvent) {
super.sendEvent(event)
print("send event")
}
}
이제 UIApplication이 올바르게 서브 클래 싱되고 로그에 "send event"메시지가 표시됩니다.
OLD EDITS
참고로, 이것은 버전 1에서 버전 3으로 많이 변경 되었으므로 여기에 모든 이전 편집을 남겨 둡니다.
편집-2015 년 3 월
Hu Junfeng이 주석을 달았 듯이, 이제 UIApplicationMain
main.swift 파일 에 대한 설명은 The Swift Language Reference : Link 의 Attributes 섹션에 설명되어 있습니다.
Thomas Verbeek의 설명대로 XCode 6.3 베타에서 C_ARGC 및 C_ARGV가 각각 Process.argc 및 Process.unsafeArgv로 이름이 변경되었음을 알 수 있습니다. main.swift 파일의 UIApplicationMain 호출은 다음으로 업데이트해야합니다.
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(FLApplication), NSStringFromClass(AppDelegate))
XCode 8 이전 구문은 다음과 같습니다.
import Foundation
import UIKit
UIApplicationMain(C_ARGC, C_ARGV, NSStringFromClass(FLApplication), NSStringFromClass(AppDelegate))
수정-2016 년 12 월
베타 6 이전의 Xcode 8 솔루션
import Foundation
import UIKit
UIApplicationMain(
CommandLine.argc,
UnsafeMutableRawPointer(CommandLine.unsafeArgv)
.bindMemory(
to: UnsafeMutablePointer<Int8>.self,
capacity: Int(CommandLine.argc)),
NSStringFromClass(FLApplication.self),
NSStringFromClass(AppDelegate.self)
)
UIApplicationMain()
아래NSPrincipalClass
에 클래스 이름을 추가하는 것보다 매개 변수 를 변경하는 것이 선호되는 이유는 무엇 입니까?