Подтвердить что ты не робот

IOS Google Вход в систему

Я пытаюсь внедрить кнопку входа в google, когда добавляю следующие строки в файл AppDelegate.swift, я получаю эту ошибку:

Невозможно подстроить значение типа '[String: AnyObject]' с индексом типа 'String'

Любые идеи, что не так с этим кодом? Кстати, этот код просто скопирован и вставлен с страницы google по адресу: https://developers.google.com/identity/sign-in/ios/sign-in?configured&ver=swift

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

iOS Google Sign In error

Спасибо

4b9b3361

Ответ 1

handleURL ищет аргументы типа "String" для sourceApplication и аннотации, но опции предоставляют "AnyObject". Приведение этих значений слова к "String" должно сделать это.

Попробуйте следующее:

Обновление: Swift 3

func application(_ application: UIApplication,
                 open url: URL, options: [UIApplicationOpenURLOptionsKey: Any]) -> Bool
   return GIDSignIn.sharedInstance().handle(url,
       sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
       annotation: options[UIApplicationOpenURLOptionsKey.annotation] as? String)
}

Swift 2

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

Это заняло и меня навсегда. Надеюсь, что это поможет!

Ответ 2

Xcode 8 Swift 3

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
  return GIDSignIn.sharedInstance().handle(
  url,
  sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String,
  annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}