2015-04-11 5 views
1

Моей функции:Ошибки после обновления до Swift 1.2

func application(application: UIApplication, didReceiveRemoteNotification userInfo: NSDictionary) 

показывает эту ошибку:

Objective-C method 'application:didReceiveRemoteNotification:' provided by method 'application(:didReceiveRemoteNotification:)' conflicts with optional requirement method 'application(:didReceiveRemoteNotification:)' in protocol 'UIApplicationDelegate'

я увидел на другой пост, что он фиксирует, просто «переписывание» названия методов. Что это значит? Изменить имя? Удалить его и записать его еще раз?

+3

Если вы собираетесь рассказать о советах, приведенных в другом месте, вероятно, было бы неплохо упомянуть источник совета, чтобы пользователи, которые его понимали, могли видеть контекст. – nhgrif

ответ

3

Swift 1.2 далее удаляется от оснований Objective-C, переназначив некоторые методы класса из типа NSDictionary на родной тип Swift [NSObject: AnyObject].

Изменить метод ваш заголовок к этому:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject: AnyObject]) 

Вы можете исправить другие ошибки такого рода, используя Swift инструмент преобразования, который можно найти в меню Edit в разделе «Преобразование» (Edit -> Convert -> To Latest Swift Syntax...).

Я полагаю, что подразумевается под «переписывание» заголовок метода в вашем другом источнике удаляет строку и введя application(, затем выбрать опцию didReceiveRemoteNotification из всплывающего меню и позволяют автозаполнениям делать все остальное.

+0

Да! Оно работает! Спасибо за всю информацию. – Aerofan

+0

@Aerofan Нет проблем; Я рад, что смогу помочь. – AstroCB

4

Заменить NSDictionary на [NSObject : AnyObject].

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