我是不是需要来自 ApplicationDelegate 函数的 UIApplication* 应用程序?

Posted

技术标签:

【中文标题】我是不是需要来自 ApplicationDelegate 函数的 UIApplication* 应用程序?【英文标题】:Will I ever need the UIApplication* application from the ApplicationDelegate functions?我是否需要来自 ApplicationDelegate 函数的 UIApplication* 应用程序? 【发布时间】:2015-12-05 17:41:42 【问题描述】:

任何应用委托中的应用程序参数何时不等于共享实例?

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
  
  UIApplication* sharedapp = [UIApplication sharedApplication];
  if(application == sharedapp)
    //things are as I expect
  else
    //some other situation I can't think of
  

【问题讨论】:

application 参数的想法是你不需要调用[UIApplication sharedApplication] 【参考方案1】:

不,不会有那样的情况。

来自文档:

每个应用都只有一个 UIApplication 实例。应用启动时,系统调用 UIApplicationMain 函数;在它的其他任务中,这个函数创建了一个单例 UIApplication 对象。此后,您可以通过调用 sharedApplication 类方法来访问该对象。

【讨论】:

【参考方案2】:

[UIApplication sharedApplication] 的调用将始终返回指向您应用的共享应用程序对象的指针。这就是该方法的用途。

您要比较的变量sharedApp 是什么?大概这是您定义并设置为包含指向您的应用程序对象的指针的实例变量,并与[UIApplication sharedApplication] 进行相同的调用?

【讨论】:

是的,完全正确。这只是我的问题的一个例证。我正在摸不着头脑,为什么如果委托通过 [UIApplication sharedApplication] 可用,它会传递应用程序......我想它只是为了方便起见,因为可能一种常见的模式是更新徽章?

以上是关于我是不是需要来自 ApplicationDelegate 函数的 UIApplication* 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要在 C# 中使用来自非托管 C++ dll 的原始数据类型执行 MarshalAs?

我是不是需要将 dist 文件夹提交到 git 才能使用来自 git 的 pip 安装包?

来自 IP 127.0.0.1 的黑客尝试 - 是不是有需要注意的漏洞?

Python set([]) 如何检查两个对象是不是相等?一个对象需要定义哪些方法来自定义它?

.NET Core 授权模型:需要来自请求的上下文的策略

如何知道请求是不是来自缓存或不使用 AFNetworking