2016-03-03 51 views
0

我正在接收推送通知的iOS应用程序。我在AppDelegate中有以下代码当应用程序关闭时打印NSlog输出

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

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

} 

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

当我关闭应用程序,即从iOS中打开的应用程序中删除它,Xcode中的调试器会话停止,并且即使在应用程序关闭时在我的iPhone上收到关于应用程序的通知后我也看不到NSlog即使关闭,通知也可以应用)

如何在关闭状态下打开应用程序时打印日志?

+0

[如何关闭应用程序后的调试(HTTP的可能重复: //stackoverflow.com/questions/22782873/how-debug-after-closing-application) –

回答

0

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

首先,如果/在应用程序完全终止之前,您将无法看到任何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! 
} 
+0

感谢您的回复。我能否通过在“didFinishLaunchingWithOptions”方法中点击的通知获取数据(((NSDictionary *)userInfo)。 – Raghav

+0

@raj是 - 更新了答案。 – JaredH

+0

当应用程序关闭。 Xcode调试已关闭。通知来了,我点击它,然后没有记录“ns日志”。即使调试是由Xcode关闭的,你能帮我记录吗? – Raghav

相关问题