2015-05-13 6 views
13

मैं एक ट्यूटोरियल मैं वेब पर पाया पीछा कर रहा था, वहाँ इस तरह कोड की लाइन थी:मैं एप्पल आईओएस दस्तावेज को सही तरीके से कैसे पढ़ सकता हूं?

var myImage = UIImage(named: "icon") 

मैं समझता हूँ कि क्या इस लाइन करता है, लेकिन मैं निश्चित रूप से इसे याद नहीं करना चाहता, मैं चाहता हूँ समझें कि लेखक इस कोड के साथ कैसे आया, इसलिए मैं UIImage क्लास संदर्भ के लिए प्रलेखन खोजता हूं, प्रारंभकर्ता अनुभाग के तहत कुछ भी नहीं है जो इस कोड की पहचान करता है, तो क्यों? मुझे इस कोड के बारे में और कहां मिल सकता है?

मैंने वेब पर कई सारे ट्यूटोरियल पढ़े, मैंने बहुत सारे वीडियो ट्यूटोरियल देखे, और बहुत सारी किताबें पढ़ीं, उनमें से कोई भी अपवाद नहीं है, वे आपको कोड दिखाते हैं, वे पूरी तरह से इसे समझाते हैं, लेकिन वे डॉन करते हैं आपको यह नहीं बताते कि वे इसके साथ कैसे आए, उन्हें सही नौकरी के लिए सही तरीका कैसे मिला?

क्या मुझे इन सभी ट्यूटोरियल के बजाय ऐप्पल दस्तावेज पढ़ने में अपना समय बिताना चाहिए? क्या मैं कुछ गलत कर रहा हूं? क्या मैं कुछ भूल रहा हूँ? मैं उन सभी चीजों को याद नहीं करना चाहता हूं जिन्हें मैं पढ़ता हूं, यही कारण है कि मैं विकासशील ऐप्स सीखना नहीं चाहता था, मैं समझना चाहता हूं कि सही कोड कहां देखना है, मैं डेवलपर की तरह सोचना सीखना चाहता हूं।

उत्तर

8

लिखित जानकारी के 3 उपयोगी स्रोत हैं:

  1. उदाहरण कोड/ट्यूटोरियल:

    आधिकारिक दस्तावेज महान एक बार आप कुछ Xcode/iOS में कोडिंग अनुभव है, लेकिन यह करने के लिए एक मुश्किल जगह है प्रारंभ। अच्छा नमूना कोड देखने के लिए कुछ भी धड़कता नहीं है।

    उदाहरण कोड (ऐप्पल से, स्टैक ओवरफ्लो से, रे वेंडरलिच से, कहीं भी आप इसे ढूंढ सकते हैं) सीखने का एक शानदार तरीका है। यहां तक ​​कि आप पढ़ रहे ट्यूटोरियल लिखने वाले लोगों को अन्य लोगों के नमूना कोड के साथ शुरू किया गया है। आईओएस सीखने वाले पहले लोग ऐप्पल से नमूना कोड के साथ शुरू हुए।

  2. आधिकारिक दस्तावेज:

    अपने कोड में या खेल का मैदान में आधिकारिक दस्तावेज विकल्पUIImage पर क्लिक प्राप्त करने के लिए। पॉप अप में, UIImage क्लास संदर्भ चुनें। प्रारंभकर्ता आप देख रहे हैं नहीं है:

    + imageNamed:
    निर्दिष्ट फ़ाइल नाम के साथ जुड़े छवि वस्तु देता है।

    घोषणा
    स्विफ्ट
    init?(named name: String) -> UIImage

    ऑब्जेक्टिव-सी
    + (UIImage *)imageNamed:(NSString *)name

    पैरामीटर
    नाम फ़ाइल का नाम। अगर पहली बार छवि लोड हो रही है, तो विधि एप्लिकेशन के मुख्य बंडल में निर्दिष्ट नाम के साथ एक छवि की तलाश करती है।

    रिटर्न वैल्यू निर्दिष्ट फ़ाइल के लिए छवि ऑब्जेक्ट, या शून्य अगर विधि निर्दिष्ट छवि नहीं मिल सका।

    स्विफ्ट में, आप init पर कॉल करके सीधे प्रारंभकर्ता को कॉल नहीं करते हैं। इसके बजाय, आप इस मामले में कक्षा का नाम, UIImage का उपयोग करते हैं। name पैरामीटर का आंतरिक नाम है, और ? आपको बताता है कि यह एक अनुपलब्ध प्रारंभकर्ता है जो nil लौटा सकता है, इसलिए वास्तव में यह प्रारंभकर्ता UIImage? देता है। तो आपको init?(named name: String) -> UIImage पर देखना चाहिए और UIImage(named: String) -> UIImage? पर विचार करना चाहिए।

  3. हेडर फाइल:

    अपने कोड में टाइप UIImage या एक खेल का मैदान है और उस पर कमान क्लिक करें। यह UIImage के लिए हेडर फ़ाइल जानकारी लाएगा। बहुत पहले सूचीबद्ध प्रारंभकर्ता है:

    init?(named name: String) -> UIImage // load from main bundle 
    

