没有应用程序委托方法的应用程序操作
App operation without app delegate methods
你能帮我理解为什么如果我删除默认的应用程序委托方法(例如 applicationWillResignActive
和 applicationDidEnterBackground
,应用程序仍然可以工作吗?
部分地,UIApplicationDelegate
协议的声明如下所示:
public protocol UIApplicationDelegate : NSObjectProtocol {
optional public func applicationDidFinishLaunching(_ application: UIApplication)
optional public func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
optional public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
optional public func applicationDidBecomeActive(_ application: UIApplication)
optional public func applicationWillResignActive(_ application: UIApplication)
...
请注意,函数声明为可选。这意味着符合协议的代码不必实现这些功能。
如果您的应用在进入后台时不需要做任何特殊的事情,那么您就不需要实现applicationDidEnterBackground
。如果您的应用程序确实需要执行某些操作,那么您将实现该功能。
什么是委托?
A set of methods that are called by the singleton UIApplication object
in response to important events in the lifetime of your app.
为什么你的应用能运行?
applicationWillResignActive
& applicationDidEnterBackground
是可选的委托方法。
它们的唯一目的是在这些事件发生时通知您的应用。如果您删除这些方法,您的应用程序将不会在您的应用程序进入后台或暂停时收到通知。由于这些方法的唯一工作是提供通知,因此它与您的 运行 成功无关。
如果您的应用程序需要在应用程序未处于活动状态时处理后台任务,则仅需要此方法。
你能帮我理解为什么如果我删除默认的应用程序委托方法(例如 applicationWillResignActive
和 applicationDidEnterBackground
,应用程序仍然可以工作吗?
部分地,UIApplicationDelegate
协议的声明如下所示:
public protocol UIApplicationDelegate : NSObjectProtocol {
optional public func applicationDidFinishLaunching(_ application: UIApplication)
optional public func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
optional public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
optional public func applicationDidBecomeActive(_ application: UIApplication)
optional public func applicationWillResignActive(_ application: UIApplication)
...
请注意,函数声明为可选。这意味着符合协议的代码不必实现这些功能。
如果您的应用在进入后台时不需要做任何特殊的事情,那么您就不需要实现applicationDidEnterBackground
。如果您的应用程序确实需要执行某些操作,那么您将实现该功能。
什么是委托?
A set of methods that are called by the singleton UIApplication object in response to important events in the lifetime of your app.
为什么你的应用能运行?
applicationWillResignActive
& applicationDidEnterBackground
是可选的委托方法。
它们的唯一目的是在这些事件发生时通知您的应用。如果您删除这些方法,您的应用程序将不会在您的应用程序进入后台或暂停时收到通知。由于这些方法的唯一工作是提供通知,因此它与您的 运行 成功无关。
如果您的应用程序需要在应用程序未处于活动状态时处理后台任务,则仅需要此方法。