没有app委托方法的应用程序操作

问题描述 投票:1回答:2

如果我删除applicationWillResignActiveapplicationDidEnterBackground这样的默认应用委托方法,你能帮助我理解为什么app仍然可以工作吗?

ios cocoa-touch uiapplicationdelegate
2个回答
2
投票

在某种程度上,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。如果您的应用确实需要做某事,那么您将实现该功能。


0
投票

什么是代表?

from documentation:

单例UIApplication对象调用的一组方法,用于响应应用生命周期中的重要事件。

为什么你的应用有效?

applicationWillResignActiveapplicationDidEnterBackground是可选的委托方法。

他们的唯一目的是通知您的应用程序是否发生了这些事件。如果您删除这些方法,则当您的应用进入后台或暂停时,您的应用不会收到通知。由于这些方法只提供通知,因此它与您的成功运行无关。

如果应用程序未处于活动状态时,您的应用只需要处理后台任务。

© www.soinside.com 2019 - 2024. All rights reserved.