【问题标题】:Print NSlog output when app is closed应用关闭时打印 NSlog 输出
【发布时间】:2016-03-03 15:26:45
【问题描述】:

我有一个接收推送通知的 iOS 应用程序。我在 AppDelegate 中有以下代码

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

    if ( application.applicationState == UIApplicationStateActive )
    {
       // app was already in the foreground
    }
    else
    {
          NSLog(@"Received push notification");
    }

}

我正在使用我的 iPhone 在 Xcode 中运行该应用程序。当应用程序在后台时,我可以在通知到来时看到 NSLog。

当我关闭应用程序时,即从 iOS 中打开的应用程序中删除它时,Xcode 中的调试器会话停止,之后我看不到 NSlog,即使在应用程序关闭时我的 iPhone 上收到应用程序的通知(推送通知)关了也能来app)

应用从关闭状态打开时如何打印日志?

【问题讨论】:

标签: ios objective-c iphone xcode


【解决方案1】:

听起来你在这里描述了一些不同的东西。

首先,如果/在应用程序完全终止后,您将看不到任何NSLog 通知消息,直到应用程序通过某种机制启动。

如果您想在应用程序从终止状态打开时打印日志,您可以执行以下操作:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // ...
    NSLog(@"%s", __PRETTY_FUNCTION__); // print the function name

    // Process remote notifications
    NSDictionary *remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    if (remoteNotification) {
      [self processNotification:remoteNotification];
    }
}

- (void)processNotification:(NSDictionary *)payload {
     NSString *someString = [payload objectForKey:@"someStringKey"];

     // do something!
}

【讨论】:

  • 感谢您的回复。我能否从“didFinishLaunchingWithOptions”方法中单击的通知中获取数据((NSDictionary *)userInfo)。
  • 应用关闭时。 Xcode 调试已关闭。通知来了,我点击它,之后没有记录“ns log”。即使 Xcode 关闭了调试,你能帮我记录吗?
猜你喜欢
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
相关资源
最近更新 更多