Ошибка снижения в Xcode 7

В xcode 6 этот код работал нормально, но в Xcode 7GM я получаю сообщение об ошибке:

Даункаут из '[UILocalNotification]? '[UILocalNotification]' только разворачивает опциональные файлы; Вы хотели использовать "!"?

Ошибка возникает для строки, где я поставил две звездочки. В Xcode также есть маленький красный треугольник под a из as! часть.

func removeItem(item: TodoItem) {
    **for notification in (UIApplication.sharedApplication().scheduledLocalNotifications as! [UILocalNotification]) { // loop through notifications...
        if (notification.userInfo!["UUID"] as! String == item.UUID) { // ...and cancel the notification that corresponds to this TodoItem instance (matched by UUID)
            UIApplication.sharedApplication().cancelLocalNotification(notification) // there should be a maximum of one match on UUID
            break
        }
    }

1 ответ

Решение

В Xcode 6 scheduledLocalNotifications объявлен как [AnyObject]! (требуется снижение).
В Xcode 7 scheduledLocalNotifications объявлен как [UILocalNotification]? (должен быть только развернут)

Я рекомендую использовать дополнительные привязки

func removeItem(item: TodoItem) {
  if let scheduledLocalNotifications = UIApplication.sharedApplication().scheduledLocalNotifications {
   for notification in scheduledLocalNotifications { // loop through notifications...
    if (notification.userInfo!["UUID"] as! String == item.UUID) { // ...and cancel the notification that corresponds to this TodoItem instance (matched by UUID)
        UIApplication.sharedApplication().cancelLocalNotification(notification) // there should be a maximum of one match on UUID
        break
    }
  }
}
Другие вопросы по тегам