2016-08-16 45 views
7

Son zamanlarda Xcode 8 beta 6 (8S201h), bu bir sorun haline geldi. BaşkaUIApplicationLaunchOptionsShortcutItemKey Swift 3'te yok mu?

enter image description here

Herkes bu sorunu yaşamaya: Burada

UIApplicationLaunchOptionsShortcutItemKey 

hatadır?

var performShortcutDelegate = true 
if let shortcutItem = launchOptions[UIApplicationLaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem { 
    print("ok") 
    self.shortcutItem = shortcutItem 
    performShortcutDelegate = false 
} 
return performShortcutDelegate 
+0

'kullanmayı deneyin guard': http://stackoverflow.com/questions/33689933/ambiguous-reference-to-member -subscript-on-dictionary –

+0

no luck :(aynı hata –

+0

Yani hala üye üye hatası 'belirsiz referans alıyorsunuz? Kodunuz gösterildiği gibi doğru görünüyor, bu yüzden kapatma fonksiyonu ile ilgili bir şey olabilir. aynı zamanda kısayol kodunuzun etrafında '# # mevcut (iOS 9.0, *) {} bloğunu da eklemeniz gerekir. Daha fazla bilgi/bağlam yararlı olabilir. :) –

cevap

5

sabiti (documentation bakınız) değişmiştir. İçerdiği değerleri kullanmadan önce launchOptions'u da açmanız gerekir.

Muhafaza işlevi bağlam için eklenmiştir.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    if let launchOptions = launchOptions { 
     if #available(iOS 9.0, *) { 
      if let shortcutItem = launchOptions[UIApplicationLaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem { 
       print("Shortcut: \(shortcutItem)") 
      } 
     } 
    } 
    return true 
} 
+1

ile çalışmıyor. Bu, ['application (_: willFinishLaunchingWithOptions:)'] durumundaysa (https://developer.apple.com/reference/uikit/uiapplicationdelegate/1623032-application) "launchOptions" sözlüğünün, "UIApplicationLaunchOptionsKey" anahtar türüne sahip olduğu zaten biliniyor. Yani sadece 'launchOptions [.shortcutItem]' kullanabilirsiniz. – rickster

+1

Hayır, hala aynı hatayı alıyorum. –

+0

Sorunuzu, içerdiği kodu ve işlevi içerecek şekilde günceller misiniz? (İdeal olarak, lütfen ekran görüntüsü olarak değil, satır içi kod olarak yapıştırın.) –

1

launchOptions Sözlük türü [: AnyObject UIApplicationLaunchOptionsKey] olarak işlev parametreleri değişti.

private func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: AnyObject]?) -> Bool { 

    ... 

} 
0

bu .. ben Xcode8 kullandığınız için yaptığı çalışmalar,

swift3 deneyin
//Check for ShortCutItem 
    if #available(iOS 9.0, *) { 
     if let shortcutItem = launchOptions?[UIApplicationLaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem { 
     } 
    }