Google Sign-In for iOS: error “Cannot subscript a value of type '[String : AnyObject]' with an index of type 'String'”

后端 未结 3 1367
猫巷女王i
猫巷女王i 2021-01-05 23:14

\'Cannot subscript a value of type [String, AnyObject] with an index of type String\' for options[UIApplicationOpenURLOptionsSourceApplicationKey].

3条回答
  •  盖世英雄少女心
    2021-01-06 00:13

    function before iOS 9.0

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

    or with the method you are using, you can using it like (Prior to iOS 9.0 and above)

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

    or to support both in iOS 9 and above and in iOS 8.0 to iOS 9.0

    @available(iOS 9.0, *)
    func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any])
     -> Bool {
    return GIDSignIn.sharedInstance().handleURL(url,
                            sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
                            annotation: [:])
    }
    
    //for iOS 8, check availability   
    @available(iOS, introduced=8.0, deprecated=9.0)
    func application(application: UIApplication,openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
        return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication!, annotation: annotation)
    }
    

提交回复
热议问题