在目标C中退出应用程序时如何检索数据

Posted

技术标签:

【中文标题】在目标C中退出应用程序时如何检索数据【英文标题】:How to retrive data when app is quit in objective C 【发布时间】:2013-05-20 12:33:21 【问题描述】:

我有一个应用程序,当通知被触发时,当应用程序处于后台时,我会得到一个通知栏,当我点击该栏时,它会导航到通知集的表格视图。 当我从后台退出应用程序时,我收到通知,但是当点击栏时应用程序崩溃,因为它没有获取 tableview 的索引路径。

我在 AppDelegate 中的 didFinishLaunchingWithOptions 和 didReceiveLocalNotification 中调用此方法。这样当应用程序处于后台时,通过单击通知栏应用程序将导航到适当的表格视图。

【问题讨论】:

【参考方案1】:

请打印您的用户信息,看看里面有什么。这将是一本字典,可能它遗漏了某些内容或包含任何 nil 值。

【讨论】:

【参考方案2】:

UILocalNotification 有一个 userInfo 字典。在那里,您可以存储该通知的一些相关信息,在您的情况下为 indexPath

  NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:selectedSymptomIndex,@"selectedSymptomIndex",keyIndexNumber,@"keyIndexNumber", nil];
localNotification.userInfo = userInfo;  

在接收通知时(在 didReceiveLocalNotification 中),您可以检索 userInfo 字典,例如 notification.userInfo。从中您将获得 selectedSymptomIndex 和 keyIndexNumber。 现在可以构造 indexPath

NSIndexPath *selectedSymptIP = [NSIndexPath indexPathForRow:selectedSymptomIndex inSection:keyIndexNumber]; 

【讨论】:

检查这个以发送数据到通知***.com/questions/4312338/… 当您使用我建议的适当值安排通知时,您必须设置 userInfo。然后,您可以通过访问收到通知的 userInfo 将其取回 applicationDidReceiveLocalNotification ...从那里您将获得字典。.从 dict 中获取值以及您想要的任何内容 使用您在 scheduleNotification 中使用的相同用户信息,您可以为该 dict 提供更多值,无需创建另一个。 它们在同一个视图控制器中?只需将选定的 indexPath 传递给 scheduleNotification。或 [self.tableView indexPathForSelectedRow] 可能有效。请记住,您不能直接在 userInfo 中设置 indexPath.. 分别设置节号和行号 让我们continue this discussion in chat

以上是关于在目标C中退出应用程序时如何检索数据的主要内容,如果未能解决你的问题,请参考以下文章

目标 C:归档 NSDate 时遇到问题

如何从 Swift 类中检索目标 C 类中的 Userdefault?

从子进程中检索 PID 和退出状态

如何从目标 C 中的 NSDictionary 中检索字符串?

linux c开发: 在程序退出时进行处理

退出并加载我的应用程序时,如何将图像保存并读取到临时文件夹