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

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

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

【问题讨论】:

    标签: ios objective-c uitableview didselectrowatindexpath nsindexpath


    【解决方案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]; 
      

      【讨论】:

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