2014-10-12 3 views
0

Я пытаюсь получить текущие запланированные идентификаторы UILocalNotifications. Я получаю сообщение об ошибке, когда пытаюсь неявно разворачивать userInfo из уведомления. Ошибка происходит на линииБыстрая ошибка при доступе к UILocalNotification userinfo

  if let info = notification.userInfo 

Ошибка говорит: «Не удалось найти перегрузку„USERINFO“, который принимает переданные аргументы»

Я также пытался делать дополнительный цепочки с

if let info = notification.userInfo?["Id"] 

И я получил сообщение об ошибке, что userInfo не принимает индексы.

Он работал, когда я использовал явные развёртки после UserInfo с

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

application.scheduledLocalNotifiactions дает массив AnyObject так что вы пропускаете приведение типа к UILocalNotification

let scheduledNotifications = application.scheduledLocalNotifications as [UILocalNotification] 
+0

Я не знаю, если Свифт был обновлен на этом, но 'scheduledLocalNotifications' теперь возвращает' [UILocalNotification ]? ', поэтому литье типов больше не нужно. – jowie

Смежные вопросы