2012-03-25 11 views
9

परिचयXcode - वर्ग फ़ाइलों

की जगह एक मौजूदा परियोजना में जोड़ने त्रुटि _OBJC_CLASS _ $ _ "className" के बाद मैं हम popop विज्ञापनों के लिए ChartBoost एसडीके का उपयोग कर रहे पर काम कर रहा हूँ। हम थोड़ी देर के लिए इस एसडीके का उपयोग कर रहे हैं बिना किसी समस्या के। यह एक बहुत ही सरल लाइब्रेरी है जिसमें अनिवार्य रूप से केवल 1 हेडर फ़ाइल है जिसे "चार्टबॉस्ट.h" कहा जाता है और साथ ही साथ "libChartBoost.a" फ़ाइल भी होती है।

अब हमने एक नए संस्करण के साथ एसडीके फ़ाइलों को अपडेट किया है। मैंने यहां क्या किया था "प्रोजेक्ट से ट्रैश में ले जाएं" द्वारा पुरानी एसडीके फाइलों को हटा रहा था। मैंने जो किया उसके बाद मैंने परियोजनाओं में नई एसडीके फाइलों को स्थानांतरित कर दिया, और उनके संदर्भ जोड़ दिए।

समस्या

सही ऐसा करने और परियोजना के संकलन के बाद, मैं अचानक 2 जोड़ने त्रुटियों मिलता है। यहाँ यह का एक स्क्रीनशॉट है:

Screenshot

मैं बहुत ज्यादा सब कुछ मैं कोशिश करते हैं और त्रुटि को दूर करने के बारे में सोच सकता है की कोशिश की है। मैंने प्रोजेक्ट और प्रोजेक्ट फ़ोल्डर को साफ़ कर लिया है, और मैंने आयोजक विंडो के माध्यम से प्रोजेक्ट के व्युत्पन्न डेटा को हटाने का भी प्रयास किया है।

मुझे यकीन है कि पुराने फाइलों के संदर्भों का उपयोग करने की कोशिश करने वाले लिंकर के साथ इसका कुछ संबंध है? लेकिन मुझे यकीन नहीं है कि मैं उन लोगों को हटाने के लिए इसे कैसे प्राप्त कर सकता हूं-अमान्य संदर्भ।

क्या यहां कोई है जिसके बारे में कोई विचार है कि इस समस्या को कैसे ठीक किया जा सकता है?

[संपादित करें] लिंकिंग ChartBoost.a द्विआधारी

को तो मैं "के चरण का निर्माण" टैब के माध्यम से बाइनरी ChartBoost.a फ़ाइल को जोड़ने की कोशिश की। यह दो मूल त्रुटियों से छुटकारा पाने के किया हालांकि 8 नए लोगों को पता चला, नीचे स्क्रीनशॉट में दिखाया गया है:

Linking errors 2

मैं काफी यकीन है कि क्या जोड़ने त्रुटियों के इन प्रकार दुर्भाग्य से मतलब करने वाले हैं नहीं कर रहा हूँ :(किसी को भी गया किसी भी विचार?

+0

ऐसा लगता है कि आप कुछ लाइब्रेरी खो रहे हैं या एआरसी और लाइब्रेरी उपयोग बनाए रखने आदि का उपयोग कर रहे हैं – mientus

+2

बीटीडब्ल्यू: चार्टबॉस्ट.h और libChartBoost को बस अपग्रेड करने का एक बेहतर तरीका होगा।एक फाइल, जहां भी वे वर्तमान में डिस्क पर हैं (यानी, जहां भी एक्सकोड के फ़ाइल संदर्भ इंगित करते हैं)। आपको कुछ और बदलने की ज़रूरत नहीं होगी। –

+0

टिप कर्ट रेविस के लिए धन्यवाद :) – CodingBeagle

उत्तर

12

आपके ऐप की लक्षित में, "के चरण का निर्माण" में देख "लिंक बाइनरी के साथ पुस्तकालय" चरण में।

यह libChartBoost.a शामिल होना चाहिए।

तो यह घ ओह, + बटन दबाएं और libChartBoost.a का चयन करें।

मुझे यकीन है कि पुराने फाइलों के संदर्भों का उपयोग करने के लिए लिंकर के साथ इसका कुछ संबंध है?

नहीं। आपने परियोजना से पुरानी फाइलों को हटा दिया है, और इसमें "लिंक बाइनरी विद लाइब्रेरीज़" बिल्ड चरण में संदर्भ शामिल है। जब आपने प्रोजेक्ट में नई फाइलें जोड़ दीं, तो आपने उस संदर्भ को वापस नहीं जोड़ा।

+0

मैंने मूल प्रश्न को परिणामों के विवरण और स्क्रीनशॉट के साथ अद्यतन किया है। यह दो मूल समस्याओं से छुटकारा पा लिया लेकिन 8 नए लोगों को पता चला – CodingBeagle

+2

समस्याग्रस्त वर्ग के नामों को देखें और थोड़ा सा शोध करें। SCNetworkReachabilityXXX आईओएस 'सिस्टम कॉन्फ़िगरेशन' ढांचे में है, इसलिए इसे अपने लिंक किए गए पुस्तकालयों में जोड़ें। 'एसबीजेसन 3 पार्सर 'एक JSON पार्सर लाइब्रेरी है जिसे आपका' libChartBoost' उपयोग कर रहा है। आप उन सभी फ़ाइलों को 'JSON3' फ़ोल्डर में [चार्टबॉस्ट एसडीके के नवीनतम संस्करण] (http://www.chartboost.com/support/sdk) में देखते हैं? उन्हें अपनी परियोजना में जोड़ें! –

+0

ठीक है, सिस्टम कॉन्फ़िगरेशन नेटवर्क जोड़ना त्रुटियों में से 6 के लिए चाल है। अब एकमात्र समस्या बनी हुई है यह तथ्य है कि मुझे फिर से मूल त्रुटि मिलती है, केवल इस बार "एसबीजेसन 3 पार्सर" के साथ, जिसे स्पष्ट रूप से libChartBoost.a लाइब्रेरी में संदर्भित किया गया है। एकमात्र समस्या यह है कि चार्टबॉस्ट लाइब्रेरी के साथ आने वाले JSON3 फ़ोल्डर में कोई लाइब्रेरी फ़ाइल स्वयं शामिल करने के लिए नहीं है। मैंने इस फ़ोल्डर को परियोजना के एक हिस्से के रूप में शामिल किया है। यह बहुत ही अजीब बात है जब हमने चार्टबॉस्ट को पहली बार लागू किया था, हमें इन पुस्तकालयों के साथ गड़बड़ करने की ज़रूरत नहीं थी। – CodingBeagle