2016-09-26 208 views
0

我想在我的iOS應用程序中實現谷歌身份驗證。谷歌登錄iOS的bug

我在我的appDelegate和我想要實現這個功能

func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool 
{ 
    return GIDSignIn.sharedInstance().handleURL(url as URL!, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey]) 
} 

我的這部分功能得到一個錯誤:

options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String 

的錯誤是

ambiguous reference to member 'subscript' 

林不知道發生了什麼事。有人能幫我嗎?

回答

0

嘗試改變annotation: options[UIApplicationOpenURLOptionsAnnotationKey]annotation: options[UIApplicationOpenURLOptionsAnnotationKey] as? String

+0

這並沒有解決它。你認爲這個問題是什麼? –

2

試試你的代碼,這:)

private func application(application: UIApplication, openURL url: URL, options: [String: AnyObject]) -> Bool { 
     return GIDSignIn.sharedInstance().handle(url as URL!, 
                sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication.rawValue] as? String, 
                annotation: options[UIApplicationOpenURLOptionsKey.annotation.rawValue]) 
    } 
0

這裏,r夢幻般的答案:

func application(_ app: UIApplication, 
       open url: URL, 
       options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 

     return GIDSignIn.sharedInstance().handle(url as URL!, 
            sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, 
            annotation: options[UIApplicationOpenURLOptionsKey.annotation]) 
} 

參考從

Trouble handling Google sign in Swift 3