2016-09-04 10 views
13

मुझे पता है कि यह एक प्रकार का डुप्ली है, लेकिन मेरे पास मूल पोस्ट पर टिप्पणी करने के लिए अभी तक पर्याप्त प्रतिष्ठा नहीं है, जबकि मेरे पास कोई जवाब नहीं है, मेरे पास है अधिक उपयोगी जानकारी (एक ठोस उदाहरण)। मॉडरेटर, इसे उचित स्थान पर ले जाने के लिए स्वतंत्र महसूस करें।अपरिचित चयनकर्ता UIDeviceRGBColor countByEnumeratingWithState: ऑब्जेक्ट्स: गिनती:

जब मेरे कोड नवीनतम XCode 8 बीटा 6 (आईओएस 10 SDK), मैं एक अपवाद "समाप्त एप्लिकेशन न आया हुआ अपवाद 'NSInvalidArgumentException', कारण की वजह से मिल का उपयोग कर संकलन: '- [UIDeviceRGBColor countByEnumeratingWithState: वस्तुओं: गिनती:]: गैर मान्यता प्राप्त चयनकर्ता उदाहरण 0x600000071340 ' "

यह तब होता है के लिए भेजा कॉल के दौरान:

auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; 

मैं न्यूनतम कि संकलन होगा और अभी भी समस्या प्रदर्शन करने के लिए अपने प्रोजेक्ट नीचे whittling द्वारा समस्या अलग-थलग कर दिया है। आप इसे यहां से डाउनलोड कर सकते हैं:

Example project

ध्यान दें कि मैं बाहर ले कोड के बहुत सारे, लगभग सभी वर्गों चले गए हैं, जो xib से संदर्भित अस्तित्वहीन कक्षाओं के लिए चेतावनी (नहीं त्रुटियों) का एक बहुत का परिणाम है। लेकिन इससे कोई फर्क नहीं पड़ता, कोड अभी भी संकलित करता है और आईओएस 9 एसडीके के साथ ठीक है। आईओएस 10 एसडीके के साथ संकलन के बाद, यह सिम्युलेटर और आईओएस 9 पर चलने वाले उपकरणों पर दुर्घटनाग्रस्त हो जाता है।

आप फ़ाइल में "#if 0" को "#if 1" में बदलकर समस्या के आसपास काम कर सकते हैं " HackForUnrecognizedSelectorInIOS10.m "। यह यूआईसीओलर के लिए लापता चयनकर्ताओं को परिभाषित करने वाली एक श्रेणी को जोड़ता है। लेकिन जाहिर है कि आप इसे शिपिंग कोड में नहीं जोड़ सकते हैं, यह विकास जारी रखने के लिए केवल एक अस्थायी स्टॉपगैप उपाय है।

मैंने एक बग रिपोर्ट (28153870) दायर की। लेकिन अगर किसी के पास बदसूरत हैक के बिना इस समस्या से बचने के बारे में कोई और जानकारी है, तो किसी भी जानकारी का स्वागत है।

धन्यवाद

मिशेल Colman

उत्तर

39

जब मैं संकलन और एक ही विन्यास के साथ अपने प्रोजेक्ट चलाने का प्रयास (XCode 8 बीटा 6, IOS 10 एसडीके), मैं ने वही समस्या का सामना करना पड़ा, कि मेरी त्रुटि संदेश को छोड़कर था:

*** न आया हुआ अपवाद 'NSInvalidArgumentException', कारण की वजह से एप्लिकेशन समाप्त: -:

'[UIDeviceRGBColor लंबाई] गैर मान्यता प्राप्त चयनकर्ता उदाहरण 0x600000479280 के लिए भेजा'

और मैंने देखा कि यह समस्या तब होती है जब दृश्य इंटरफ़ेस फ़ाइलों का उपयोग करके init init है, यानी Xib और Nib। मैंने इस मुद्दे को हल किया:

  1. दाएं पैनल में, अपनी इंटरफ़ेस फ़ाइल खोलें, फ़ाइल इंस्पेक्टर टैब पर नेविगेट करें।

  2. बदलें विशेषता (iOS संस्करण बाद में जो कुछ भी या) करने के लिए प्रकाश डाला "iOS 7.0 और बाद में" enter image description here

फिर संकलित करके उसे अपने प्रोजेक्ट को फिर से चलाने के लिए, यह, आपकी समस्या का समाधान करना चाहिए हालांकि मैं नहीं कर रहा हूँ इसके पीछे कारण के बारे में निश्चित है। मैंने आपके नमूना प्रोजेक्ट के साथ ऐसा करने की कोशिश की और यह भी समस्या हल करता है।

+1

यह वास्तव में इसे हल करता है! स्पष्ट रूप से तैनाती लक्ष्य कम से कम 6.0 होना चाहिए। मैंने इसे "परिनियोजन लक्ष्य (5.1)" पर सेट किया था। साथ ही, जब मैंने <तैनाती संस्करण = "1296" पहचानकर्ता = "आईओएस" /> (1536 हेक्स 510, यानी आईओएस 5.1) सेट करने के लिए मैन्युअल रूप से xib को टेक्स्ट एडिटर में संपादित किया, तो त्रुटि वापस आई। जब मैं इसे वापस 1536 (हेक्स 600, यानी आईओएस 6.0) पर सेट करता हूं, तो यह ठीक से काम करता है। –

+0

ओ, वैसे, मुझे कुछ अवसरों पर [UIDeviceRGBColor लंबाई] मिला। यही कारण है कि मैंने परियोजना में बदसूरत हैक फ़ाइल में दोनों चयनकर्ताओं को शामिल किया। इस बीच मुझे पता चला कि यह हैक वास्तव में सही काम नहीं करता है: भले ही दुर्घटना गायब हो जाए, तो कुछ कार्यक्षमता भी होती है। उदाहरण के लिए, कुछ बटन काम करना बंद कर दिया। हालांकि कभी-कभी उन्होंने काम किया। ऐसा लगता है कि वहां कुछ नोडेटर्मिनिज्म चल रहा है। –

+0

यह मेरे लिए काम नहीं किया। मैंने "बाद में" संस्करण स्थापित करने का प्रयास किया लेकिन मुझे अभी भी त्रुटि मिल गई है। मैंने फ़ाइल में भी देखा और मुझे वह संस्करण नहीं दिख रहा है जिसे @ मिशेल कोलमन ने दिखाया था। मैं बस यह देखता हूं, <परिनियोजन पहचानकर्ता = "आईओएस" /> – NinjaBeetle

4

मेरे मामले में, मुझे उत्पाद सामान्य सेटिंग्स में परियोजना परिनियोजन लक्ष्य को 8.0 पर बदलने की आवश्यकता थी। स्वीकृत उत्तर से संकेत के लिए धन्यवाद!

+0

यह मेरे लिए काम किया। लेकिन यह अभी भी एक कामकाज की तरह प्रतीत होता है .. क्या कारण और/या किसी फिक्स की आवश्यकता है? – mtb

+0

मेरे मामले में, मुझे इसे Podfile में निर्दिष्ट करना था। यह मेरी गलती है क्योंकि प्लेटफॉर्म निर्दिष्ट नहीं होने पर पॉड एक चेतावनी लॉग करता है। –

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