Ошибка снижения в 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
}
}
}