आप हेडर पढ़ने से बहुत कुछ सीख सकते हैं। मैं उन्हें अक्सर जांच करने की सलाह देते हैं।

1

1) यह "कैश्ड छवि लोडिंग रूटीन" अनुभाग में है। शायद आपको दस्तावेज़ में स्विफ्ट कोड पर स्विच करने की आवश्यकता है?

2) ट्यूटोरियल और कोड उदाहरण भाषा, मंच और अच्छी प्रथाओं को सीखने के लिए अच्छे हैं। आप इसे संदर्भ व्याख्यान के साथ बैकअप कर सकते हैं।

+0

आप दस्तावेज़ में स्विफ्ट कोड पर कैसे स्विच करते हैं? –

+0

प्रत्येक कक्षा प्रलेखन साइट के ऊपरी दाएं कोने पर आपके पास "भाषा: उद्देश्य-सी स्विफ्ट दोनों" है। बस आपको जो चाहिए उसे चुनें। –

+0

"प्रत्येक कक्षा दस्तावेज साइट के ऊपरी दाएं कोने पर?" आप एक्सकोड में मदद विंडो पर मतलब है? कहां, बिल्कुल, और यह क्या निकट है? मुझे यह नहीं दिख रहा है। –

4

मुश्किल बिट जिस तरह से स्विफ्ट प्रारंभकर्ताओं से संबंधित है। मैं सुझाव देता हूं कि "स्विफ्ट प्रोग्रामिंग लैंग्वेज" आईबुक खरीदें और शुरुआती पर अध्याय पढ़ना।

शब्द "init" प्रारंभकर्ता की घोषणा में प्रकट होता है, लेकिन आप इसे कॉल करते समय init शब्द का उपयोग नहीं करते हैं।

घोषणा

init?(named name: String) -> UIImage 

प्रश्न चिह्न आपको बताता है कि यह एक "failable" प्रारंभकर्ता है।

इसके बजाय शब्द init के साथ बुलाने की, तो आप वर्ग के नाम के रूप में अगर यह विधि नाम है रखा, और मापदंडों के बाद:

UIImage(named: "name") 

यह initWithFrame: तरह init तरीकों के लिए और अधिक जटिल हो जाता है। उस स्थिति में यह "साथ" दूर पार्स करता है, और एक पैरामीटर "फ्रेम" बनाता है।

मैं यहां सबकुछ शामिल नहीं कर रहा हूं। (मैं अभी भी खुद को सीख रहा हूं।) जैसे मैंने कहा, स्विफ्ट आईबुक में प्रारंभकर्ताओं पर अध्याय पढ़ें।

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