AppDelegate 在哪里设置为应用程序的委托?
Where the AppDelegate get set as a delegate for the application?
环境,Swift 5.3 和 Xcode 12
通常我们 someObject.delegate = self
将当前 class 设置为某些 class 实例的委托。但是,在 AppDelegate
内部没有这样的赋值使其成为应用程序的委托。
import Cocoa
@main
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ aNotification: Notification) {}
func applicationWillTerminate(_ aNotification: Notification) {}
}
那么应用程序的 delegate
属性 在哪里设置?
@UIApplicationMain
属性表示这个class是应用委托,https://docs.swift.org/swift-book/ReferenceManual/Attributes.html#ID589.
与调用UIApplicationMain(:,:,:,:)
相同。如果未使用该属性,请提供一个 main.swift
文件,其中包含调用 UIApplicationMain(:,:,:,:)
(也适用于 NSApplication
)的顶层代码。
加@main
好像和@UIApplicationMain
一样的效果。将 @main
替换为 @UIApplicationMain
,应用程序运行正常,经过测试。
环境,Swift 5.3 和 Xcode 12
通常我们 someObject.delegate = self
将当前 class 设置为某些 class 实例的委托。但是,在 AppDelegate
内部没有这样的赋值使其成为应用程序的委托。
import Cocoa
@main
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ aNotification: Notification) {}
func applicationWillTerminate(_ aNotification: Notification) {}
}
那么应用程序的 delegate
属性 在哪里设置?
@UIApplicationMain
属性表示这个class是应用委托,https://docs.swift.org/swift-book/ReferenceManual/Attributes.html#ID589.
与调用UIApplicationMain(:,:,:,:)
相同。如果未使用该属性,请提供一个 main.swift
文件,其中包含调用 UIApplicationMain(:,:,:,:)
(也适用于 NSApplication
)的顶层代码。
加@main
好像和@UIApplicationMain
一样的效果。将 @main
替换为 @UIApplicationMain
,应用程序运行正常,经过测试。