2011-03-04 19 views
9

मैंने "CoreData का उपयोग किए बिना" एक प्रोजेक्ट बनाया है। परियोजना का नाम "शब्दावली"URLForResource हमेशा रिटर्न शून्य

अब मैंने अपना दिमाग बदल दिया है और इसलिए मैंने डेटा मॉडल जोड़ा है-> नई फ़ाइल-> संसाधन-> डेटा मॉडल-> इसे नाम शब्द दिया-> चयन नहीं किया कोई वर्ग-> समाप्त करें।

अगला चरण मेरा डेटा मॉडल डिज़ाइन करना था। फिर मैंने अपने ऐपडिलेगेट में आवश्यक कोड जोड़ा। https://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html%23//apple_ref/doc/uid/TP40008305-CH1-SW1

मेरे समस्या अब इस लाइन में स्थित है::

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"glossary" withExtension:@"momd"] 

modelURL हमेशा nill एक अतिरिक्त NSBundle रेफरी बनाना और बुला रहा है mainBundle मुझे पता चलता है कि सभी चरणों के लिए मैं इस ट्यूटोरियल पीछा कर रहा था काम करना, हालांकि मुझे नहीं पता कि यह वास्तव में सही रास्ता है या नहीं।

काम करने के दौरान चयनित "कोरडाटा का उपयोग" के साथ एक परियोजना पर एक ही कदम करना।

क्या किसी को कोई विचार है?

उत्तर

0

मैं 100% निश्चित नहीं हूं, लेकिन URLForResource केवल फाइलों के लिए काम करता है और momd निर्देशिका है।

URLForResource प्रलेखन: विधि पहले एक मिलान संसाधन निर्दिष्ट बंडल के nonlocalized संसाधन निर्देशिका में फ़ाइल के लिए लग रहा है। (मैक ओएस एक्स में, इस निर्देशिका को आम तौर पर संसाधन कहा जाता है लेकिन आईओएस में, यह मुख्य बंडल निर्देशिका है।) यदि मिलान करने वाला संसाधन फ़ाइल नहीं मिला है, तो यह किसी भी उपलब्ध भाषा-विशिष्ट के शीर्ष स्तर को देखता है "। lproj "निर्देशिकाएं। (भाषा-विशिष्ट निर्देशिकाओं के लिए खोज आदेश उपयोगकर्ता की प्राथमिकताओं से मेल खाता है।) यह किसी भी स्थान पर अन्य उपनिर्देशिकाओं के माध्यम से पुन: साझा नहीं करता है। अधिक जानकारी के लिए बंडल और स्थानीयकरण देखें।

+0

हां पहले से ही लाल है लेकिन जैसा कि मैंने ट्यूटोरियल में बिल्कुल इस पंक्ति को पाया है और जैसा कि मैंने "स्टोरेज के लिए कोर डेटा का उपयोग करें" के साथ प्रोजेक्ट बनाने के लिए लिखा है, यह ठीक काम करता है। तो माँ एक निर्देशिका नहीं होनी चाहिए। मैंने माँ के लिए खोजक में खोजने की कोशिश की लेकिन खोजक को कुछ भी नहीं मिला (कोई निर्देशिका या फ़ाइल नहीं)। मेरे लिए बहुत अजीब है :) – Jonas

+0

ओह, मेरी गलती, मैंने बस अपने दिमाग में .xcdatamodel [d] के साथ माँ को बदल दिया, भ्रम के लिए खेद है। – robertvojta

11

इसे model versioning के साथ करना है। आप एक वर्जन मॉडल जोड़ना चाहते हैं (एक्सकोड प्रोजेक्ट ट्री में आइटम .xcdatamodeld एक्सटेंशन होगा) और फिर आपका कोड सुचारू रूप से चलाएगा।

एक्सकोड 4 में जब आप एक नई कोर डेटा फ़ाइल जोड़ते हैं तो इसे डिफ़ॉल्ट रूप से संस्करणित किया जाता है। भले ही आपने परियोजना निर्माण के बाद कोर डेटा समर्थन जोड़ा हो।

यदि आप मॉडल संस्करण रखने की योजना नहीं बनाते हैं, तो बस अपने कोड में .mom का उपयोग करें।

+0

हाँ! धन्यवाद! मैं उस दिन 3 घंटे के लिए अटक गया था। मैं ओएस एक्स के लिए पहले से किए गए ऐप के आईओएस संस्करण के लिए एक नया मॉडल नहीं बनाना चाहता था, इसलिए मैंने अपने नए आईओएस ऐप पर "कोर डेटा का उपयोग करें" की जांच की, फिर xcdatamodeld फ़ाइल को फेंक दिया और इसे बदल दिया मेरे पुराने ओएस एक्स ऐप से xcdatamodel के साथ। यह अच्छा होगा अगर ऐप्पल ने अंतर को और अधिक ध्यान देने योग्य बनाने के लिए कम क्रैपी एक्सटेंशन चुना। – ArtOfWarfare

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