2015-04-13 8 views
5

को प्रोटोकॉल 'UIApplicationDelegate' XCode अपडेट के बाद के लिए आवश्यक मैं अपने AppDelegate में इस कोड var window = UIWindow() है अलग optionality है। मेरा ऐप ठीक काम कर रहा है। बाद मैं 6.3 करने के लिए अपने XCode अद्यतन, मैं अब सिम्युलेटर में अपने iOS एप्लिकेशन चला सकते हैं आप अपने कोड के वर्ग परिभाषा शब्द UIApplicationDelegate पर cmd-क्लिक करें, तो के रूप में मैं त्रुटिप्रकार की तुलना में 6.3

type of 'window' has different optionality than required by protocol 'uiapplicationdelegate'

+0

बनाने के लिए एक आलसी वर उपयोग कर सकते हैं क्योंकि अब इसकी: var खिड़की: UIWindow? लेकिन आप संपादित के साथ नवीनतम स्विफ्ट वाक्य रचना में बदलने चाहिए -> Convert -> नवीनतम करने के लिए स्विफ्ट सिंटेक्स त्रुटियों के इन प्रकार से बचने के लिए। –

+0

आपके द्वारा टाइप किया गया कोड डिफ़ॉल्ट था जब मैंने स्विफ्ट में ऐप बनाया था। मैं ऊपर कोड के लिए बदल दिया है क्योंकि मैं एक त्रुटि 'गंभीर त्रुटि हो रही है: अप्रत्याशित रूप से नहीं के बराबर पाया, जबकि एक वैकल्पिक मान' और इस्तेमाल किया' खिड़की unwrapping! (उदाहरण के लिए खिड़की .frame = ..' –

+0

कहाँ आपको लगता है कि कोड का इस्तेमाल किया था, उस खिड़की .frame .... AppDelegate में –

उत्तर

0

हो रही है, तो आप करेंगे प्रोटोकॉल परिभाषा खोलें। मुझे लगता है कि आप इस कॉल का उपयोग कर रहे हैं:

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) {...} 

और कहा कि स्विफ्ट 1.2 में परिवर्तित हो गई हों, लेकिन व्यापक रूप से प्रलेखित किया जाना प्रतीत नहीं होता। यदि आप के बजाय लिखा

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow) {...} 

तो आप आप रिपोर्ट त्रुटि संदेश मिलेगा। मैं ने वही समस्या में भाग -

यह विशेष रूप से समस्या स्वचालित प्रोग्राम डैनियल नागी का उल्लेख द्वारा तय नहीं है।

यदि आपने उस वैकल्पिक फ़ंक्शन को प्रदान किया है, तो को UIWindow के बाद फ़ंक्शन परिभाषा में जोड़ें।

1

आपके सभी योगदानों के लिए धन्यवाद। मैं वास्तव में इस कारण के बारे में निश्चित नहीं हूं कि अचानक मेरा कोड window घोषणा अब काम नहीं कर रही है। इसे ठीक करने के लिए, मैं यहाँ से जवाब का प्रयोग किया: https://stackoverflow.com/a/25482567/2445717

मैं डिफ़ॉल्ट के लिए विंडो के declarion वापस लौटें: var window: UIWindow?

और फिर didFinishLaunchingWithOptions

window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    if let window = window { 
     window.backgroundColor = UIColor.whiteColor() 
     window.rootViewController = ViewController() 
     window.makeKeyAndVisible() 
    } 
0

के लिए नीचे दिए गए कोड का इस्तेमाल किया स्विफ्ट 2 में, AppDelegate है:

var window: UIWindow? 
बजाय

var window: UIWindow 

क्योंकि यह शून्य

होना चाहिए आप कोड बस

lazy var window: UIWindow? = { 
    let win = UIWindow(frame: UIScreen.mainScreen().bounds) 
    win.backgroundColor = UIColor.whiteColor() 
    win.rootViewController = UINavigationController(rootViewController: self.authViewController) 
    return win 
}() 
संबंधित मुद्दे