2015-01-17 6 views
7

मैं सीखने की प्रक्रिया में हूं कि कैसे एक्सकोड का उपयोग करें और मैक के लिए एप्लिकेशन कैसे लिखें।URLForResource रिटर्न शून्य

तो, मेरे पास एक साधारण स्क्रीनसेवर है जो बाहरी फाइल लोड करता है जो ठीक काम करता है। मैंने फैसला किया कि बाह्य निर्भरताओं को कम करने के लिए एप्लिकेशन में एचटीएमएल स्रोत को एम्बेड करना बेहतर होगा।

मैंने HTML फ़ाइल को संसाधन फ़ोल्डर में खींच लिया है, यह शीर्ष स्तर पर है कोई उप फ़ोल्डर या कुछ भी नहीं है।

resource added

मैं लक्ष्यों में जोड़ें सुनिश्चित किया उस में अपने आवेदन किया था, और 'प्रतिलिपि फ़ाइलों यदि आवश्यक हो तो' 'फ़ोल्डर संदर्भ बनाने' का चयन के साथ। मैं फाइल करने के लिए यूआरएल पाने के लिए निम्नलिखित का उपयोग करें, लेकिन यह रिटर्न

शून्य
NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"embedded" withExtension:@"html"]; 


System Preferences[10185]: fileUrl returned (null) 

मैं इसी तरह की समस्याओं के लिए अन्य सभी एसओ मुद्दों के माध्यम से पढ़ा है लेकिन सुधारों में से कोई भी लागू करने के लिए लग रहे हैं। मैं गुजर चुका हूं और उन्हें चेक किया है।

यदि मैं अंतिम निर्माण की पैकेज सामग्री दिखाता हूं तो एम्बेडेड.html वहां है। क्या मैं वास्तव में कुछ याद कर रहा हूँ?

संपादित

निर्माण चरणों में यह कॉपी बंडल संसाधन में सूचीबद्ध है जोड़ने के लिए

enter image description here

xcode संस्करण 6.1.1

+2

क्या आपने जांच की है कि आपके निर्माण चरणों में फ़ाइल 'कॉपी बंडल संसाधन' के अंतर्गत है? –

+0

हां, इसकी प्रतिलिपि बनाई जा रही है। मैंने अभी प्रश्न में छवि को जोड़ा है। – Fuzzy

+0

क्या यह एक कमांड लाइन उपकरण है? यदि ऐसा है तो इसमें ऐप बंडल नहीं है। आपको इसके बजाय कोको एप्लिकेशन बनाना होगा। – HAS

उत्तर

11

कुछ काफी खुदाई के बाद और भाग्य का एक smidgeon है मैंने पाया कि

NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"embedded" withExtension:@"html"]; 

गलत है और मैं बजाय

NSURL *fileUrl = [[NSBundle bundleForClass:[self class]] URLForResource:@"embedded" withExtension:@"html"]; 

का उपयोग करना चाहिए।

i.e. एनएसबंडल बंडलफॉर क्लास: [स्वयं वर्ग] और एनएसबंडल मेनबंडल स्क्रीनसेवर बंडल तक पहुंच नहीं देगा।

स्पष्ट किया जा सकता है, लेकिन केवल यदि आप जानते हैं;)

देखें Apple Developer NSBundle Class Reference

+0

उत्तर के लिए धन्यवाद। निश्चित रूप से यह उम्मीद नहीं कर रहा था। थोड़ा अजीब बात यह है कि बहुत कुछ शुरुआत से ही काम कर रहा है अचानक अचानक बदल जाता है। –

+0

वाह, 5 ज़िलियन खोजों के बाद, 3 हेड-टू-कीबोर्ड, 4 धूम्रपान ब्रेक, 2 नींद 'नींद', और 6 जेली डोनट्स, मुझे अंत में यह समाधान मिला। हमम, आपको लगता है - आधा दुनिया के साथ तरलता, ऐप्पल कुछ सभ्य, एकीकृत, केंद्रीकृत, गैर-खंडित, सटीक, गैर टीएल; डीआर, रोने-बाहर-जोर से प्रलेखन लिखेंगे। (वह मैक पावर बटन फिर से कहां है?) – bob

6

मैं एक ऐसी ही समस्या थी। मेरे लिए जवाब वस्तु की पहचान की लक्ष्य सदस्यता की जांच करना था। target membership must be selected for any object to be analyzed or accessed in the app

0

एक्सकोड छोड़ने और पुनरारंभ करने के लिए यह मेरे लिए तय किया गया।

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