पर कोई छवि (या अन्य संसाधन) जोड़ें मान लें कि मेरे पास एक मौजूदा आईओएस या मैक फ्रेमवर्क है जिसे हम Test.framework पर कॉल करेंगे। इस ढांचे ने संकलित और सफलतापूर्वक लिंक किया है (आईओएस भाग के लिए i386 और armv6/7 archs दोनों को लिपो करने के लिए एक चाल की गई थी) और पूरी तरह से ठीक काम कर रहा है।मैक या आईओएस फ्रेमवर्क
अब मैं इसे एक छवि जोड़ना चाहता हूं चलिए इसे 'test.png
' कहते हैं। मैं इसे अपने ढांचे के संसाधन फ़ोल्डर में कॉपी किया है तो मैं निम्नलिखित संरचना है: जब मैं अपने ढांचे का उपयोग कर एक प्रोजेक्ट बना फिर भी
ls Test.framework
- Headers -> Versions/Current/Headers
- Resources -> Versions/Current/Resources
- Test -> Versions/Current/Test
- Versions
ls Test.framework/Resources
- Info.plist
- test.png
मुझे लगता है कि छवि को एक्सेस नहीं कर सकते हैं।
मैं कोशिश की है:
[UIImage imageNamed:@"test.png"]
[UIImage imageNamed:@"Test.framework/test.png"]
[UIImage imageNamed:@"Test.framework/Resources/test.png"]
लेकिन कुछ भी नहीं बाहर काम किया है कि हमेशा मुझे वापस दे दी एक nil
वस्तु।
कोई विचार?
संपादित
बहुत आगे की जांच पड़ताल के बाद यह है कि मैं क्या पूरा करने के लिए iOS पर नहीं किया जा सकता कोशिश कर रहा हूँ लगता है। इसका कारण यह है कि अंतिम एप्लिकेशन बंडल (.app) निजी ढांचे की प्रतिलिपि नहीं करता है जहां मैक ओएस के लिए संकलित अनुप्रयोग होंगे।
यह iOS Bundle Structures documentation में आगे विस्तृत है।
रोब केनगर और जुज़े को उनकी सराहना की सहायता के लिए धन्यवाद। मैं जवाब के लिए xuzhe क्रेडिट करूँगा क्योंकि यह वास्तव में मेरी मूल समस्या का सबसे उचित उत्तर है (भले ही रॉब टिप्पणी ने मुझे इस मुद्दे में काफी गहराई से खोला)
कह रहा है कि '' छवि 'नामित: "विधि केवल आपके ऐप बंडल की छवियों के लिए है' पूरी तरह से सच नहीं है। अगर मैं अपनी परियोजना में एक बंडल (test.bundle कहता हूं) जोड़ता हूं और इस बंडल में test.png है तो [UIImage imageNamed: @ "test/test.png"] अच्छी तरह से काम करेगा। – apouche
हालांकि आपका समाधान दिलचस्प है, लेकिन मेरे पास मेरे आवेदन में बंडल नहीं किया गया है (इसे कमांड फ्रेमवर्क फ़ोल्डरों में स्थापित किया जा सकता है) – apouche
@apouche यदि आप अपने ऐप बंडल में बंडल जोड़ रहे हैं और फिर '[UIImage imageNamed: @ "test.bundle/test.png"]; 'यह ठीक है क्योंकि test.bundle मुख्य बंडल में भी है। यदि ऐसा नहीं है, तो मुझे संदेह है कि "imageNamed:" इसे ढूंढ सकता है। – xuzhe