【问题标题】: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]

标签: ios objective-c uiapplicationdelegate uiapplication


【解决方案1】:

不,不会有那样的情况。

来自文档:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 是的,完全正确。这只是我的问题的一个例证。我正在摸不着头脑,为什么如果委托通过 [UIApplication sharedApplication] 可用,它会传递应用程序......我想它只是为了方便起见,因为可能一种常见的模式是更新徽章?
    猜你喜欢
    • 2016-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多