ios - उद्देश्य-सी विधि वैकल्पिक आवश्यकता विधि स्विफ्ट के साथ संघर्ष करती है




swift xcode6.3 (4)

launchOptions बदल दिया गया है; "लॉन्चर: एनएसडॉर?" "लॉन्च ओन्यूसेस: [एनएसओबजेक्ट: एनीऑब्जेक्ट]?"

उम्मीद है की यह मदद करेगा!

Xcode अपडेट के बाद, कंपाइलर ने काम कोड पर एक त्रुटि फेंकना शुरू किया (दोनों फ़ंक्शन AppDelegate.swift में हैं)

func application(application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool 
{
    FBLoginView.self
    FBProfilePictureView.self
    return true
}

त्रुटि के साथ:

: 'UIApplicationDelegate'

और दूसरा

func application(application: UIApplication,        
                            openURL url: NSURL,
                            sourceApplication: NSString?,
                            annotation: AnyObject) -> Bool {
    var wasHandled:Bool = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication as! String)
    return wasHandled
}

त्रुटि के साथ

: ( 'OpenURL: sourceApplication: एनोटेशन :)' प्रोटोकॉल में 'UIApplicationDelegate'

मैं समझता हूं कि सबसे अधिक संभावना है कि मैं आपको किसी भी तरह इन दोनों कार्यों को एक साथ करने के लिए एक साथ रहना चाहूंगा। मुझे समझ में नहीं आता है कि 6.3 में काम करने के बावजूद इस कोड ने अचानक 6.3 में काम करना क्यों बंद कर दिया।


आपको यह भी सुनिश्चित करना चाहिए कि आप सही प्रकार का उपयोग कर रहे हैं। NSString के बजाय स्ट्रिंग का उपयोग करें।


मुझे यकीन नहीं है कि संकलक त्रुटि क्यों फेंक रहा है, हालांकि मुझे उन समान तरीकों के डिफ़ॉल्ट स्विफ्ट संस्करण में अंतर दिखाई देता है। शायद आप समारोह की घोषणा को उन लोगों के साथ बदल सकते हैं जो एक सामान्य स्विफ्ट परियोजना के साथ बनाए गए हैं:

1

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

2

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool

मैं यह देखने के लिए कि क्या यह अब संकलित होता है, उपरोक्त के साथ आपके विधि घोषणाओं को प्रतिस्थापित करने की अनुशंसा करता हूं।

EDIT 1 (9/21/2015): मैंने पुष्टि की है कि ये अब Xcode 7 के सार्वजनिक रिलीज के लिए अद्यतित हैं। उन्होंने घोषणा # 2 में वैकल्पिक ( annotation: AnyObject? ) और इसे बनाया ( annotation: AnyObject )।


XFode 6.3 में didFinishLaunchingWithOptions फ़ंक्शन के लॉन्चर ऑफ़िस पैरामीटर का प्रकार बदला गया था:

"प्रक्षेपण: एनएसडॉर?" बन गया है "लॉन्चओसेज: [एनएसओबजेक्ट: एनीऑब्जेक्ट]?"

बस अपने फंक्शन हेडर को निम्न से मिलान करने के लिए बदलें:

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






xcode6.3