2016-09-20 2 views
1

Я работаю правильно в swift 2.2, но когда я конвертирую в swift 3.0, то получите ошибку.UIApplicationLaunch by remoteNotification swift 3 не работает

//If app open by notification 
if launchOptions != nil 
{ 
    NSLog("launch------ %@", launchOptions!) 

    let userInfo = launchOptions!(UIApplicationLaunchOptionsKey.remoteNotification) as NSDictionary 
    if userInfo != nil 
    { 
     self.application(UIApplication.shared, didReceiveRemoteNotification: (userInfo)! as! [NSObject : AnyObject]) 
    } 
} 

Ошибка как

Невозможно вызвать значение типа без функции "[NSObject: Любой]

Спасибо заранее.

ответ

1

Наконец я установил: -

if launchOptions != nil 
{ 
    NSLog("launch------ %@", launchOptions!) 
    let userInfo = launchOptions![UIApplicationLaunchOptionsKey.remoteNotification] as! NSDictionary 
    if userInfo != nil 
    { 
     self.application(UIApplication.shared, didReceiveRemoteNotification:(userInfo) as! [AnyHashable : Any] as! [String : AnyObject]) 
    } 
} 
+0

Я получаю сообщение об ошибке, когда я использую это , какую версию Xcode вы используете? Я использую 8 бета-3 и, кажется, даю ошибку: Неоднозначная ссылка на индекс участника ' – TheeBen

+0

Можете ли вы, пожалуйста, показать мне код здесь. –

1

Мое решение для Swift 3. Я должен использовать некоторый оттенок, чтобы получить значение:

let key : AnyObject = UIApplicationLaunchOptionsKey.remoteNotification as AnyObject 
    if let remoteNotification = launchOptions![key as! NSObject] as? [NSObject : AnyObject]{ 
     self.application(application: application, didReceiveRemoteNotification: remoteNotification) 
    } 
Смежные вопросы