>> डेनियल Armendariz: नमस्ते, हर कोई, iOS एप्लिकेशन विकास के लिए आपका स्वागत है
स्विफ्ट के साथ।
मैं दान Armendariz हूँ।
मैं कंप्यूटर के precepter हूँ यहाँ स्कूल में विज्ञान
इंजीनियरिंग और एप्लाइड साइंसेज के।
और स्विफ्ट तरह वास्तव में है एक सच में स्वच्छ भाषा की।
और मैं आज के लिए कुछ योजना है।
अगले एक घंटे से अधिक या तो हम जा रहे हैं तो iOS एप्लिकेशन विकास खुद को देखने के लिए
Xcode का उपयोग करने और वास्तव में कुछ बनाने बहुत ही बुनियादी है, बहुत ही सरल अनुप्रयोगों।
और वैसे भी पर देख रहे हैं कि आप वास्तव में उन अनुप्रयोगों ले,
और वास्तव में उन्हें का निर्माण, और एक IOS डिवाइस पर डाल दिया।
चीजों में से कुछ है कि हम को देखने के लिए नहीं जा रहे हैं
की तरह बातें शामिल होंगे वास्तव में एक आवेदन लेने
और app की दुकान पर डाल।
ट्यूटोरियल की एक बहुत ऑनलाइन कि वहाँ यह उस पहलू के साथ मदद मिलेगी।
लेकिन यह भी है क्योंकि CS50 का हिस्सा है, आपको मिल
एप्पल के विकास में शामिल होने के लिए टीम, CS50 के अनुप्रयोग विकास टीम।
अगर आप अभी तक नहीं किया है कि यदि और आप CS50 के साथ संबद्ध हैं,
मैं आपको लगता है कि सिफारिश करते हैं उस वजह से ऐसा कर
तुम बनाने के लिए कर रहे हैं कि कैसे है Xcode में कुछ कार्यक्रमों,
उन्हें बनाने, और वास्तव में डाल अपने iOS उपकरणों में से कुछ पर उन्हें
आप वास्तव में अगर एक भौतिक आईओएस डिवाइस।
आप एक भौतिक आईओएस नहीं है ठीक से भी अधिक है कि डिवाइस।
आप वास्तव में iOS के लिए विकसित कर सकते हैं।
और Xcode है एक आपको अनुमति देता है कि सिम्युलेटर
में आपके आवेदन को देखने के लिए आपके कंप्यूटर पर कार्रवाई की।
लेकिन यह एक तरह से एक बात साफ है वास्तव में खेलने के लिए और बातचीत करने के लिए
अपने आवेदन के साथ एक वास्तविक डिवाइस पर।
इसलिए आवश्यकताओं के एक जोड़े के लिए नहीं है वास्तव में इस विकास के सभी करते हैं।
उनमें से एक यह है कि यदि आप एक मैक के लिए है।
बाद में यह 10.9.4 या चल रहा हो गया है स्विफ्ट के साथ विकास करने के लिए आदेश में।
>> आप एक पहले का उपयोग कर सकते हैं संस्करण विकसित करने के लिए
iOS और मैक के लिए उद्देश्य सी के साथ।
लेकिन मेरा सुझाव है, और का एक बहुत आज हम देख लेंगे कि उदाहरण हैं,
10.10 Yosemite का उपयोग करें।
अगर आप अभी तक उन्नत नहीं है तो, अगर यह ऐसा करने के लिए एक अच्छा बहाना है।
अब Xcode के 6.1 के नवीनतम संस्करण है एकीकृत विकास पर्यावरण
एप्पल कि मुक्त करने के लिए प्रदान करता है कि आप app की दुकान बंद डाउनलोड कर सकते हैं।
और मैं आपको सलाह देते हैं कि यह भी नवीनतम संस्करण चला रहे हैं।
>> आप एक पहले चल सकता हो तो संस्करण, Xcode के 5 और बस के नीचे
बस जो भी तेजी का समर्थन नहीं करते।
छह साल की और बीटा संस्करण है, जो गर्मियों में जारी किए गए थे,
स्विफ्ट का समर्थन करते हैं, लेकिन वहाँ एक भारी संख्या में किया गया
भाषा में परिवर्तन के कारण पर्याप्त इतना है कि आप कर रहे हैं कि कोड
और आपको लगता है कि देखने के लिए जा इंटरनेट पर मिल सकता है
वास्तव में ठीक से संकलन नहीं होगा Xcode के इन पूर्व संस्करणों में।
तो फिर, अगर आप ऐसा नहीं अभी तक एक डेवलपर खाता है,
मैं तुम्हें करने के लिए जाने की सिफारिश developer.apple.com।
साइन अप, एक डेवलपर खाता बनाने, और CS50 अनुप्रयोग विकास टीम में शामिल हो।
एक मौका है कि आप के लिए प्रदान करेगा अपने आवेदन संकलन करने के लिए
और अपनी डिवाइस पर डाल दिया।
ठीक है, तो चलो शुरू हो जाओ।
बहुत पहले की बात हमें क्या करना है जा रहे हैं
वास्तव में एक बहुत बनाने के लिए Xcode में सरल परियोजना
कि आप के लिए अनुमति देगा एक आवेदन कर सकते हैं।
>> अगर आप अभी तक Xcode के पास नहीं है तो अगर खुला, आगे बढ़ो और इसे खोलने
और एक नई परियोजना का निर्माण।
एक विशेष छप स्क्रीन खुल जाएगा और तुम्हें दे देंगे
के बारे में क्या कुछ विकल्प यह आप क्या करना चाहते हैं।
बस आप बनाना चाहते हैं का कहना है कि एक नई परियोजना, एक नया आवेदन।
इस विंडो पॉप अप होगा आप Xcode के 6.1 का उपयोग कर रहे हैं संभालने।
अभी, और के लिए इस संगोष्ठी की अवधि,
हम प्रयोग करने जा रहे हैं एकल दृश्य अनुप्रयोगों, बस
एक बुनियादी आवेदन की तरह अपने पैरों को गीला पाने के लिए।
और तुम बाहर शाखा सकता है वहाँ से अपने दम पर।
>> इस बिंदु पर अगला क्लिक करें।
अब यहाँ चीजों की एक जोड़ी नहीं है आप में प्रवेश करना चाहते हो सकता है।
उत्पाद का नाम है अपनी परियोजना का नाम है।
इस मामले में, मैं अभी कर रहा हूँ यह कॉल करने के लिए जा रहा Seminar1
यह हमारा पहला उदाहरण है, क्योंकि।
संगठन का नाम, में इस मामले में सिर्फ मेरा नाम है।
आप निश्चित रूप से यह बदल सकते हैं अपने नाम करने के लिए, या CS50 के लिए।
संगठन पहचानकर्ता, आप अगर बस लेने के लिए एक वेबसाइट के लिए होता है
डोमेन नाम में , com.yourname रिवर्स।
उत्पाद की और फिर नाम स्वचालित रूप से प्रकट करना चाहिए
बंडल पहचानकर्ता के रूप में उस के बाद।
>> हम कर रहे हैं कि जाहिर है भाषा आज के लिए उपयोग किया जा रहा तेज है।
तुम्हें पता है, ज़ाहिर है, उद्देश्य सी का उपयोग कर सकते हैं उस के लिए, लेकिन आज तेज किया जाएगा।
और हम अब के लिए कहता हूँ यूनिवर्सल उपकरणों, इसलिए
कि यह iPad और iPhone दोनों पर काम करता है।
और हम कोर छोड़ देंगे रखने के लिए अनियंत्रित डेटा
परियोजना अपेक्षाकृत कुछ समय के लिए आसान है।
तो चलो आगे जाना है और अगला क्लिक करते हैं।
और यह मुझे पूछने के लिए जा रहा है जहां मैं इसे बचाने के लिए करना चाहते हैं।
मैं बस अभी के लिए अपने डेस्कटॉप के लिए यह बचा लेंगे।
>> सब ठीक है, तो अब यह क्या इच्छा है जब आप वास्तव में खुला Xcode के लिए होता है।
और कहा कि नोटिस जैसा कि आप देख बहुत पहले की बात
इस विस्मयादिबोधक बिंदु है कि पाया कोई हस्ताक्षर करने के पहचान कहते हैं।
मैं जानबूझकर ऐसा किया मैं कर रहा हूँ और अपने कंप्यूटर पर
मैं जा रहा हूँ, उम्मीद है कि वास्तव में यह तय करने में सक्षम हो
मैं चाहता हूँ क्योंकि आप कैसे यह देखने के लिए वास्तव में अपनी खुद की मशीन पर काम करेंगे।
>> आगे बढ़ो और तय मुद्दे पर क्लिक करें।
अगर आपके पास एक यह है कि आप से पूछना होगा एप्पल डेवलपर खाते मौजूदा।
में शामिल होने से यह जहां CS50 अनुप्रयोग विकास टीम
महत्वपूर्ण है कि ताकि आप नहीं केवल एक app खाता है,
लेकिन आप यह भी है क्षमता क्षुधा हस्ताक्षर करने के लिए
और अपने IOS डिवाइस पर डाल दिया।
इस not-- क्लिक है तय मुद्दा आवश्यक नहीं है
तुम सिर्फ करने के लिए जा रहे हैं निर्माण और स्थानीय स्तर पर विकसित करने,
पूरी तरह आईओएस सिम्युलेटर के भीतर।
>> लेकिन अब के लिए मैं जा रहा हूँ को विकसित करने और उन्हें डाल करने के लिए
मेरे iPad पर, जो होगा के रूप में अच्छी तरह से प्रसारित करने में सक्षम।
इसलिए मैं वास्तव में इस जोड़ना चाहता है।
और यह पूछने जा रहा है मेरे एप्पल आईडी के लिए मुझे।
तो यह इस होने जा रहा है।
और मैं अपने लाने के लिए है यहाँ खत्म हो गया है, जो पासवर्ड,।
तो यह है कि खोजने के लिए मुझे सिर्फ एक दूसरे को दे, और उस की प्रतिलिपि, और यहाँ इस पर पेस्ट करें।
>> जोड़ें पर क्लिक करें।
यह मेरे पूछने के लिए जा रहा है जो टीम मैं शामिल होना चाहते हैं।
मैं इंजीनियरिंग के स्कूल में क्या करने जा रहा हूँ।
जुड़ें क्लिक करें।
ओह, कि गलत है।
चलो यह एक करते हैं।
उम्मीद है कि एक काम करेंगे।
यही कारण है कि एक अभी भी काम नहीं करता है।
हम यहाँ अच्छे लोगों में से बाहर चल रहे हैं।
ठीक है, यह एक काम करना चाहिए।
अब जब कि बंद हुआ।
अब देखते हैं की स्कूल करते हैं इंजीनियरिंग, चुनने के लिए क्लिक करें।
>> और अब उम्मीद है कि एक के बाद आप ठीक can-- सेकंड की जोड़ी,
मैं रद्द कर देंगे और अनुरोध करेंगे।
अरे यार, यह काम नहीं कर रहा है।
ठीक है, मैं एक अलग एक कोशिश करता हूँ।
यहाँ इस एक करते हैं।
लाइव डेमो मुझे असफल रहे हैं।
हम बस पर वापस लौटने के लिए हो सकता है स्थानीय स्तर पर पूरी तरह से निर्माण,
लेकिन यह है कि इस मामले में ठीक हो जाएगा।
>> यहाँ तो, यह वास्तव में है, जबकि काम, हम क्या करने जा रहे हैं तो बस है
एक बहुत ही सरल बनाने नमस्ते विश्व आवेदन।
तो यह Xcode है।
और तुम, अभी तक यह नहीं देखा है अगर पहले डरा देता है एक छोटे से हो सकता है।
शीशे का एक बहुत कुछ है, वहाँ एक विभिन्न क्षेत्रों में doodads की बहुत।
लेकिन सिर्फ यह है कि वहाँ का एहसास वास्तव में कई मुख्य घटकों
इस विकास में पर्यावरण के लिए।
अब तक छोड़ दिया पर फाइलों के सभी कर रहे हैं अपने कार्यक्रम के लिए लागू कर रहे हैं कि
या अपने विशेष परियोजना के लिए।
हम आसपास क्लिक हो जाएगा उनमें से कुछ पर और हम हूँ
सबसे बाहर बात समय के साथ महत्वपूर्ण हैं।
अभी तक सही पर, हम विशेषताओं का एक सेट है।
और इन विशेषताओं के सभी, वहाँ विशेषताओं के लिए विभिन्न शीशे हैं।
शीशे के आधार पर बदल जाएगा मुख्य सामग्री के संदर्भ में, जो
बीच में होना होता है।
अब मध्य वास्तव में दिखा सकते हैं उदाहरण के लिए चीजों की तुम एक किस्म है,
अपने कोड में ही।
या फिर आप वास्तव में जब have-- हो सकता है आप स्टोरीबोर्ड पर क्लिक करें जो
, जिस तरह से सिर्फ एक चित्रमय है अपने उपयोगकर्ता का प्रतिनिधित्व
अपने application-- के लिए इंटरफ़ेस फिर विशेषताओं फलक
बहुत दूर सही पर वास्तव में बदल जाएगा।
अब अन्य की एक जोड़ी है मैं कहना चाहता हूँ कि चीजें हैं।
आप की तरह चारों ओर तलाश कर सकते हैं अपने दम पर वातावरण में।
लेकिन चीजों में से एक लगता है कि बहुत उपयोगी है
इस बटन, यहाँ है खिड़की के ऊपर सही।
इस बटन है कि दूर पर की तरह दिखता है
छोड़ दिया है कि यह एक पैरा है दो हलकों और क्रमबद्ध करें द्वारा पीछा
दो तीर की ओर इशारा करते हुए एक दूसरे से दूर।
आप के बीच स्विच मानक संपादक, जो
अब तक छोड़ दिया एक, एक है कि, डिफ़ॉल्ट रूप से चयनित
और दो हलकों अतिव्यापी आप वास्तव में क्या मिलता है, एक दूसरे को
एक डबल फलक दृश्य हैं।
>> और यह वास्तव में है हमारे लिए उपयोगी होने जा रहा
हम आइटम लिंक करने के लिए जब जरूरत कोड के लिए यूआई में।
और हम के बारे में अधिक बात करेंगे बस एक पल में है।
लेकिन अगर आप महसूस करते हैं कि इस तरह से भी अधिक के शीशे,
तुम सिर्फ अपने दृश्य को आसान बनाने में कर सकते हैं पीठ पर क्लिक करके एक छोटा सा
अपने एकल संपादक पर।
अब तक सब ठीक है।
तो बुनियादी तौर पर हम कोड पर है बाएं, सही पर विशेषताएँ
और यह है कि हम काम कर रहे हैं जो कुछ भी है यहाँ बहुत केन्द्र में पर।
>> तो यहाँ मैं क्लिक किया है मुख्य स्टोरीबोर्ड पर।
और स्टोरीबोर्ड, फिर, Xcode में एक रास्ता है
आप वास्तव में अपने उपयोगकर्ता बना सकते हैं बस खींचें और ड्रॉप का उपयोग इंटरफ़ेस
तकनीक।
और इसलिए हमारे बहुत के लिए पहले आवेदन इस
हम क्या करने जा रहे हैं क्या ठीक है।
हम करने के लिए नीचे जाने के लिए जा रहे हैं बहुत दूर निचले दाहिने भाग
शामिल है जो स्क्रीन के उपयोगकर्ता तत्वों की एक किस्म
तुम तो क्लिक करें और खींचें कर सकते हैं अपने यूजर इंटरफेस बनाने के लिए।
>> अब इन सब तत्वों विचारों कहा जाता है
वे देखने के लिए किसी प्रकार की आपूर्ति की वजह से।
एक छवि को देखने के लिए, वहाँ उदाहरण के लिए, वास्तव में दिखाने के लिए
यूजर इंटरफेस पर एक छवि।
एक मेज को देखने के लिए नहीं है वास्तव में एक मेज दिखा।
इतने पर और आगे।
की एक विस्तृत विविधता है आप यहाँ चयन कर सकते हैं विचार।
तो बस अब हम जा रहे हैं के लिए एक लेबल के लिए खोज करने के लिए।
तुम बस के माध्यम से स्क्रॉल कर सकते हैं है कि वहाँ सूचियों के सभी।
लेकिन खोज नहीं है बहुत नीचे पट्टी
कि यह आसान पहचान के लिए बनाता है विशिष्ट विचारों कि आप वास्तव में
अपने यूजर इंटरफेस में खींचना चाहते हैं।
>> मेरे लेबल मिला।
मैं सीधे, यहां खींचें करने के लिए जा रहा हूँ मेरे नमूना आवेदन पर।
वहीं पर बीच अच्छा लग रहा है।
और मैं टाइप करने के लिए जा रहा हूँ "नमस्ते विश्व!"
हिट दर्ज करें।
अब मैं एक लेबल है।
यह ऐसा नहीं लगती है काफी ठीक से केन्द्रित।
इसलिए मुझे लगता है कि यह केंद्र फिर से करने की कोशिश कर सकते हैं।
सौभाग्य से यह इन प्रस्तावों बातें बहुत आसान बनाने के लिए गाइड।
मैं यह संकलन करने के लिए प्रयास करने के लिए जा रहा हूँ।
उम्मीद है कि यह वास्तव में यहाँ काम करेंगे।
और यह सिर्फ एक पल में, नहीं करता है यह वास्तव में मेरे iPad पर दिखाई देगा।
यह ठीक है यहाँ है।
वहाँ यह है।
>> ठीक है, तो यह बात है।
हम कर रहे हैं।
हम अपने बहुत ही बना लिया है पहले आवेदन।
अब जाहिर है यह कुछ भी नहीं है।
यह सिर्फ एक लेबल है।
के बीच कोई संबंध नहीं है यूजर इंटरफेस और कोड।
हम वास्तव में चाहते थे तो अगर इस संबंध बनाने के लिए,
हम वास्तव में किसी प्रकार का है चाहता था तत्वों के बीच संचार की
पर मौजूद स्क्रीन और कोड कि
हमें नियंत्रित करने देता है तो उन तत्वों,
हम वास्तव में करने की जरूरत है कोड खुद को देखो।
>> तो यह कहा जाता है कि क्या है ViewController.swift।
और विशेष रूप से के लिए, के लिए अपने पहले कुछ कार्यक्रमों,
इस की तरह होने जा रहा है आप enter-- कि कोड के थोक
यहाँ इस दस्तावेज़ में होने जा रहा है।
सामान का एक बहुत कुछ है कि यहाँ में अब तक, सही है?
आयात यूआई किट वर्ग नहीं है, ओवरराइड [? दुर्गंध,?] इन सभी विभिन्न बातें।
और यह काफी स्पष्ट नहीं है क्या यह इस सब का मतलब है कि है।
तो चलो वापस एक कदम दूर ले चलो Xcode से एक छोटा सा के लिए
और भाषा ही, स्विफ्ट को देखो।
>> स्विफ्ट के साथ तो, उस में था डिजाइन और विकास
के बारे में चार के लिए एप्पल पर मेरी समझ के वर्षों।
और सुविधाओं की एक जोड़ी है इसके बारे में वास्तव में साफ कर रहे हैं।
सबसे पहले, यह संकलित है भाषा, सिर्फ सी पसंद
तो जब आप पहली बार के लिए है यह संकलन और उसके बाद इसे चलाने के लिए
आप वास्तव में कर सकते हैं पहले यह परिणाम है कि कोड को निष्पादित।
लेकिन सी के विपरीत, एक इंटरैक्टिव, वहाँ है आप वास्तव में चला सकते हैं कि शीघ्र
और में मनमाना आदेश टाइप करें।
और बहुत एक JavaScript कंसोल जैसे, अब आप के साथ परिचित हो सकता है, जो
यह वास्तव में उन का मूल्यांकन करेंगे आदेशों और आप करने के लिए उत्पादन प्रदान करते हैं।
और वे भी कर लिया है कि अगले स्तर पर
और वे कुछ बना लिया है Xcode में बुलाया खेल के मैदानों
करने के लिए आप की अनुमति है कि नेत्रहीन कोड के साथ काम करते हैं।
और हम वास्तव में कुछ उदाहरण देखेंगे बस थोड़ा सा में इस बात का।
यह सी सी underlies पर आधारित है यह compilers के सभी क्योंकि
सी के बाहर कोड बना सकते हैं और इसमें से वस्तु कोड बनाने के लिए।
लेकिन यह सच शेयरों अपेक्षाकृत छोटे से वाक्य रचना।
यह काफी अलग दिखेगा।
कुछ समानताएं हो जाएगा।
लेकिन वहाँ जा रहे हैं काफी कुछ मतभेद
कहते हैं, जावास्क्रिप्ट या पीएचपी, की तुलना में।
और हम इन बात करेंगे बस एक पल में बाहर।
>> सबसे बड़ी बातें की अब एक के बारे में तेजी से अच्छा है कि
विशेष रूप से, की तुलना में यह है कि सी के लिए, यह सुरक्षित होने का मतलब है।
यह सब कुछ करने के लिए है बहुत दृढ़ता में टाइप किया जा।
वास्तव में यह लगभग गुस्सा आ रहा है पहली बार में, जब आप पहली बार
बस कैसे, स्विफ्ट के साथ काम शुरू ज्यादा यह हर जगह प्रकार लागू करता है।
एक स्ट्रिंग है कि कुछ भी एक स्ट्रिंग रहना पड़ता है।
इसे बदलने की सॉर्ट करने के लिए बहुत मुश्किल है यह कुछ अन्य रूप में यह ज़बरदस्ती या।
>> और फिर, हम इस बात का उदाहरण दिखाता हूँ।
लेकिन अंततः का एहसास है कि यह आप की रक्षा के लिए होती है
और आप के द्वारा मैं से, अपने कोड मतलब कुछ भयानक तरह से जब में दुर्घटनाग्रस्त
आप बेमेल प्रकार के कुछ प्रकार है।
और फिर, इसके साथ काम करते हैं।
यह पहली बार में निराशा होगी क्योंकि आप वास्तव में क्यों यह पता लगाने की कोशिश के रूप में
आप इस असामान्य हो रही है प्रकार से निपटने में त्रुटि।
लेकिन यह अंत में इसके लायक हो जाएगा।
>> यह स्वत: के साथ सौदा करता है स्मृति प्रबंधन,
इसलिए अब आप करते हैं चीजों के साथ सौदा किया है
malloc और मुक्त है और सभी तरह इन चीजों की तरह की।
और यह भी सामान्योक्तियां के लिए तैयार है।
हम एक Xcode के लिए उपयोग कर सकते हैं तो, जबकि , IOS क्षुधा और मैक आवेदन पत्र बनाने
हम भी सिर्फ इसका इस्तेमाल कर सकते हैं एक पटकथा भाषा के रूप में।
और इसलिए हम क्रमबद्ध के लिए इसका इस्तेमाल कर सकते हैं के बजाय PHP या बजाय
अजगर की वास्तव में करने के लिए जल्दी पार्स और प्रक्रिया
हम अपने कंप्यूटर पर है कि कुछ डेटा।
>> यह आधुनिक की एक विस्तृत विविधता है सुविधाओं, optionals, mutability,
जेनरिक, closures, और इस का एक बहुत आप या नहीं पहचान सकता हैं और सामान।
और यह बस की तरह एक दुर्भाग्यपूर्ण है भाषा की बात यह है कि इनमें से कुछ
भविष्य, आधुनिक तत्वों की तरह है कि तत्व हैं भीतर समाहित कर रहे हैं
इतने गहरे बैठ मैं वास्तव में होगा आप एक छोटा सा CS50.5 सिखाने के लिए है।
>> हम और अधिक एक छोटा सा सीखने के लिए है आदेश में सुविधाओं में से कुछ के बारे में
वास्तव में क्या हो रहा है समझने के लिए और इसलिए आप कोड पर देख सकते हैं कि पर
और पूरी तरह खो नहीं लग रहा।
और तुम मेरा क्या मतलब देखेंगे बस एक मिनट में उस ने।
इस बात का ठीक है, तो let's-- पर्याप्त सैद्धांतिक सामान की तरह।
वास्तव में लग रहे हैं हमारे बहुत पहले तेजी से कार्यक्रम।
यह कोड की एक पंक्ति है।
रेखा 14 यहीं है, यह प्रिंट एल एन हैलो CS50 कहते हैं।
>> तो चलो कि चीजों की एक जोड़ी नहीं है इस तुलना के बारे में बहुत अलग
तुम हो सकता है कि बातें करने के लिए उदाहरण के लिए, सी से करने के लिए प्रयोग किया जाता है।
उनमें से एक कोई है कि वहाँ है intmain, कोई अनुभाग में शामिल नहीं है,
इस अतिरिक्त सामान में से कोई भी नहीं है।
मानक की तरह शामिल मैं / हे, पुस्तकालयों की तरह
वास्तव में है कि प्रदान भाषा के मानक सुविधाओं,
स्वचालित रूप से के रूप में शामिल किए गए हैं स्विफ्ट मानक पुस्तकालय का हिस्सा
और कहा कि स्वचालित रूप से आयात कर रहे हैं।
तुम सब करने की जरूरत नहीं है मैन्युअल रूप से है कि आयात करते हैं।
>> Intmain क्योंकि अस्तित्व में नहीं है कोड के लिए मुख्य प्रवेश बिंदु
पर वास्तव में है कोड की शुरुआत।
तो आपको लगता है कि किसी भी कोड शुरुआत से शुरू
वास्तव में शुरू में क्रियान्वित किया जाएगा।
तो यह वास्तव में बहुत सरल करता है।
कोई अर्धविराम है कि वहाँ है, यह भी सूचना है।
इस भाषा में कोई अर्धविराम है।
आप एक बयान में डाल दिया एक व्यक्ति लाइन पर
और फिर अगली पंक्ति अन्य बयान का प्रतिनिधित्व करता है।
आप करना चाहते हैं ऑनलाइन mulitiple बयान,
तो आप अर्धविराम से यह अलग है।
लेकिन सबसे अधिक भाग के लिए, अच्छा शैली के लिए, हम कर रहे हैं
के लिए अर्धविराम देखने जा कभी नहीं अलग होने के बयान के उद्देश्यों
तेज में।
तो कैसे यह वास्तव में काम करता है?
खैर बहुत बहुत सी हम जैसे वास्तव में इस संकलन करने के लिए है।
और इसलिए हम का उपयोग करके ऐसा कर सकते हैं तेज ग और फिर 1.swift।
और फिर एक जोड़े के बाद इस संकलन होगा मिनट
और फिर मैं आइटम एक चला सकते हैं।
और यह तुलना में सिर्फ "हैलो CS50 कहेंगे।"
बहुत बढ़िया है, इसलिए हम वहाँ जाते हैं।
हमारी पहली नमस्ते विश्व कार्यक्रम नहीं है।
नंबर दो पर चलते हैं।
>> अब this-- में यह बदल गया है थोड़ा, जबकि आम तौर पर आप क्योंकि
वास्तव में do-- हमेशा आप के लिए क्या है इससे पहले कि आप एक तेज आवेदन संकलन
वास्तव में it-- एक रन महान सुविधाओं की
मैं alluded कि करने से पहले यह था कि तेज वास्तव में प्रकार में इस्तेमाल किया जा सकता है
एक छद्म व्याख्यात्मक विधा की, वहाँ एक दुभाषिया की तरह वास्तव में है।
लेकिन क्या यह करना होगा है वहाँ वास्तव में, एक तेज आवेदन है
आप चला सकते हैं।
>> तो उदाहरण के लिए आप बस प्रकार अगर यहां स्विफ्ट, क्या होगा
यदि आप एक शीघ्र मिल जाएगा।
और अगर आप अपने तेज टाइप कर सकते हैं कोड, नमस्कार, प्रिंट और इसे चलाते हैं।
और यह वास्तव में print-- जाएगा खैर, यह इस मामले में मुद्रित नहीं था
यह केंद्रित करने के लिए मुद्रित क्योंकि बाहर, जो यहां दिखाई नहीं देता है।
लेकिन यह वास्तव में कार्य करने में सक्षम है।
और हां, इस मामले में मैं अभी कर रहा हूँ एक स्क्रिप्ट के रूप में इस का उपयोग करने के लिए जा रहा है।
और मैं वास्तव में वहाँ इस कोड को चला सकते हैं।
इसलिए मैं वास्तव में चलने वाले रास्ता यह थोड़ा अलग होगा
लेकिन तुम सिर्फ एक पल में देखेंगे।
अब, इस मामले में हम क्या जा रहे हैं ऐसा करने के लिए पहली बार एक चर को परिभाषित करने के लिए है।
तो यह है कि हम कैसे परिभाषित है तेज में एक चर,
हम चलो कीवर्ड का उपयोग कर रहा है, पीछा चर के नाम से,
और फिर हम कुछ प्रदान वैकल्पिक रूप से डेटा आरंभ।
इसलिए इस मामले में हम परिभाषित कर रहे हैं नाम कहा जाता है एक निरंतर,
और हम में है कि उपयोग करने के लिए जा रहे हैं हमारे प्रिंट लाइन का उत्पादन
बहुत नीचे, नमस्कार नाम पर।
>> अब, कि बजाय का उपयोग करने के लिए% s नोटिस हम इस बात का नाम encapsulate कर सकते हैं
/ में चर () और करने में सक्षम हो इस की सामग्री में जुटना
इस स्ट्रिंग में स्ट्रिंग।
अब सी के विपरीत, स्ट्रिंग एक है तेज में वास्तविक वास्तविक प्रकार।
और तो यह बगल में बैठता है ints और साथ-साथ
बहुत आसानी से दोगुना हो जाता है और स्वाभाविक रूप से तुलना
अन्य में से कुछ को हमने देखा है कि भाषा।
तो यह वास्तव में कार्य करेगा बस आप उम्मीद करेंगे की तरह।
>> मैं 2.swift चला सकते हैं।
और हम मेरा नाम है यह देखना है कि वास्तव में "नमस्ते दान।" में spliced
ठीक है, बहुत बढ़िया।
नंबर तीन पर चल रहा है।
अब यह एक छोटा सा था एक सफेद झूठ है कि मैं
कहा कि हम घोषणा की कि जिस तरह से चर चलो कीवर्ड का उपयोग करने के लिए किया गया था।
आप संभवतः आप कर सकते हैं के रूप में के रूप में कई बार कि क्या करता है, क्योंकि यह बताने का उपयोग करना चाहते हैं
यह एक निरंतर परिभाषित करता है।
और कहा कि यह कर सकते हैं कि तेज बताता है अपने आवेदन की गति का अनुकूलन
यह है कि कोई जानता है कि क्योंकि चर बदलने के लिए नहीं जा रहा है।
>> तो ध्यान का मूल्यांकन आप का उपयोग करने के लिए जा रहे हैं जब
के लिए एक चर इसे बदलने के प्रयोजनों।
और जब आप करने जा रहे हैं सिर्फ एक परिवर्तनीय बनाने
कुछ डेटा पकड़ और वह यह है कि करने के लिए वास्तव में परिवर्तित करने के लिए नहीं जा रहा है।
तो अचल स्थिति की इस अवधारणा को, यह वास्तव में परिवर्तित करने के लिए नहीं जा रहा है
एक महत्वपूर्ण एक के रूप में भी है नीचे तक चर को परिभाषित करने के रूप में।
तो यहाँ हम एक नाम से परिभाषित किया है, नाम है, और इस मामले में
यह उस प्रकार के एक स्थिर है है स्ट्रिंग, और यह दान के बराबर है।
>> पूर्व में जबकि तो संस्करण है, यह infers-- और से "यह"
मैं swift-- तेज मतलब डेटा के प्रकार infers
हम चर में प्रवेश कर लिया है।
इस मामले में, हम स्पष्ट हो सकता है।
इसलिए इस बात का तो नाम देना चर तो, एक पेट के नाम है।
और पेट के बाद हम करते हैं डेटा के प्रकार को निर्दिष्ट करें।
तो अब इसे पूर्णांक नाम है या स्ट्रिंग नाम या ऐसा कुछ।
लेकिन इसके बजाय हम कर रहे हैं, लेबल जाने चाहे या नहीं को परिभाषित
यह लगातार या चर है नाम से पीछा किया,
प्रकार वैकल्पिक रूप से पालन किया।
>> इस मामले में हम परिभाषित कर रहे हैं तो इस नाम का एक स्ट्रिंग है।
हम कह रहे हैं दान है।
और अब मैं एक और चर है, इस मामले में यह लेबल कहा जाता है।
लेकिन यह है कि नोटिस वर कीवर्ड की शुरुआत में लगाए।
वर कीवर्ड साधन इस चर कर सकते हैं कि
में एक बिंदु पर बाद में बदला जा कहीं नीचे कोड में समय,
हम वास्तव में इसे और इसे बदल सकते हैं हमें किसी विशेष त्रुटि नहीं देंगे।
>> हम मानक concatenating कर सकते हैं ऑपरेटर यहाँ प्लस प्रतीक का उपयोग
वास्तव में जोड़ने के लिए हमारे इस स्ट्रिंग में नाम है।
और फिर हम बाहर प्रिंट कर सकते हैं हम सिर्फ एक क्षण पहले देखा था।
अब मान लीजिए कि आप कहते हैं कि एक चर बनाना चाहते हैं
लेकिन आप इसे अभी तक प्रारंभ करने में नहीं करना चाहती।
आपने अभी तक नहीं करना चाहते हैं यह के भीतर किसी भी डेटा डाल दिया।
खैर आपको बताना है डेटा की तेज किस प्रकार का
आप कर सकते हैं इससे पहले होने जा रहा है वास्तव में इसे ठीक तरह से परिभाषित करते हैं।
>> इसलिए इस मामले में हम से परिभाषित किया है जब हमारे पास एक चर बुलाया ग्रेड होने के लिए
क्योंकि, उसके प्रकार के बारे में स्पष्ट यह बस देख अनुमान नहीं कर सकते
initialized डेटा पर आप इसे करने के लिए प्रदान करते हैं।
यह हमें आप अगर एक त्रुटि दे देंगे बस प्रकार वर ग्रेड, उदाहरण के लिए,
इसलिए यह कोई प्रकार है, क्योंकि।
इसलिए ग्रेड = 100।
100 एक पूर्णांक है कि इसलिए, यह उस में बहुत अच्छी तरह से फिट बैठता है।
यह कार्य करने के लिए जारी रहेगा।
हम देख सकते हैं कि कैसे तो हम में इस जुटना कर सकते हैं।
अब तुम हो सकता है परीक्षा, वास्तव में आप अगर
जुटना करना चाहता था एक अन्य पाठ स्ट्रिंग में ग्रेड,
एक और स्ट्रिंग में, कि तुम सिर्फ होगा कि एक ही concatenating ऑपरेटर का उपयोग करें।
और कहा कि आम तौर पर सही होगा।
लेकिन तेज करने के लिए आप की अनुमति नहीं होगी उलझाव से डेटा के प्रकार बदल जाते हैं।
इस मामले में, यह तो रेखा, 25, असफल हो जायेगी
ग्रेड है क्योंकि एक पूर्णांक नहीं है और एक स्ट्रिंग।
और तो प्रकार का सेट एक बेमेल है।
तो आप जब स्पष्ट होना जरूरी आप इस डेटा को बदलना चाहते हैं,
आप इस विवश करना चाहते हैं एक अलग प्रकार में डेटा
और ठीक है, मैं ले जाना चाहते हैं, का कहना है एक पूर्णांक है जो इस ग्रेड,
और एक स्ट्रिंग के लिए इसे बदलना।
>> तो मैं एक पूंजी की स्ट्रिंग के सभी ले प्रकार, आप पूंजीकृत हैं, पर ध्यान देंगे
इंट, डबल, स्ट्रिंग, इतने पर और आगे।
वे सब के सब पूंजीकृत हैं बस चीजों को आसान बनाने के लिए।
और हम भुनाने कहूँगा स्ट्रिंग यह ग्रेड में गुजरती हैं।
और यह एक बनाएगा कि पूर्णांक के बाहर स्ट्रिंग।
और फिर हम जुटना कर सकते हैं दो बहुत ही अच्छी तरह से।
अब तक इस सामान पर कोई सवाल?
सब ठीक है, चलो हल करते हैं के माध्यम से चार नंबर करने के लिए।
>> अब हम कुछ और अधिक उन्नत के बारे में बात करते हैं सरणियों और छोरों संरचनाओं की तरह,।
और स्विफ्ट में सी के विपरीत, सरणियों संकेत द्वारा प्रतिनिधित्व नहीं कर रहे हैं।
तेज में सूचक, वे मौजूद हैं, हालांकि, कहा जाता है
असुरक्षित संकेत की तरह या इस तरह से कुछ इसी तरह के प्रकार,
वे आम तौर पर आप को उजागर नहीं कर रहे हैं।
इसलिए यह बहुत मुश्किल हो जाता है आप में हेरफेर करने के लिए
सीधे अपने कंप्यूटर की स्मृति।
>> तो सरणियों सिर्फ एक डेटा प्रकार के होते हैं।
और वे इस प्रकार का उपयोग कर संदर्भित कर रहे हैं अब मानक वर्ग कोष्ठक अंकन
आप पहले देखा है कि।
लेकिन अगर आप वास्तव में करना चाहते हैं एक चर का एक प्रकार को परिभाषित
कुछ की एक सरणी के रूप में उसके बाद विशेष प्रकार, आप
वर्ग कोष्ठक में उस प्रकार के रख दिया।
तो क्या मैं यहाँ कह रहा हूँ कि है मैंने फोन एक चर पैदा कर रहा हूँ
प्रकार int सरणी के ग्रेड।
और मैं कुछ करने के लिए है कि बराबर स्थापित कर रहा हूँ initialized डेटा, जो इस मामले में
सिर्फ एक है, जो 85, 90, 0, 100 है यहाँ मनमाना ग्रेड का संग्रह।
अब मैं कर सकता था, इस मामले में याद रखना, प्रकार निकालने के लिए,
और यह है कि यह अनुमान करने में सक्षम होगा initialized डेटा पर आधारित है।
लेकिन मुझे लगता है कि अगर हटा दिया इस और मैं बाद में इसे स्थापित करने की जरूरत
तो मुझे यकीन है कि बनाने के लिए होता है मैं वहाँ प्रकार है।
ठीक है, साथ चलते हैं।
इसलिए हम सरणियों can-- एक किस्म हमें प्रदान
कि डॉट अंकन के माध्यम से तरीकों में से आप कम से अब शायद से परिचित हैं।
तो grades.count, उदाहरण के लिए, हमें ठीक संख्या बताता है
कर रहे हैं कि तत्वों की इस सरणी के भीतर निहित।
>> मैं additional-- जोड़ना चाहते हैं अब इस एक var है कि नोटिस
और इस not-- एक चर रहा है , और एक स्थिर नहीं है, जो
मैं सामग्री को बदल सकते हैं कि इसका मतलब है इस सरणी की, मैं इसे करने के लिए वस्तुओं जोड़ सकते हैं।
लेकिन मैं सिर्फ ग्रेड नहीं कह सकता और फिर वर्ग कोष्ठक में
चार, कि हो जाएगा, क्योंकि एक इस मामले में सीमा त्रुटि से बाहर।
मैं वास्तव में बदलना चाहते हैं इस सरणी के आकार,
मैं करने के लिए डॉट संलग्न विधि का उपयोग करने के लिए है इसके बारे में बहुत अंत करने के लिए पर कुछ जोड़ना।
मैं कर सकता है, तथापि, परिवर्तन व्यक्तिगत सूचकांकों।
>> इसलिए मैं ग्रेड इस्तेमाल कर सकते हैं और फिर वर्ग कोष्ठक
शून्य यह पहली सूचकांक में हेरफेर करने और इतने पर, आप सामान्य रूप से उम्मीद करेंगे की तरह।
और मैं वास्तव में करने के लिए ही कर सकते हैं के रूप में अच्छी तरह से है कि डेटा प्राप्त करते हैं।
अब भी प्रकार की एक फैंसी तरीका है के इस ग्रेड प्लस बराबरी कर
और फिर एक और सूचकांक, जो append-- जाएगा
या किसी अन्य index-- नहीं लेकिन एक और सूची जो
उस सूची संलग्न करेंगे ग्रेड के पीछे करने के लिए।
और ग्रेड होगा फिर लगता है कि सभी के होते हैं।
लेकिन यह है कि एक अतिरिक्त बात की तरह है कि मैं सिर्फ मनोरंजन के लिए आपको दिखा रहा हूँ।
>> अब एक पाश के लिए नहीं है।
और इस जहां की शुरुआत है चीजें एक छोटा सा परिवर्तन करने के लिए शुरू करते हैं।
पाश के लिए यह सूचना कैसे सी में छोरों के लिए से अलग
अब मुझे लगता है कि ध्यान दें स्विफ्ट में छोरों के लिए कर सकते हैं
सी में छोरों के लिए की तरह देखने के लिए बनाया जा सकता है लेकिन अधिक उपयोगी निर्माणों की एक बहुत कुछ है
कि अनिवार्य रूप से समाप्त करने की जरूरत वर के लिए है करने के लिए मैं 0 अर्धविराम के बराबर होती है मैं
, कुछ लंबाई की तुलना में कम है इतने पर और बहुत आगे है, है ना?
और इस का निर्माण सिर्फ उनमें से एक है।
>> सूचकांक के लिए, सूचकांक नया है चर, रेंज में इस मामले में।
और मैं क्या कह रहा हूँ कि वहाँ है 0 से सभी तरह अप करने के लिए एक सीमा
लेकिन grades.count सहित नहीं।
तो यह डॉट कम डॉट साइन प्रतिनिधित्व करता है की तुलना
शून्य से शुरू मूल्यों की एक श्रृंखला grades.count अप करने के लिए शून्य से एक के लिए सभी तरह।
एक अलग नहीं है मौजूद है कि ऑपरेटर,
जो जो होता है, डॉट डॉट डॉट है मैं शून्य की सीमा चाहते हैं कि इसका मतलब
ग्रेड के लिए समावेशी गिनती।
>> लेकिन इस मामले में, इन क्योंकि सरणियों हम निश्चित रूप से, शून्य सूचकांक रहे हैं
पर जाने के लिए नहीं करना चाहते ग्रेड की अधिकतम संख्या।
आप कर सकते हैं, जैसा कि मैंने ग्रेड योग कर सकते हैं उम्मीद है, और इस सामान के उत्पादन में सब।
ठीक है, पर चलती है।
अब के कार्यों के बारे में बात करते हैं।
एक समारोह को परिभाषित करने के क्रम में आप दुर्गंध कीवर्ड का उपयोग करें।
और फिर, स्विफ्ट में आप के लिए है प्रकार के साथ बहुत सावधान रहना होगा।
यह पैरामीटर के लिए आप प्रदान परिभाषित करने से, उदाहरण के लिए,
पैरामीटर का नाम और डेटा के तत्कालीन कॉलिन में लिखें
आपको लगता है कि उम्मीद है कि पैरामीटर स्वीकार करने के लिए।
>> इसलिए इस मामले में हम एक है प्रिंट ग्रेड गिनती बुलाया समारोह।
यह gradebook नामक एक चर स्वीकार करता है या बल्कि एक पैरामीटर gradebook बुलाया।
और हम उस gradebook उम्मीद कर रहे हैं पूर्णांकों की एक सरणी होने के लिए।
कि gradebook खाली है, हम एक बात मुद्रित करेंगे।
वरना हम संख्या बाहर प्रिंट होगा यह वास्तव में है कि ग्रेड की।
>> अब हम वापस जाने के लिए चाहते हैं कुछ मूल्य है, तो रास्ता
हम इस परिभाषा है संशोधित वास्तव में यह तीर कीवर्ड का उपयोग करने के लिए,
या यह तीर वाचक उपयोग करने के लिए।
यहाँ तो हम परिभाषित करने के लिए जा रहे हैं एक समारोह के औसत बुलाया।
हम नंबरों की सूची को स्वीकार करने के लिए जा रहे हैं।
और हम एक वापसी करने जा रहे हैं डबल, जो उम्मीद करेंगे
इस सरणी का औसत हो।
और क्रम में, आदेश में ऐसा करने के लिए वास्तव में यह औसत की गणना करने के लिए,
हम एक राशि ले जाएगा और हम करेंगे बेशक वस्तुओं के सभी को योग
इस सरणी के भीतर।
>> एक नया है कि वहाँ नोटिस पाश के लिए यहां की शैली।
हम इस बारे में स्पष्ट होना जरूरी नहीं है हर एक तत्व पर iterating,
लेकिन हम बजाय के लिए कह सकते हैं ग्रेड और gradebook, अर्थ
हर एक के लिए है कि हम इस में है कि आइटम,
इस में है कि आइटम प्रदान करते हैं चर बुलाया ग्रेड।
और मैं इसके साथ कुछ करना चाहते हैं।
इसलिए मैं इस डेटा के सभी योग करने के लिए जा रहा हूँ और वास्तव में डबल विभाजन वापसी।
>> अब फिर से यहाँ है नोटिस स्विफ्ट में पूर्णांक विभाजन की अवधारणा।
आप विभाजन को दोगुना करना चाहते हैं आप दशमलव चाहते हैं, क्योंकि
तो आप स्पष्ट होना है, नहीं बस के बारे में एक तरफ,
यह आपको अनुमति देने के लिए नहीं जा रहा है क्योंकि इस के दोनों तरफ डेटा विवश करना,
आप वास्तव में कोर्स करने के लिए है डबल्स में दोनों पक्षों
इतना है कि आप कर रहे हैं बहुत यकीन है कि बनाने के बारे में स्पष्ट
कि आप डबल विभाजन कर रहे हैं।
>> पर चलते हैं।
मैं वास्तव में accept-- करना चाहते हैं तो इसलिए इस विशेष उदाहरण में,
यह अभी भी एक आदेश है लाइन आधारित अनुप्रयोग।
और हम में से कुछ को देखने के लिए शुरू कर रहे हैं युवा भाषा की सीमाओं
उस में हालांकि हम कर सकते हैं का उपयोग करके तर्क का उपयोग
इस process.arguments, यह है अभी भी जरूरी नहीं कि साफ
हमने कभी देखा है कि बात।
लेकिन मूल रूप से मैं आपको प्रोत्साहित करते हैं एक तरह से इस कोड को देखने के लिए
और यह पता लगाने की कोशिश वास्तव में क्या चल रहा है।
>> मूलतः यह क्या हो रहा है यह है कि हम तर्क की एक सूची ले जा रहे हैं
और उन्हें मजबूर कर रहे थे पूर्णांकों, और फिर हम कर रहे हैं
मुद्रित करने के लिए एक रास्ते के रूप में उपयोग करने के लिए जा रहा हमारे ग्रेड के सभी का औसत बाहर।
चलती हे।
अब data-- की एक अन्य प्रकार है एक और डेटा सरणियों के बजाय टाइप
बहुत हैं, जो कहा जाता है, शब्दकोशों, टेबल या हैश नक्शे हैश के समान
और भी करने के लिए इसी तरह की हैं पीएचपी का साहचर्य arrays।
इसलिए वे धारणा है कुंजी और मूल्यों की।
>> और वे भी साथ में परिभाषित कर रहे हैं इस वर्ग कोष्ठक अंकन,
लेकिन फर्क है शब्दकोशों है कि
वर्ग कोष्ठक, एक पेट के अंदर की।
और पेट के डेटा को अलग करता है उस कुंजी और मूल्य है टाइप करें।
तो इस मामले में, मैं पैदा करने के लिए जा रहा हूँ एक शब्दकोश कुछ ग्रेड स्वीकार करने के लिए।
और यह होने जा रहा है प्रकार स्ट्रिंग की: पूर्णांक,
जिसका मतलब है कि सभी चाबियाँ, तार होने जा रहे हैं
और उन के मूल्यों के सभी चाबियाँ पूर्णांकों होने जा रहे हैं।
>> क्या इसका मतलब यह है कि मैं कर सकता है फिर विशिष्ट डेटा को संदर्भित
मैं नहीं बल्कि उन कुंजियों का उपयोग करना चाहते हैं कि मैं जैसे संख्यात्मक सूचकांकों का उपयोग कर से
एक मानक सरणी के लिए होगा।
अब वहाँ है, चलो देखते हैं एक महत्वपूर्ण बात यह है कि
मैं के बारे में भी उल्लेख करना चाहता हूँ कि कोड के इस विशेष अनुक्रम।
और कहा कि है कि वहाँ है डेटा की एक अन्य प्रकार,
या यों कहें कि इस वहाँ है कि डेटा के विचार
स्विफ्ट के भीतर निहित optionals बुलाया।
>> और क्या optionals इसका मतलब है यह तथ्य यह मानता है कि
कि कभी कभी आप के लिए नहीं जा रहे हैं आप वास्तव में उम्मीद है कि डेटा मिलता है।
कि चलो is-- द्वारा और इसलिए मैं क्या मतलब कोड का यह क्रम पर एक नज़र रखना
की सब से अधिक जो दोहराता इस कोड को पारित कर दिया गया है कि तर्क
और, उन्हें बदलने की कोशिश करता है की कोशिश करता है तार की एक किस्म में विभाजित करने के लिए,
यह एक बहुत ही स्वीकार करता है, क्योंकि तर्क के विशेष प्रकार के।
और फिर यह ज़बरदस्ती करने की कोशिश की जा रही है संख्या का प्रतिनिधित्व करते हैं कि तार
ग्रेड रहे हैं कि पूर्णांकों में, मैं तो गणना कर सकते हैं कि।
>> तो बुनियादी तौर पर मैं जा रहा हूँ इस विभाजन समारोह का उपयोग करने वाले
भीतर मौजूद है स्विफ्ट मानक पुस्तकालय।
मैं इस बारे में पारित करने के लिए जा रहा हूँ मैं विभाजित करना चाहते हैं कि स्ट्रिंग।
और फिर इस प्रयोग में कायरता वाक्य रचना की तरह है, जो
हम हूँ अगर मुझे नहीं पता हम करने के लिए मिलता है, लेकिन हो सकता है
वास्तव में सटीक निर्दिष्ट करेगा हम कम से विभाजित करना चाहते हैं कि चरित्र।
तो क्या यह वास्तव में की तरह दिखता है?
पर एक नज़र रखना वास्तव में इस कोड चल रहा है।
>> उदाहरण के लिए तो, चलो मेरे पास कहने दो एक प्रश्नोत्तरी और मैं उस पर 50 मिला है।
और मैं एक PSETs है और मैं उस पर एक सौ मिला है।
और मैं एक और वहाँ got-- प्रश्नोत्तरी और मैं उस पर एक 40 मिला है।
मैं हिट दर्ज करें, और अंत में क्या क्या होगा यह क्या कर रहा है यह है कि
इन मापदंडों ले जा रहा है, बंटवारे इन कोलन में तार,
है कि वहाँ पहचानने हर एक में दो तत्वों,
और यह अनिवार्य है प्रत्येक का ट्रैक रखने।
>> इसलिए मैं अपने शब्दकोश में जिसका एक प्रश्नोत्तरी है, मूल्य, संख्या 50 द्वारा प्रतिनिधित्व किया है
मैं 100 के मूल्य है कि एक PSET है और 40 के एक मूल्य है, जो एक प्रश्नोत्तरी एक।
फिर बाद में कोड मैं में वास्तव में उन मूल्यों का औसत
और की चाबी के सभी सूची उस विशेष शब्दकोश।
लेकिन यह महत्वपूर्ण है आप देख सकते हैं कि इतने
क्या हो रहा है, वह यह है कि क्या हम क्या करना चाहते हैं इस स्ट्रिंग ले रहा है
और, इस चरित्र पर विभाजित हम इस विभाजन के साथ फिर से कर सकते हैं जो
इस तरह का उपयोग करते हुए समारोह यहां मौजूद है कि दिलचस्प सिंटेक्स।
>> अभी के लिए यह ठीक है कि मान।
हम इस पर अधिक गौर करेंगे बस थोड़ी देर में।
लेकिन अब एक दिलचस्प नहीं है पहलू यह है कि हम वास्तव में
इस कन्वर्ट करने के लिए कोशिश करना चाहता हूँ एक पूर्णांक में स्ट्रिंग।
लेकिन अन्य भाषाओं में क्या हो सकता है
हम शायद कोशिश करेगा कि यह करना है और या तो वापस पाने के लिए
प्रहरी के कुछ प्रकार नकारात्मक एक तरह मूल्य
या शायद एक अशक्त या ऐसा कुछ।
या हो सकता है कि यह सिर्फ एक त्रुटि के कारण होता है।
और हम करना होगा तो उस त्रुटि को पकड़ने
और फिर ऐसा करने की कोशिश कुछ तथ्य पर आधारित
इस रूपांतरण है कि एक पूर्णांक करने में विफल रहा।
यही कारण है कि जहां इस विचार है optionals के अंदर आता है।
आप वास्तव में एक डेटा प्रकार बना सकते हैं एक पूर्णांक प्रश्न चिह्न, उदाहरण के लिए है।
यही कारण है कि इस पूर्णांक मतलब यह है कि वास्तव में, वैकल्पिक है।
और क्या होगा यह हो सकता है एक पूर्णांक होते हैं, या यह नहीं हो सकता है।
यह वास्तव में, यह दूसरी हो सकती है विचार, पूरी तरह Nill बुलाया।
जिसमें कि मतलब है कि वहाँ जो भी इस में कोई मूल्य नहीं है।
यह भी शून्य नहीं है अभी कोई मूल्य नहीं है।
प्रतिनिधित्व बिल्कुल कोई मूल्य नहीं है।
>> और कहा कि इस लाइन 71 क्या कर रहा है है।
यह है कि मैं कह रहा है कि एक मूल्य निर्धारित करने की कोशिश करना चाहते हैं,
के बराबर ग्रेड नामक एक चर, एक पूर्णांक में इस स्ट्रिंग के रूपांतरण।
इसलिए मैं इस स्ट्रिंग ले लिया है, यह पहला घटक है,
या बल्कि दूसरे घटक है, इस वजह से
शून्य से, अनुक्रमित है मैं विभाजित कर दिया है कि स्ट्रिंग।
और मैं कनवर्ट करना चाहते हैं एक पूर्णांक के लिए कि।
लेकिन यह हमेशा आगे नहीं बढ़ सकता है आम तौर पर, क्योंकि कल्पना
प्रकार के बजाय, क्या होगा अगर एक नंबर, मैं asdf जैसे कोर्स के प्रकार।
>> यह विफल करने के लिए जा रहा है।
यह वास्तव में होना करने के लिए नहीं जा रहा है एक पूर्णांक के लिए कि परिवर्तित करने में सक्षम
मैं उम्मीद करेंगे।
तो बजाय बंद किक से किसी त्रुटि के कुछ प्रकार,
हम एक वैकल्पिक का यह विचार है।
और उस का उपयोग कर इसका मतलब है कि मैं कह सकता हूँ कि इस प्रश्न चिह्न,
ठीक है, यह मैं ले जा सकते हैं कि संभव है यह, एक पूर्णांक में परिवर्तित
और एक चर में डाल दिया, जो भी एक पूर्णांक किया जाएगा।
यदि हां, तो इसका मतलब है कि इस सफल रहा था कि
और के इस पहले भाग ब्लॉक जारी रख सकते हैं।
>> अन्यथा, यह विफल रहा है।
Grade-- में कोई मूल्य नहीं है या बल्कि मौजूदा में कोई मूल्य नहीं है,
और मैं वास्तव में करने के लिए प्रयास करने के लिए है इस त्रुटि स्थिति को संभाल।
आप यह देखने के लिए जा रहे हैं प्रश्न चिह्न सभी समय
स्विफ्ट में और स्विफ्ट के लिए उदाहरण कोड में।
और वास्तव में Nill ऑपरेटर, इस तरह प्रश्न चिह्न का, optionals हिस्सा है,
एक शायद होने जा रहा है अधिक कठिन चीजों में से
की तरह चारों ओर अपने सिर पर लपेट आप वास्तव में इसे साथ काम करते हैं।
>> अब यह समझ कर सकता है।
और वास्तव में, मैं जब था इस के लिए नमूना कोड लिखने,
निश्चित रूप से मैं समझ गया क्या चल रहा था
लेकिन अभी तक मुझे पकड़ा आश्चर्य की बात तो हर बार
मुझे लगता है कि मिल जाएगा जब कुछ डेटा वास्तव में था
एक शून्य संस्करण, एक वैकल्पिक संस्करण डेटा की मैं उम्मीद कर रहा था कि।
तो बस एहसास है कि आप अगर एक वैकल्पिक संस्करण है
आपको लगता है कि अनपैक करने के लिए है इस बॉक्स से डेटा।
>> तो यह I-- आप अगर सोच भी तरह तरह की है एक बॉक्स है और यह कुछ होता है।
और तुम क्या करने की जरूरत सवाल पूछने के लिए है,
यह संभव है कि वास्तव में इस बॉक्स मैं देख रहा हूँ कि डेटा में शामिल है?
यदि हां, तो उस डेटा को बाहर खींचने के लिए और मौजूदा इस चर में डाल दिया।
यदि नहीं, तो मैं बस करने के लिए है इस बॉक्स की सामग्री उपेक्षा
कुल मिलाकर यह क्योंकि सचमुच कुछ भी नहीं होता है।
>> इस पर कोई सवाल?
ठीक है, चलो इस से दूर चलते हैं कमांड लाइन आधारित बात की तरह
और कम से तलाश शुरू प्रौद्योगिकी के कुछ
Xcode के लिए हमें करने के लिए प्रदान करता है कि खेल के मैदान के रूप में।
इसलिए का एक बहुत कुछ है यहां स्विफ्ट के साथ क्षमता।
और तुम Xcode और इसे खोलने अगर आप क्या करना चाहते हैं आप से पूछता है,
आप खेल के मैदान खोल सकते हैं और बस के चारों ओर खेलने
विभिन्न संरचनाओं के बहुत से भाषा की और पहलुओं
आप भी छू शुरू होने से पहले iOS के एसडीके या मैक एसडीके।
>> तो यह मामला है, मैं have-- हम कहते हैं कि मैं एक अपेक्षाकृत काल्पनिक उदाहरण है
यहाँ, लेकिन मेरे साथ के रूप में हम की तरह सहन के इस उदाहरण के माध्यम से काम करते हैं।
हम एक बहुत कुछ करना है कि हम कहते हैं कि एक निश्चित मूल्य के साथ exponents की,
जैसे हम हम करने की आवश्यकता के लिए जा रहे हैं पता है कि उदाहरण के लिए, वर्ग शक्तियों का एक बहुत कुछ है।
इसलिए हम कुछ मूल्य लेने के लिए जा रहे हैं एक्स, हम यह वर्ग के लिए जा रहे हैं,
हम कुछ मूल्य लेने के लिए जा रहे हैं Y और हम यह वर्ग के लिए जा रहे हैं।
इतने पर और आगे।
>> अब हम वास्तव में सिर्फ एक बना सकता है इस के लिए 2 समारोह की शक्ति, है ना?
इसलिए हम दो समारोह की एक शक्ति का निर्माण करेंगे।
हम एक डबल को स्वीकार करेंगे।
हम output-- देंगे या हम करेंगे एक डबल प्रकार वापसी।
हम इस परिणाम को ले जाऊँगा और फिर दो बार के लिए
हम वास्तव में परिणाम है, क्या ले जो एक की कीमत के लिए प्रारंभ किया गया था,
और एक्स से गुणा करें।
तो संक्षेप में हम यहाँ एक्स टाइम्स एक्स है।
>> और यदि ऐसा है तो मैं के रूप में हम कर सकते हैं, तो कर सकते हैं , 2 की, भागो शक्ति इस लेने की उम्मीद है,
यह करने के लिए उपलब्ध कराने के कुछ डेटा, मैं 2.0 पसंद है।
और हम यहाँ 4.0 परिणाम देखने को मिलता है।
3.2 और हम पर दो की शक्ति भागो हमारे परिणाम, 10.24 देखने को मिलता है।
अब तक तो अच्छा, ठीक है?
अब हम ठीक है, ठीक है, सोच रहे हैं।
अब मैं वास्तव में करने की जरूरत है तीन की शक्तियों का एक बहुत कुछ है।
इसलिए मैं इस कोड के सभी कॉपी पेस्ट कर देंगे, से समारोह का नाम परिवर्तित
बिजली की 3, और सब कुछ करने के लिए 2 की शक्ति इस मान के अलावा एक ही हो जाएगा
यहाँ, इस रेंज, 1 ... 2।
>> तो बजाय दोहरा से इस लूप दो बार,
मैं इस लूप तीन बार दोहराना चाहते हैं।
तो मैं बस से उस मूल्य को बदलने एक 3-- करने के लिए है या नहीं बल्कि 2-3।
तो फिर, एक ही कोड, कि केवल परिवर्तन है।
अब यह भी काम करता है।
दो में से कुछ के मूल्य में उपलब्ध कराई गई तीन की शक्ति।
हम 8 मिलता है।
तो दो घन।
और 3.2 घन 32.768 है।
और अब तक तो अच्छा है, है ना?
लेकिन उम्मीद है कि यह एक छोटी सी है आप के लिए एक लाल झंडा के सा
उस में हम अब है कोड के कुछ दोहराव
कुछ बहुत ही मामूली लिए छोड़कर अगले करने के लिए एक से बदल जाते हैं।
तो वहाँ कोई रास्ता है कि हम सरल करने के लिए सक्षम हो सकता है
इस समस्या है, जहां हम वास्तव में कर सकते हैं, चलाते समय पर, कुछ बाहर आंकड़ा,
हमें करने के लिए है कि कुछ समारोह में प्रदान ठीक है कि हम चाहते की शक्ति।
>> और के इस विचार नहीं है सच है, जो closures, वास्तव में
स्विफ्ट के संदर्भ में महत्वपूर्ण है, और कई अन्य भाषाओं में भी।
लेकिन शायद आप देखेंगे यह स्विफ्ट में तो और अधिक इस्तेमाल किया
यह एम्बेडेड है क्योंकि भाषा के भीतर
आप अन्य में से होगा यह भी आधुनिक भाषाओं।
एक बंद करने के विचार बहुत यह वह जगह है, है कि हम उस
के लिए होती है कि एक समारोह हो सकता है एक सामान्य समारोह में, एक सामान्य शक्ति हो
समारोह का।
>> और इस समारोह को स्वीकार करने के लिए जा रहा है इस प्रतिपादक है कि हम वास्तव में
बनाना चाहते हैं।
तो उदाहरण के लिए, बहुत पहले उदाहरण के लिए, हम 2 की शक्ति चाहता था।
इसलिए हम की शक्ति प्रदान करेगा और फिर कोष्ठकों 2 में।
और अब क्या नोटिस यह वास्तव में वापस आती है।
यह एक प्राइमर का एक इनपुट लेता है एक पूर्णांक है कि कहा जाता है, वाई,
और यह देख रहे हैं इस पागल रिटर्न parentheses-- कोष्ठक में बात
डबल और फिर डबल तीर।
>> क्या इसका मतलब यह है कि मैं कर रहा हूँ वह यह है कि एक समारोह में लौटने के लिए जा रहा है।
मैं वापस नहीं कर रहा हूँ डेटा की एक अन्य प्रकार है, मैं कर रहा हूँ
वास्तव में एक समारोह में लौटने वह यह है कि, इस पैरामीटर है
स्वीकार करता इनपुट के रूप में एक डबल और वापसी मान के रूप में एक डबल outputs।
और एक परिणाम के रूप में, क्योंकि अब मैं बुलाया है की शक्ति, वाई के लिए कुछ मूल्य में गुजर रहा है,
और मुझे लगता है कि यह अन्य पैदा कर रहा हूँ है कि वहाँ function-- नोटिस
बनाया जा रहा है कि एक अन्य समारोह this-- के अंदर मैं क्या कर रहा हूँ
मैं तो बदल सकते है कि मूल्य, कि एक
मैं बदल गया था कि मूल्य 2-3, अब मैं यह y बनाते हैं।
>> और यह बनी हुई है।
इसलिए मैं शक्ति कहते हैं कि हर बार की, अनिवार्य रूप से क्या होता है
मैं एक समारोह लौटे मिलता है।
मैं परिभाषित किया है कि यहाँ नोटिस एक नया चर वर्ग कहा जाता है।
मैं, की शक्ति के लिए यह बराबर निर्धारित किया है की शक्ति के लिए इस मान 2 प्रदान की है।
और क्या इस लौटे समारोह है।
इसलिए वर्ग, चर वर्ग, प्रकार समारोह का अब है
कि this-- उफ़, ऊपर स्क्रॉल है एक इस हस्ताक्षर है कि थोड़ा bit--,
एक डबल एक डबल और उत्पादन में स्वीकार करते हैं।
>> तो अब मैं क्या कर दिया मैं अनिवार्य रूप से दिया है
एक समारोह में कहा जाता वर्ग बनाए गए किसी भी मूल्य स्वीकार करता है और यह वर्ग जाएगा।
हम यहाँ नीचे देखो क्या होता है सकते हैं।
उदाहरण के लिए वर्ग तीन, मैं जा रहा हूँ मतलब है मूल्य 3 लेते हैं और इसे चुकता करने के लिए।
तो वास्तव में यह कैसे काम करता है?
मैं 2-- की शक्ति से पारित जब जब मैं समारोह के इस शक्ति के रूप में 2 पास,
इस चर y है कि मूल्य 2 के साथ बसा।
और उस तरह की स्मृति में आयोजित किया जाता है।
उस तरह का में आयोजित की तरह है कहीं कंप्यूटर में राज्य,
हम वास्तव में परवाह नहीं है कैसे या जहां इस बिंदु पर।
>> लेकिन मैं इस समारोह में वापसी exponentiate बुलाया।
और फिर, यह वास्तव में कोई फर्क नहीं पड़ता इस समारोह में क्या कहा जाता है,
हम वास्तव में, यह कुछ भी कॉल कर सकते हैं एक डबल स्वीकार करता है और एक डबल रिटर्न
लेकिन इसके अंदर इस मान Y का उपयोग करता है।
तो यह इस समारोह है, भले ही है कि इस exponentiater समारोह
करने के लिए वापस लौटा दिया गया है मेरी मैं वर्ग कहा जाता है कि चर,
यह इसके भीतर समाहित किया गया है Y क्या था की इस धारणा।
और यह है कि याद है।
>> तो हर बार मुझे लगता है कि समारोह फोन है कि अब वर्ग कहा जाता है, यह है कि का उपयोग करता है।
लेकिन यह भी मैं कर सकता हूँ कि इसका मतलब है का उपयोग करते हुए एक और परिवर्तनीय बनाने
की एक अलग शक्ति।
तो मुझे लगता है के लिए, एक घन चर बना सकते हैं उदाहरण के लिए, यह करने के लिए 3 की शक्ति प्रदान करते हैं।
अब क्यूब वास्तव में कुछ ले जाएगा मूल्य और घन कि और यह वापसी।
तो हम है कि मैं देख सकते हैं उस के बाहर एक मूल्य 8।
>> लेकिन यह है कि मूल्य Y नहीं है वे कर रहे हैं, क्योंकि बदल
स्वतंत्र चर की तरह में आयोजित की।
वे एक तरह से आयोजित कर रहे हैं स्मृति में स्वतंत्र रिक्त स्थान।
तो घन हमेशा होगा तीन की शक्ति के लिए एक्स।
और वर्ग हमेशा होगा दो की शक्ति, एक्स जो
उस वर्ग हमेशा जाएगा मतलब मैं उम्मीद के रूप में वर्ग नंबर,।
और घन हमेशा cubed जाएगा नंबर, मैं उम्मीद के रूप में।
यह भी मतलब है कि कभी कभी आप कर सकते हैं कि कायरता देख वाक्य रचना के कुछ प्रकार प्राप्त
जहां आप बहुत कम की शक्ति है यहाँ स्क्रीन के नीचे, 5 की शक्ति।
आप परिणाम में गुजरती हैं।
आप पर है कि उस समारोह कॉल नंबर 4 के साथ लौटा दिया गया।
और तो क्या अनिवार्य रूप से इस पांचवें सत्ता में 4
हम वहाँ परिणाम देख सकते हैं।
मेरे साथ अभी तक?
>> इसलिए इस विचार, एक बंद करने को कहा जाता है हम मूल रूप से क्या कर रहे हैं, क्योंकि
हम encapsulating रहे है कुछ डेटा प्रकार का into--
इस डेटा enclosing की हम कर रहे हैं और एक समारोह में
इस समारोह का पुन: उपयोग कर रहा है।
अब इस वाक्य रचना हालांकि वास्तव में यह कर सकते हैं एक बड़ी राशि सरल किया।
और संभावना के बहुत सारे है इस सरलीकरण के लिए स्विफ्ट में।
और कहा कि किस प्रकार का है बाद में लोगों को वास्तव में देखने के लिए।
तो उदाहरण के लिए 7b में, हम इस सटीक एक ही कोड ले।
>> लेकिन अब के बजाय वास्तव में एक समारोह को परिभाषित
की इस शक्ति के अंदर समारोह और इसे एक नाम दे,
और उसके बाद नाम वापस उस समारोह की जो
उसके बाद के हिस्से के रूप में इस्तेमाल किया जाता है इस बंद करने के बजाय, हम कर रहे हैं
बस इसे सरल करने के लिए जा रहा है।
हम इस समारोह में नाम होने की जरूरत नहीं है।
तो यह एक की अवधारणा है गुमनाम समारोह जहां हम फिर से कर सकते हैं
यहाँ कोष्ठक में, इनपुट के रूप में स्वीकार करते हैं, प्रकार डबल की है जो चर एक्स।
>> हम प्रकार डबल वापस करने के लिए जा रहे हैं।
और फिर कीवर्ड, एन, है इस समारोह की शुरुआत।
तो इस बात का है कि सभी को नोटिस घुंघराले कोष्ठक के भीतर है
और हम एक परिभाषित कर रहे हैं गुमनाम यहां कार्य करते हैं।
बस एक आसान तरीका सटीक एक ही बात को परिभाषित।
ठीक है?
लेकिन रुकिए, स्विफ्ट वास्तव में हमें की अनुमति देता है आगे जाने के लिए और भी अधिक सरल बनाने के लिए,
वास्तव में हम नहीं है क्योंकि इस पैरामीटर है कि परवाह
किसी विशेष बात यह नाम दिया है।
यह वास्तव में कुछ भी कहा जा सकता है और हम अभी भी है कि पहली पैरामीटर का उपयोग कर सकते हैं।
>> तो वास्तव में इस खास नहीं है गुमनाम कार्यों में डेटा के प्रकार,
के इस विशेष का नाम नहीं है गुमनाम कार्यों में चर
साथ कि शुरू डॉलर के हस्ताक्षर और प्रतिनिधित्व
पैरामीटर नंबर, शून्य इस समारोह के लिए, अनुक्रमित।
तो क्या चल रहा चीजों की एक जोड़ी है।
यहाँ मैं तो एक वापसी के लिए जा रहा हूँ, और एक समारोह का प्रतिनिधित्व घुंघराले गले लगा,
सही?
>> मैं परिभाषित किया है नहीं है नोटिस पैरामीटर प्रकार या वापसी प्रकार।
यह वास्तव में निष्कर्ष निकाला जा सकता है हस्ताक्षर की वजह से
इस मूल समारोह का।
इसलिए हम समाप्त कर सकते हैं एक संभावना के रूप में है।
लेकिन यह भी मैं करने के लिए डॉलर के हस्ताक्षर शून्य उपयोग कर सकते हैं है कि यह पहली पैरामीटर का प्रतिनिधित्व
इस अनाम समारोह में पारित कर दिया।
तो इसे और भी अधिक सरल बनाने।
ठीक है?
अब तक सब ठीक है?
>> अब यह इस type-- है आप करते हैं इस डॉलर के हस्ताक्षर शून्य याद
हम इस घुंघराले गले में देखा था कि हम बस थोड़ी देर में देखा था कि
पहले इस स्विफ्ट छह उदाहरण में?
यह यहीं था।
कि वास्तव में नोटिस क्या हम देख रहे हैं,
हम पारित किया है वह यह है कि इस विभाजन समारोह में
एक गुमनाम समारोह है कि पहली पैरामीटर की जाँच करता है
यह पेट के प्रतीक के बराबर होती है यह देखने के लिए।
और है कि वास्तव में क्या है हो रहा है कि सभी है
हम वापसी doing-- रहे कीवर्ड निहित है
इस case-- में हम लौट रहे हैं हम तुलना कर रहे हैं, जहां इस मूल्य
के खिलाफ पहली पैरामीटर इस चरित्र बृहदान्त्र।
और तो उस तरह का इस demystifies।
और तुम इस निर्माण को देखने के लिए जा रहे हैं स्विफ्ट वाक्य रचना में एक बहुत कुछ है, इसलिए कि रख कर
आप कर रहे हैं, जब मन में इस पर एक नज़र ले रही है।
अब हम से दूर प्राप्त कर सकते हैं रेल एक छोटा सा
और पता चलता है कि वास्तव में फैंसी जाना स्विफ्ट की शक्ति का भी कुछ ज्यादा है।
तुम भी कुछ देख सकते हैं नमूना कोड में इन की।
मैं जा रहा हूँ तो इसलिए आप को यह दिखाने के लिए।
>> असल में हम क्या कर सकते हैं पहला यह है कि, के सभी, यह मेरे लिए अनावश्यक की तरह था
का है कि शक्ति के सभी लागू करने के लिए कोड आप डार्विन आयात क्योंकि अगर
पुस्तकालय, यह वास्तव में एक समारोह में शामिल आप के लिए यह करता है कि पाउ बुलाया।
इसलिए हम इसे सरल कर सकते हैं, यहां तक ​​कि अधिक से बस अब हमारी शक्ति को समारोह
जहां हम एक अद्भुत एक लाइनर हो बस इस अनाम समारोह लौटने कि
इसकी के रूप में डॉलर के हस्ताक्षर 0 स्वीकार करता है इसके प्रतिपादक के रूप में आधार और y।
>> लेकिन हम वास्तव में प्राप्त कर सकते हैं जब हम सच में फैंसी
स्विफ्ट एक एहसास है कि हुड के तहत बिजली की बहुत।
ऑपरेटरों के एक बहुत है कि हम साथ काम कर रहा है
प्लस चिन्ह और विभाजन प्रतीकों और इन सब बातों है कि आप सामान्य रूप से
डेटा प्रकार के साथ के साथ काम एक प्रोग्रामिंग भाषा में,
वास्तव में स्विफ्ट में एक्स्टेंसिबल हैं।
तो क्या हुआ कि कि हम में इसका मतलब है हमारे अपने ऑपरेटरों को परिभाषित कर सकते हैं।
>> तो अब मैं इस सब में टाइपिंग के थक गया हूँ पाउ और फिर एक कोष्ठकों और फिर
आधार।
मुझे लगता है कि ऐसा करने के लिए नहीं करना चाहती।
मैं वास्तव में एक है चाहता हूँ मुझे लगता है कि ऐसा करने के लिए अनुमति देता है कि ऑपरेटर।
इसलिए मुझे लगता है कि मैं चाहता हूँ स्विफ्ट बता सकते हैं एक ऑपरेटर, स्टार बनाने के लिए
मैं कैरेट का उपयोग नहीं कर सकते हैं जिस तरह से star-- कैरेट एक ऑपरेटर है कि क्योंकि
पूरी तरह से कुछ नहीं करता है।
इसलिए मैं सॉर्ट करने के लिए नहीं करना चाहते उस के साथ टकराने।
और इसलिए तुम एक किस्म में क्या देखते हैं अजगर सहित भाषाओं की,
स्टार स्टार ऑपरेटर की तरह है exponents के प्रतिनिधित्व करने के लिए।
>> तो यह है कि एक ही कारण है यही कारण है कि मैं ऐसा कर चुका हूँ।
और यह होने जा रहा है एक इन्फ़िक्स प्रकार ऑपरेटर।
और मैं प्रदान करने के लिए है यह कुछ जानकारी के लिए
इस की वरीयता के बारे में ऑपरेटर तो यह बाईं साहचर्य है।
यह अपेक्षाकृत तरह है उच्च वरीयता की तुलना
योग या गुणा करने के लिए।
यह उच्च पूर्वता है उन सभी की तुलना में।
इतने पर और आगे।
और फिर मैं को परिभाषित समारोह है कि वास्तव में
इस ऑपरेटर क्या करती लगती हैं।
तो मैं एक छोड़ दिया है यह सोचते हैं कि हाथ की ओर और दाहिने हाथ की ओर,
जो होगा शायद एक इस के लिए बेहतर चर नाम।
बाएं हाथ की ओर और दाहिने हाथ की ओर।
मैं तो की इस शक्ति ले जा सकते हैं दाहिने हाथ की ओर करने के लिए बाएं हाथ की ओर
और कहा कि मूल्य वापसी।
तो अब यह सुपर प्यारा है।
हम सभी को है 2 स्टार स्टार 3 है और कहा कि, तीसरी शक्ति के लिए 2 है
और हम 8 के एक मूल्य मिलता है।
2 स्टार स्टार 10 के लिए 2 है 10 वीं शक्ति है, हम 1024 से मिलता है।
>> तो अब समारोह के बारे में हमारी शक्ति, जो फिर से अलग है,
क्योंकि इसके पीछे पूरे विचार हम एक समारोह है कि था कि
हमेशा कुछ मान लेता है और it-- पलता या यों कहें
एक ही सत्ता में प्रतिपादक लेता है।
तो अब यह भी सरल है।
तो अब यह सिर्फ डॉलर है 0 सितारा सितारा Y साइन इन करें।
हम भी अब पाउ का उपयोग करने के लिए नहीं है।
>> ठीक है, जो खो दिया है?
हम ठीक कर रहे हैं?
इस सामान पर कोई सवाल?
हाँ?
>> दर्शक: जब you-- [अश्राव्य] Y डबल की दुर्गंध शक्ति।
तो तुम एक समारोह लौट रहे हैं।
डेनियल Armendariz: Y डबल की दुर्गंध शक्ति।
अरे हाँ, मैं नहीं जानता Y संख्या क्या कर रहे हैं।
उस के बारे में क्षमा करें।
>> दर्शक: क्यों तुम लौट रहे हैं एक समारोह [अश्राव्य] बाड़े।
डॉलर शून्य स्टार नहीं है स्टार Y [अश्राव्य]
उस के साथ कि ऑपरेटर लगता है डबल [अश्राव्य] डबल लौटने?
>> डेनियल Armendariz: तो चलो मुझे अपने सवाल का जवाब
मैं यह समझने के लिए और क्या आप मुझे बता सकते हैं कि कैसे मैं अपने प्रश्न समझ में नहीं आया है।
तो इस का निर्माण, घुंघराले ब्रेस डॉलर के हस्ताक्षर शून्य स्टार स्टार वाई,
एक समारोह है।
और यह है कि एक पैरामीटर स्वीकार करता है इस डॉलर के हस्ताक्षर शून्य से प्रतिनिधित्व किया।
वापसी कीवर्ड इस में निहित है बहुत ही कम, गुमनाम समारोह सिंटेक्स।
>> जो अनिवार्य रूप से इसका मतलब है कि क्या यह कह रहा है
मैं एक परिभाषित कर रहा हूँ वह यह है कि function-- और फिर मैं हूँ
सिर्फ यह कह something-- मैं कुछ मूल्य y है जहां।
मैं डबल है, जो y है।
और मैं एक डबल लौट रहा हूँ।
और मुझे लगता है कि वापसी के भीतर है खेद y--, मैं इस y-- एक्स कहा जाता है नहीं करना चाहिए।
ओह प्रिय, ओह प्रिय, ओह प्रिय।
X-- nope-- स्टार स्टार Y।
>> तो यह सिर्फ एक है इस बात का सरलीकृत संस्करण।
और तो कारण है कि मैं डॉलर है कि साइन शून्य इस संलग्नक का उपयोग करता है
मैं अब और नहीं है कि इसका मतलब है ऐसा नहीं रह गया पाउ टाइप करें, या करने के लिए
मैं कुछ करना है जैसे तीन सितारा सितारा 2।
मैं सिर्फ एक ही हो सकता है समारोह में कहा जाता वर्ग
कि हमेशा के लिए ले जाएगा इनपुट के रूप में कुछ मूल्य
और वास्तव में उस के वर्ग में लौटने।
>> तो बंद करने का पूरा उद्देश्य है बस की तरह इस तथ्य encapsulate करने के लिए
मैं हमेशा जब भी Y उपयोग करना चाहते हैं मैं सत्ता के रूप में उस समारोह कॉल
इस प्रतिपादक जब ले।
तो, एक तो लौटने स्वीकार करता है कि समारोह
बेस है, जो एक डबल, और उस प्रतिपादक का परिणाम लौटने
यहाँ कुंजी है।
और कहा कि मुख्य अंतर है।
एक पनपने का सिर्फ एक सा हो गया था।
>> यह किसी भी अलग नहीं है पूर्व उदाहरणों की तुलना में,
लेकिन इसके बारे में सिर्फ एक सा हो गया था एक हम वास्तव में कर सकते हैं पनपने
स्विफ्ट में एक ऑपरेटर बना और वास्तव में इसके साथ सामान करना,
जो एक अच्छी बात की तरह है।
मैं आपके सवाल का जवाब दिया?
मीठा।
और कुछ हम आगे बढ़ने से पहले?
ठीक है।
>> अब इस तरह की भी जन्म देती है सवाल है, that-- अच्छी तरह से ठीक है
अब हम क्षमता के लिए है कार्यों लौट जा।
हम यह भी डेटा के रूप में कार्य करता है पारित कर सकते हैं या अन्य कार्यों के लिए मापदंडों के रूप में?
और वास्तव में हम कर सकते हैं।
तो चलो हम है कि हम कहते हैं एक ही कोड के सभी।
हम वर्ग चर कि इस कोड वर्ग जाएगा।
और हम घन चर कि कुछ डेटा घन जाएगा।
और हम वास्तव में लागू करना चाहते हैं संख्या की एक विस्तृत श्रृंखला के लिए।
>> तो हम क्या करने के लिए परीक्षा हो सकती है क्या, जाहिर है, निश्चित रूप से मान्य है, जो
संख्या की इस सूची से पुनरावृति करने के लिए है और मेरे कार्यों वर्ग और घन लागू
और परिणाम के रूप में दो नए सूचियों मिल चुकता इस मूल सूची रहे हैं कि
और क्रमश: cubed।
पूरी तरह से स्वीकार्य।
लेकिन बात यह है कि क्या हम यहाँ देखें कि हमारे पास है
फिर, हमारे कोड के दोहराव।
और शायद वहाँ एक मौका है हमारे लिए यह एक छोटा सा सरल करने के लिए।
हमारे लिए एक रास्ता था, तो क्या वास्तव में हमेशा कुछ सूची से पुनरावृति
और सिर्फ इस जादुई करने के लिए पारित एक चर कि समारोह
एक समारोह का प्रतिनिधित्व करता है हम लागू करना चाहते हैं
इस सूची में हर एक आइटम के लिए।
इस की अवधारणा को पेश करती है क्या उच्च आदेश कार्यों कहा जाता है।
और कहा कि क्या यह अनिवार्य है है, हम एक समारोह बना सकते हैं।
>> और इस मामले में यह कहा जाता है एक मैपर, बस, इसे एक नाम देने के लिए
हर खत्म मानचित्रण एक सूची में एक आइटम।
मैं कहां से एक सूची ले और मैं एक समारोह में ले।
और उस समारोह, ज़ाहिर है, एक निश्चित हस्ताक्षर है।
यह एक पैरामीटर डबल के रूप में स्वीकार करता है और यह उत्पादन एक डबल होगा।
और के पूरे परिणाम इस समारोह में जा रहा है
प्रकार डबल की है कि एक नई सूची हो।
ठीक है?
>> और मैं क्या करने जा रहा हूँ इस समारोह च लागू करने के लिए है
मेरी सूची में प्रत्येक तत्व के लिए।
और reply-- और नहीं बल्कि इस नए लौटने वास्तव में अच्छा है, जो एक परिणाम के रूप में सूची।
अब मैं आसपास कार्यों पारित कर सकते हैं।
और उच्च आदेश के इस विचार कार्यों वास्तव में महत्वपूर्ण है।
और इस मैपर सिर्फ सच है गरीब आदमी का कार्यान्वयन
बनाया गया है कि एक समारोह के स्विफ्ट में नक्शा बुलाया।
और यह ठीक इस करता है शायद यह भी एक छोटा सा बेहतर है।
>> यह बस की तरह एक सामान्य है सरलीकृत संस्करण है कि
हमें देखने की अनुमति देता यहाँ लागू होता है कि अवधारणा।
अब जिस तरह से देखने के लिए कि मैं वास्तव में मेरे वर्ग आवेदन कर सकते हैं
और मेरे घन कार्यों संख्या की इस सूची में।
मैं अपने मैपर चलाते हैं।
मैं यह करने के लिए संख्या की मेरी सूची प्रदान करते हैं।
मैं यह करने के लिए प्रदान करते हैं उस समारोह हो रहा है
उन सूचकांकों में से प्रत्येक को लागू करने के लिए।
और यह होने जा रहा है एक परिणाम के रूप में उत्पादन।
और मुझे लगता है कि मैं चुकता कर दिया है कि देखने के लिए मिल जाएगा और एक परिणाम के रूप में मेरा नंबर cubed।
>> और निश्चित रूप से मैपर ले जाएगा गुमनाम समारोह के किसी भी तरह।
हम भी मैं बना लिया है कि देख सकते हैं एक नया गुमनाम समारोह है कि
बस कुछ पैरामीटर लेता है और यह 2 से विभाजित करता है।
और हम, मैं वास्तव में, है कि देख सकते हैं बजाय 2 से मेरी सूची में बांटा गया।
बिंदास?
अब तक सब ठीक है?
सब ठीक है, अब चलो वापस इस विचार के लिए आते हैं।
के दशक में इस पीठ को लागू करते हैं एक gradebook के संदर्भ।
>> मुझे लगता है कि ऐसा करने और, अगर हम मैं कर सकता हूँ कि देख सकते हैं इन options-- की एक विस्तृत विविधता लागू
या इनमें से एक विस्तृत विविधता उच्च आदेश कार्यों
वास्तव में एक ऐसा करने के लिए अपनी क्षमता को आसान बनाने के लिए नंबरों की सूची पर बातें की विविधता भी है।
उदाहरण के लिए, यदि ऐसा है तो मैं , संख्याओं की एक सूची ले
उच्च आदेश कार्यों में से एक कि कम करने को कहा जाता है मौजूद है।
क्या कम करने के बजाय करता है नक्शे से कम है, होगा
सूची में दो तत्वों ले, कुछ कार्य ले जाएगा
के दो तत्वों तुलना सूची है, और यह तब होगा
की तरह output-- उस समारोह का उत्पादन
एक और तत्व है कि हो जाएगा आप तो दूसरों की तुलना करें।
>> तो क्या तुम वास्तव में इसका उपयोग कर सकता है अपनी सूची में संख्याओं का योग।
उदाहरण के लिए, यदि आप था एक की एक सूची, 2, 3, 4, 5,
जब आप पहली बार तत्वों, 1 और 2 ले।
आप इसे एक अतिरिक्त करने के लिए आवेदन कर सकते हैं उन दोनों तत्वों लेता है कि समारोह
और उन तत्वों में से एक बाहर spits, जो मूल्य 3 होगा।
तो फिर हम अगले के साथ कि मूल्य 3 ले सूची के तत्व, उन दोनों के योग
और फिर इस सूची में नीचे रख रहा है।
>> हम कम कर रहे हैं एक ही मूल्य के लिए सूची।
और यह सिर्फ इतना होता है प्लस प्रतीक है कि
एक ऑपरेटर हम सिर्फ देखा, जैसे है।
इस ऑपरेटर है वास्तव में एक समारोह में कहा कि
ठीक इस सूची है कि हम , चाहेगा इन गुणों के बजाय
हम चाहते हैं कि।
इसलिए मैं करने के लिए प्रोत्साहित करते हैं इस पर एक नज़र रखना।
मैं इस कदम की सॉर्ट करना चाहते हैं पर इस कोड में से कुछ से
हम वास्तव में कुछ पर देख सकते हैं कि इतने Xcode में वास्तविक, असली सच है, स्विफ्ट,
iOS के विकास में।
लेकिन पर एक नज़र रखना इस और आप कर सकते हैं देखें
पर क्या हो रहा है के माध्यम से पार्स इन उच्च आदेश से कुछ के साथ
फिल्टर सहित कार्यों, कम करने, और आप भी करेंगे
यहीं कहीं में देखने के रूप में अच्छी तरह से नक्शा।
यह ठीक है यहाँ है।
कहां यह एक दृश्य ले जाएगा ग्रेड की और यह वास्तव में होगा
स्विच निर्माण का उपयोग कर उन्हें नक्शा, आप सी से पहचान सकता है, जो
लेकिन वास्तव में यह एक बहुत अधिक है स्विच निर्माण की तुलना में शक्तिशाली
हम सी में है कि
>> और हम करने के लिए कि लागू कर देंगे सूची में प्रत्येक तत्व
और वास्तव में प्रदान करते हैं प्रत्येक के पत्र ग्रेड
इन सभी अवधारणाओं का उपयोग उन ग्रेड का कि हम सिर्फ पहले के बारे में बात की है।
अब हम सिर्फ एक के लिए टलना जाने मिनट और structs के बारे में बात करते हैं।
और तो structs सी में एक प्रतीक्षा कर रहे हैं कि हम डेटा के एक नए प्रकार परिभाषित करने में सक्षम थे।
Structs स्विफ्ट के भीतर मौजूद हैं।
और तो अन्य निर्माणों का एक बहुत कुछ कहा जाता है enums और कक्षाएं, कि वास्तव में
एक करने के लिए इस विचार ले पूरी अलग स्तर पर।
>> और मूल रूप से यह सिर्फ एक रास्ता है के डेटा के एक नए प्रकार को परिभाषित।
तो तुम आ अगर आप get-- अगर वर्ग या structs या enums भर में,
इसके द्वारा उलझन में नहीं मिलता है।
यह परिभाषित करने का सिर्फ एक रास्ता है डेटा के कुछ नए विशेष प्रकार के।
और यह जब वास्तव में महत्वपूर्ण है हम iOS एप्लिकेशन विकास के बारे में बात कर रहे हैं
सब कुछ है कि क्योंकि iOS एप्लिकेशन के भीतर मौजूद है
अनिवार्य रूप से किसी तरह की एक वस्तु है।
और एक वस्तु मूल रूप से एक है वर्ग या एक इनम या एक struct।
>> मैं कर रहा हूँ तो इस मामले में डेटा के एक नए प्रकार को परिभाषित
मैं मूल्यांकन बुला रहा हूँ कि कि सहित कुछ गुण है
एक नाम और ग्रेड का एक दृश्य।
मूल्यांकन की तो एक प्रकार मैं मन में है कि हो सकता है
उदाहरण के लिए क्विज़, होगा।
मैं एक है चाहेंगे एक प्रश्नोत्तरी था कि आकलन
और कहा कि ग्रेड की एक किस्म की थी प्रश्नोत्तरी एक के लिए, उस के साथ जुड़े,
प्रश्नोत्तरी दो, इतने पर और आगे।
>> या मैं एक अलग प्रकार का हो सकता है समस्या सेट के लिए मूल्यांकन की।
और मैं बातें कर सकते हैं।
मैं वास्तव में हो सकता है इस प्रकार के भीतर कार्य
अब कहा जाता तरीके हैं जो डेटा, के।
तुमने कभी देखा तो अगर शब्द विधि, यह सच
लागू होता है कि एक समारोह में बस है एक बहुत ही विशेष वर्ग के लिए,
या डेटा का एक बहुत ही विशिष्ट प्रकार के।
यह भीतर डेटा को संशोधित करने के लिए हमें की अनुमति देता है।
>> तो दूसरे शब्दों में, अगर मैं चाहता हूँ मेरे आकलन करने के लिए एक ग्रेड जोड़ने के लिए,
तो मैं क्या करने की जरूरत है सभी के लिए है इनपुट था कि स्कोर संलग्न
इस समारोह के लिए मेरी आंतरिक संपत्ति।
यहाँ एक और स्वच्छ निर्माण नहीं है इस डॉट डॉट डॉट है जो स्विफ्ट, में
के स्कोर कर सकते हैं जिसका मतलब है कि ऑपरेटर, अब पूर्णांकों की संख्या किसी भी स्वीकार करते हैं।
और स्कोर एक हो जाएगा पूर्णांकों की सरणी कि
मेरे समारोह, करने के लिए पारित किया गया है, जो मैं इस तरह की चीजें कर सकते हैं कि इसका मतलब है।
>> मैं ग्रेड जोड़ने और बस को प्रदान कर सकते हैं इसे में पूर्णांकों का मनमाना संख्या
और वास्तव में एक सरणी प्रदान की जा मेरे समारोह में उन मूल्यों की
या मेरे विधि में, जैसा भी मामला है।
अब इस महत्वपूर्ण है क्योंकि Xcode में सब कुछ, IOS में सब कुछ है,
एक वस्तु वास्तव में है।
तो मन में रखना है कि हम खुले Xcode के बस्ट जब
और iOS परे आगे बढ़ें संस्करणों दो और तीन
और वास्तव संस्करण चार पर चलते हैं।
>> और फिर, यह सब होगा संगोष्ठी पेज पर पोस्ट किया।
iOS के चार एक पूर्ण विकसित की तरह है एक बहुत ही बुनियादी अनुप्रयोग के कार्यान्वयन।
और क्या इस app करता है कि यह है इस तरह दिखता है जो एक यूआई, लोड करता है।
हम स्टोरीबोर्ड पर क्लिक करें फिर, अगर हम कर सकते हैं इस क्या ऐसा लग रहा है कि देखते हैं।
इस यूआई है।
यह बहुत शीर्ष पर एक शीर्षक है।
मैं वेब गैलरी यह बुलाया है।
>> बीच में एक तत्व नहीं है यूआई छवि देखें बुलाया।
और नीचे में वहाँ एक एक बटन के साथ टूलबार कि
यह करने के लिए अनुमति देते हैं कि फैलने वाला रिक्त स्थान है इस टूलबार के बीच में केंद्र।
और क्या होता है कि जब यह है भार यह है कि एक JSON फाइल डाउनलोड
कहीं और एक सर्वर पर निहित, कि, JSON फ़ाइल डेसिमल
और JSON फाइल इस तरह एक सा लग रहा है।
JSON फ़ाइल इस तरह दिखता है।
वहाँ यह है।
>> यह एक एल्बम का नाम है और यह फोटो की एक सरणी है।
उन तस्वीरों में से प्रत्येक एक का नाम है और यह भी
का प्रतिनिधित्व करते हैं कि एक यूआरएल खुद को उस व्यक्ति की तस्वीर की जेपीईजी संस्करण।
तो क्या होता है जब इस कार्यक्रम कि लोड, यह JSON फाइल डाउनलोड,
, यह डेसिमल में यह सब कहते हैं IOS में एक सरणी के बराबर
एक NSArray है जो अनुप्रयोग विकास,।
और फिर मैं तो लोड कर सकते हैं एक आवेदन में इस डेटा
और मेरा स्क्रीन पर इसे लोड।
>> लोड किया गया था कि एक छवि है बहुत नीचे बटन के साथ।
मैं अगला छवि, यह तो जाओ क्लिक करते हैं इंटरनेट से उस छवि खींचतान
और उस छवि की जगह यूआई छवि को ध्यान में रखते।
तो क्या आप वास्तव में इस डाउनलोड कर सकते हैं और यह आपके कंप्यूटर पर पर एक नज़र रखना।
और वास्तव में इसे बनाने और अपने डिवाइस पर यह संकलन।
लेकिन अनिवार्य रूप से प्रक्रिया थी यह storyboard-- बना
या यों कहें create-- नहीं लेकिन स्टोरीबोर्ड का चयन करें।
आप mind-- नहीं है और अगर वास्तव में we'll-- हम बस सेकंड के एक जोड़े को ले जाऊँगा
वास्तव में आप को दिखाने के लिए यह किया गया था कि कैसे।
>> बस कैसे हम वास्तव में कर सकते हैं कि इतना प्राप्त करने के लिए इस किया जाता है थोड़ा और अधिक
स्पष्ट।
एकल दृश्य आवेदन, मैं कर रहा हूँ इस संगोष्ठी फोन करने वाला
चार का प्रतिनिधित्व करने के लिए इस विशेष नंबर।
डेस्कटॉप पर सहेजें।
ठीक है, स्टोरीबोर्ड पर क्लिक करने के लिए जा रहा है।
और मैं क्या करने जा रहा हूँ मेरी छवि को देखने को मिल रहा है,
मेरे उपयोगकर्ता पर खींचें इंटरफेस और केंद्र यह।
अब बस दुर्भाग्य से यह एकत्रित एक पूरी बहुत कुछ करने नहीं जा रहा है,
एक स्क्रीन के लिए छोड़कर कि इस सटीक आकार है।
>> तो हम से है कि अपने आप को मना कर सकते हैं इस डबल सर्किल बात पर क्लिक करें,
इस पॉप नीचे लाने यहाँ मेनू और बदलते ऊपर
जहां हम वास्तव में हूँ, पूर्वावलोकन करने के लिए कैसे पूर्वावलोकन करने के लिए एक मौका मिलता है
यह वास्तव में होगा अन्य उपकरणों पर दिखेगा।
हम देख सकते हैं, हम भी नहीं करते इस विशेष मामले पर देखते हैं।
इसलिए मैं अब के लिए इस बंद करने के लिए जा रहा हूँ।
>> और मैं चयन करने के लिए जा रहा हूँ बहुत नीचे इस आइकन
स्क्रीन के नीचे के हिस्से।
यह ऑटो लेआउट मुद्दों को हल कहते हैं।
क्षमा करें, यह नीचे में काट रहा है।
लेकिन मैं उस पर क्लिक करते हैं, क्या मैं इस पॉप दूर जाने up-- है मिलता है।
क्या मैं पाने के लिए इस पॉप अप है कि मुझे याद आ रही बाधाओं को जोड़ने के लिए अनुमति देता है।
और द्वारा यह कर रही है कि तो एक तरह से यह बंद करेगा
के मध्य भाग में मैं की तरह स्क्रीन उम्मीद कर सकते हैं।
>> अब इस क्रम में बटन पर लाने के लिए यह की चोटी, मैं संपादक के लिए जाने की जरूरत है।
एम्बेड में और क्लिक करने के लिए जाओ नेविगेशन नियंत्रक।
क्या ऐसा करेंगे कि जोड़ देगा है यह करने के लिए इस पूरी अन्य घटक,
लेकिन यह वास्तव में कड़ी होगी इसे वापस अपने मूल यूआई के लिए।
और विवरण, फिर से, हम नहीं करते वास्तव में अब ठीक है के बारे में परवाह करने की जरूरत है।
लेकिन मैं एक है करने के लिए करना चाहते हैं बहुत नीचे उपकरण पट्टी।
इसलिए मैं शो टूलबार की जांच करेंगे।
>> और यह, मेरे विचार के भीतर प्रदान करता है जो अब कहीं और है,
हम इसे यहाँ पर जुड़ा हुआ है देख सकते हैं।
अब यह एक उपकरण पट्टी प्रदान करता है मेरे यूआई के तल पर।
तो अब, का चयन करने के बजाय एक छवि देखने के लिए, मैं एक लेबल पा सकते हैं
या बल्कि एक toolbar-- चलो कि जहां है, देखते हैं?
क्या कहलाता हे?
एक button-- मद bar-- item-- sorry-- बार बटन मद।
कि वहाँ अचानक और एक जोड़े को लागू दोनों तरफ से लचीला रिक्त स्थान
वास्तव में है कि केंद्र के लिए।
तो अब मैं मूल रूप से, मेरे यूआई बना लिया है।
और मैं इसे एक नाम दे सकते हैं बहुत शीर्ष पर डबल क्लिक
यहाँ और इतने पर वेब गैलरी और कह रही है।
अब फिर से, इन तत्वों रहे हैं स्वयं द्वारा कि मौजूद है।
और मैं कनेक्ट करने के लिए है मेरे कोड के लिए उन्हें जो
मैं फिर से लाकर क्या कर सकते हैं इस डबल सर्किल आइकन ऊपर,
पूर्वावलोकन से बदल रहा है।
जो, वैसे, अब हम देख सकते हैं अच्छी तरह से केंद्रित है और अच्छा लगेगा
उपकरणों की एक किस्म पर।
>> जो होगा, स्वत: के लिए स्विच ViewController कोड को ले आओ।
और अब इस महत्वपूर्ण हिस्सा है।
आप इन कनेक्ट होने के लिए आदेश में दो तत्वों, यूआई के लिए अपने कोड,
आप आइटम का चयन करें कि आप कनेक्ट करना चाहते हैं।
इस मामले में तो, हम वास्तव में सांकेतिक शब्दों में बदलना चाहते हैं
निहित है कि छवि को बदलने इस यूआई छवि देखने के भीतर।
तो आप पर नियंत्रण अगर क्लिक करें छवि देखें और खींचें,
क्या आप एक छोटे से बार मिल नोटिस हूँ कि, आप सब कुछ इस पॉप के चलते जब
ऊपर हो जाएगा।
>> और यह हम कहते हैं कि एक संबंध बनाते हैं।
और यहाँ से मैं इसे देना चाहता हूँ एक नाम, गैलरी की तरह कुछ।
हिट दर्ज करें।
और यह वास्तव में प्रदान करता है एक चर बुलाया गैलरी
मैं तो अपने कोड में संदर्भित कर सकते हैं कि उदाहरण के लिए, छवि बदलने के लिए।
तो कैसे कोड है कि वास्तव में दिखता है?
खैर फिर, मैं नहीं करना चाहता है इस पर बहुत अधिक समय खर्च करते हैं।
और मैं करने के लिए प्रोत्साहित करते हैं इसे डाउनलोड करने और एक नज़र रखना।
लेकिन ज्यादातर में से एक महत्वपूर्ण पहलू कोड है
कि वास्तव में एक छवि को लायेगा।
>> मैं चाहता हूँ कि इस मामले में तो मेरी तस्वीरें भीतर प्राप्त करने के लिए
निहित है जो सरणी, मेरी कक्षा के भीतर।
मैं नाम और यूआरएल को परिभाषित करना चाहते हैं कि इस JSON से बाहर विश्लेषित किया गया है।
असल में प्राप्त करने के लिए डिवाइस पूछना यूआरएल, इस से यूआरएल लाने के लिए
और फिर से डेटा लाने उस URL की सामग्री।
फिर एक छवि में है कि डेटा परिवर्तित यूआई छवि में यह पारित करके।
तो फिर, ये सभी अलग-अलग प्रकार के होते हैं वस्तुओं, कक्षाओं के विभिन्न प्रकार के।
>> और फिर मैं तो सेट कर सकते हैं मेरे उस डेटा के बराबर gallery.image।
और कहा कि मांस की तरह है यह की है कि वास्तव में तो है
डेटा from-- परिवर्तन को बदलने में सक्षम अगले करने के लिए एक से तस्वीर।
तो फिर, उम्मीद है कि अब निर्माणों की एक बहुत
थोड़ा और अधिक समझ कर देगा।
कुछ है कि वहाँ नोटिस यहाँ विस्मयादिबोधक अंक।
विस्मयादिबोधक अंक हैं अनिवार्य रूप से optionals से संबंधित है।
>> क्या मैं मूल रूप से कह रहा हूँ है कि यहां तक ​​कि जाँच के बिना
डेटा अगर वहाँ देखने के लिए यह वैकल्पिक भीतर,
मुझे आगे जाना है और कल्पना करने के लिए जा रहा हूँ कि वहाँ है और इसे खोलना।
हम के सादृश्य इस्तेमाल किया है कि याद रखें optionals के लिए एक पैकेज की तरह
और हम खोलना करने की जरूरत है पैकेज डेटा बाहर खींचने के लिए और।
विस्मयादिबोधक बिंदु वास्तव में होता है कि सेना।
>> लेकिन मैं यह पता है कि सुरक्षित मैं जाँच की वजह से
छवि डेटा बराबर है देखने के लिए शून्य करने के लिए, मैं वास्तव में जाँच की है
कि वैकल्पिक देखने के लिए अगर था, वास्तव में, असफल रहा।
कि था, वास्तव में, पहले से ही विफल रहे।
और इसलिए मुझे लगता है मैं यह करने के लिए एक बार यकीन है कि बिंदु मैं सुरक्षित कि डेटा खोलना कर सकते हैं।
आप भी इसे देख सकते हैं एक प्रश्न चिह्न के रूप में।
हम जहां के लिए नीचे स्क्रॉल तो अगर मैं वास्तव में डेटा पार्स करने की जरूरत है।
>> तो द्वारा बंद कर दिया जाना नहीं है लंबा नाम की इन प्रकार के।
आप एप्पल में पा सकते हैं डेवलपर साइट एक बहुत
सभी के लिए संदर्भ की वस्तुओं और प्रक्रियाओं के सभी
वास्तव में यह संभव बनाते हैं।
लेकिन यह अनिवार्य है कि नोटिस मैं इसे कुछ डेटा पास जहां एक समारोह।
और मैं डेटा के कुछ प्रकार वापस मिलता है।
और मैं करने के लिए कीवर्ड के रूप में इस का उपयोग करने की आवश्यकता है इस NSDictionary में कन्वर्ट?
कौन सा एक, फिर से है वैकल्पिक NSDictionary।
मैं तो करने की आवश्यकता है अगर यह मौजूद है देखने के लिए जाँच।
>> चलो तो अगर मुझे लगता है कि उपयोग कर सकते हैं सफल बराबर होती है, पार्स
तो मुझे लगता है कि वैकल्पिक जानते हैं कि वास्तव में कुछ डेटा शामिल हैं।
या क्या मैं यहाँ था के लिए गया था सिर्फ इतना है कि अगर वहाँ मान
यह वास्तव में सुरक्षित है कि कोई त्रुटियाँ थे।
सब ठीक है, मैं धन्यवाद देना चाहता हूँ आप सभी को आने के लिए बहुत बहुत धन्यवाद।
मैं यह एक बहुत कुछ था पता है, लेकिन यह केवल एक घंटे का था
कुछ के बारे में बात करने के लिए सुंदर उन्नत सामान।
और तो उम्मीद है कि आप एक मिल जाएगा मौका कोड के सभी डाउनलोड करने के लिए
और एक बेहतर, अधिक ले इस पर पूरी तरह से देखो।
क्रमबद्ध के सभी के अपने आप को समझाने सामान का हो रहा है कि।
और मैं आपको धन्यवाद देना चाहता हूँ सब, फिर से, आने के लिए।
अपने अंतिम परियोजनाओं के साथ और अच्छी किस्मत।
आपका दिन शानदार गुजरे।