2016-09-29 16 views
5

application:openURL:options: ऐप प्रतिनिधि की विधि के अस्पष्ट संदर्भ में साइन इन करें। विधि को handleURLGIDSignIn उदाहरण, विधि को कॉल करना चाहिए जो प्रमाणीकरण प्रक्रिया के अंत में आपके एप्लिकेशन को प्राप्त करने वाले यूआरएल को सही तरीके से संभाल लेगा।Google सदस्य 'सबस्क्रिप्ट'

सीधे फायरबेस गाइड डॉक्स से कॉपी किया गया लेकिन अभी भी त्रुटियां हैं।

func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool { 
    return GIDSignIn.sharedInstance().handleURL(url as URL!, sourceApplication: 
     options[UIApplicationOpenURLOptionsSourceApplicationKey] //Error is here 
     //Ambiguous reference to member 'subscript' error is shown. 

     as? String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey]) 
} 

उत्तर

25

आपके पास कुछ समस्याएं हैं। प्रतिनिधि विधि स्विफ्ट 3 में निम्नलिखित हस्ताक्षर होना चाहिए:

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

और पूरे विधि होगा:

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

मैं थ्रेड 1 मिलती है: आवेदन चल रहा है और गूगल साइन-इन बटन –

+0

क्लिक करने के बाद अनुप्रयोग प्रतिनिधि में सिग्नल SIGABRT त्रुटि '_' और' open' बाहरी पैरामीटर नाम हैं? 'विकल्प' का बाहरी पैरामीटर नाम क्यों नहीं है? – Honey

+1

@ हनी वे विधि के कॉलर्स द्वारा उपयोग किए जाने वाले तर्क लेबल हैं। '_' का अर्थ है कि पैरामीटर के लिए कोई नाम प्रदान नहीं किया गया है। और यदि तर्क में कोई अलग लेबल नहीं है (जैसे 'विकल्प'), तो आप पैरामीटर नाम को तर्क लेबल के रूप में उपयोग करते हैं। यह सब स्विफ्ट 3 के लिए ऐप्पल की "स्विफ्ट प्रोग्रामिंग लैंग्वेज" पुस्तक में शामिल है। – rmaddy

0

आप गूगल के साथ एक से अधिक URL योजनाओं का उपयोग कर रहे हैं, तो साइन इन, इस तरह इसका इस्तेमाल :

func application(application: UIApplication, 
       openURL url: NSURL, 
       options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 

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

} 
संबंधित मुद्दे