访问UILocalNotification userinfo时出现Swift错误

时间:2014-10-12 13:38:44

标签: ios swift uilocalnotification optional

我正在尝试检索当前安排的UILocalNotifications。当我尝试从通知中隐式解包userInfo时出现错误。错误发生在

          if let info = notification.userInfo

错误显示“无法找到接受所提供参数的'userInfo'的重载”

我也尝试用

进行可选链接
if let info = notification.userInfo?["Id"]

我收到一条错误,即userInfo不接受下标。

当我在userinfo with

之后使用显式解包时,它有效
if let info = notification.userInfo!

但我想避免这样做。任何帮助都会很棒。完整的方法如下。

func test()
{

  let application = UIApplication.sharedApplication()
  let scheduledNotifications = application.scheduledLocalNotifications

  for notification in scheduledNotifications
  {
    println( "found it" ) 

      if let info = notification.userInfo
      {
        println( "in")
      } else {
        // no userInfo dictionary present
        println( "else")
      }
  }
}

1 个答案:

答案 0 :(得分:1)

application.scheduledLocalNotifiactions提供了一个AnyObject数组,因此您缺少一个类型转换为UILocalNotification

 let scheduledNotifications = application.scheduledLocalNotifications as [UILocalNotification]