NSInvalidUnarchiveOperationException: NSLayoutConstraint नाम की तात्कालिक श्रेणी नहीं बना सका


165

मैं इसके लिए बहुत नया हूं। मैंने iPhone प्रोजेक्ट "HelloWorld" के लिए ऐप्पल के ट्यूटोरियल स्टेप बाय स्टेप फॉलो किया। मैंने इसे iPhone 5.0 सिम्युलेटर में चलाया और यह दुर्घटनाग्रस्त हो गया:

2012-11-02 14: 46: 06.782 HelloWorld [9880: c07] * बिना किसी अपवाद के कारण समाप्त होने वाला ऐप 'NSInvalidUnarchiveOperationException', कारण: 'NSLayoutConstraint' के लिए तत्काल क्लास नहीं कर सकता है। * पहला थ्रो कॉल स्टैक: (0x14a2052 0xea02d02d05d05d02d02d0d0d0d0)) 0x32f6b7 0x23036d 0xd7e2c 0xd83a9 0xd85cb 0x38a73 0x38ce2 0x38ea8 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x13d990a 0x13d8db4 0x13d8ccb 0x112a7 0x12a9b 0x1fed 0x1f15 0x1) एक अपवाद फेंक कहा जाता है समाप्त (lldb)

क्या कोई मुझे बता सकता है कि क्या गलत हुआ? मैं Xcode 4.5 का उपयोग कर रहा हूं।


आपको xib / स्टोरीबोर्ड में ऑटोलैयूट सुविधा को बंद करना होगा
beryllium

जवाबों:


575

डिफ़ॉल्ट रूप से, जब आप Xcode 4.5 में एक नया iOS प्रोजेक्ट बनाते हैं, तो आपका स्टोरीबोर्ड या XIB ऑटोलेयूट का उपयोग करने के लिए सेट होता है, जो iOS 6.0 में एक नई सुविधा है। यह NSLayoutConstraintक्लास ऑटोलैयूट प्रणाली का हिस्सा है, और यह iOS के पुराने संस्करणों में मौजूद नहीं है।

यदि आप अपने ऐप को iOS के पुराने संस्करण में तैनात करना चाहते हैं, तो आपको ऑटोलयूट का उपयोग करने के लिए अपने स्टोरीबोर्ड या XIB को बदलने की आवश्यकता है । यह फ़ाइल निरीक्षक का एक चेकबॉक्स है:

ऑटोलॉययूट को बंद करना


29
मैंने कैप्चर और क्रॉपिंग के लिए स्क्रीनफ्लो का उपयोग किया। मैं एक .gif में .mov चालू करने के लिए फोटोशॉप का उपयोग करता था।
19 मई को लूटना

यह xib के लिए भी लागू होता है!
विरता १६'१३ को

ऐसा करने से पोर्ट्रेट से परिदृश्य तक रोटेशन को देखा जा सकता है, यहां तक ​​कि लागू होने वाले तरीके भी। यदि आप अभी भी रोटेशन लेना चाहते हैं तो आपने इस मुद्दे को कैसे हल किया? अग्रिम धन्यवाद, और ... अच्छा gif ^ ^
aGit

grob और सही जवाब के लिए @robmayoff धन्यवाद। मेरा मुद्दा एक सेकंड में हल हो गया। :)
ishhhh

मुझे यह पसंद आया इसलिए मैंने अपवाद ब्रेकप्वाइंट के लिए अपना खुद का बनाया। rsaunders.co.uk/2013/06/add-exception-breakpoint.html
रॉबर्ट

21

आपकी Xib फ़ाइल (इंटरफ़ेस बिल्डर फ़ाइल) में AutoLayout तत्व हैं, जो iOS 5 का समर्थन नहीं करता है।

Xcode में, अपनी .xib फ़ाइल (ओं) पर जाएं, और हर एक के लिए, AutoLayout को बंद करें। बाएं हाथ की तरफ एक चेकबॉक्स होना चाहिए, जिसमें "AutoLayout का उपयोग करें", इसे अनचेक करें और फिर से प्रयास करें। (यह बाएं हाथ की ओर निरीक्षक में पहले टैब के तहत है, जब आपके पास फ़ाइल का स्वामी है) चयनित है।


8

जब मैं अपडेट करना चाहता था तो मैं एक पुराने प्रोजेक्ट पर काम कर रहा था, तब मैं इस त्रुटि में फंस गया। मैंने बाधाओं के साथ काम करना शुरू करने के लिए "यूज़ ऑटोलेयूट" चेकबॉक्स का चयन किया था, लेकिन आईओएस 6 में मेरी तैनाती लक्ष्य सेटिंग को अपडेट करना भूल गया था।


7

आपको इसे iPhone 6.0 सिम्युलेटर में चलाने की आवश्यकता है। आपकी त्रुटि:

* Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' *

दर्शाता है कि आप ऑटोलैयट का उपयोग कर रहे हैं, जो केवल iOS 6 पर काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.