TIANYU लियू: अरे, कैसे है यह हर किसी के लिए जा रहे हैं? और इस iOS एप्लिकेशन है उद्देश्य सी संगोष्ठी के प्रोग्रामिंग। और मेरा नाम Tianyu लियू है। मैं अब ठीक है, एक लोवेल जूनियर हूँ कंप्यूटर विज्ञान के क्षेत्र में ध्यान दे। तो इस संगोष्ठी में मैं कर रहा हूँ जा रहा है कि तुम लोगों को पढ़ाने के लिए एक app बनाने के लिए कैसे करें के बारे में एक छोटा सा। याय, इसके लिए उत्साहित हैं। हम भी डाइविंग शुरू होने से पहले तो वास्तविक प्रोग्रामिंग पक्ष में, के बारे में बात जल्दी से सिर्फ सच में चलो यही कारण है कि आप एक iOS एप्लिकेशन का निर्माण करने के लिए चाहते हो सकता है? क्यों आईओएस इतना भयानक है? पहली समस्या तो, पहले हमारे लिए बहुत भयानक बात यह है कि, विशेष रूप से एक CS50 के रूप में छात्र यह है कि, आईओएस उद्देश्य सी खैर का उपयोग करता है, वहाँ स्विफ्ट नामक एक नई भाषा, लेकिन हम नहीं जा रहे हैं इस संगोष्ठी में उस का उपयोग करें। तुम वहाँ, स्विफ्ट में रुचि रखते हैं उस के बारे में एक स्वतंत्र संगोष्ठी है। लेकिन उद्देश्य सी मूल रूप से है सी अर्थ की एक सुपरसेट तुम सी में उपयोग करें कि सब कुछ कर सकते हैं उद्देश्य सी में अनुवाद किया बहुत आसानी से। आप बाद में, कि वास्तव में देख सकते हैं कुछ बहुत ही बुनियादी वाक्य रचना कर रहे हैं, वहाँ रहे हैं मूल रूप से बिल्कुल वैसा ही, सी और उद्देश्य सी तो, आप CS50 ले लिया है के बाद से यह ऊपर तक, आप पहले से ही कम से कम 40% उद्देश्य सी पता है। इसके अलावा, एप्पल एक सच है iOS के लिए मजबूत एपीआई। सच में पागल की एक बहुत हैं चीजें आप इसके साथ क्या कर सकते हैं। जिनमें से एक किसी को है वास्तव में एक iOS एप्लिकेशन बनाया नियंत्रित कारों के लिए जो बहुत दिलचस्प है। शायद एक हेलीकाप्टर और अधिक रोमांचक है। लेकिन यह है कि कैसे शक्तिशाली है iOS के एपीआई हो सकता है। और जैसा कि तुम हो सकता है अब सही समझ से बाहर है, पोट अतिप्रवाह शायद में से एक है सबसे महत्वपूर्ण ऑनलाइन संसाधनों आप के लिए उपलब्ध। और अच्छी खबर है, के लिए हर आप संभवतः कर सकते एकल समस्या जबकि निर्माण के बारे में सोच अपने उद्देश्य सी में अंतिम परियोजना, एक पोट अतिप्रवाह जवाब संभावना है। यह बस कमाल है। इसके अलावा, iOS के लिए वास्तव में एक मंच है आप एक विशाल तक पहुँच सकते हैं जहाँ कम प्रयास के साथ दर्शकों को। यह Android, जहां की तरह नहीं है सब कुछ बहुत खंडित। सब कुछ iOS के एकीकृत है। और जब तक आप बनाने के रूप में एक iPhone के लिए एक app, आप कर सकते हैं बहुत आसानी से बंदरगाह iPad करने के लिए कि, iPad मिनी, या अलग iPhone आकार। ये सब सच सुविधाजनक हैं। और यह सिर्फ वास्तव में अच्छा है अपने मित्रों को पटाने के लिए। तुम सिर्फ एक iPhone पकड़ कर सकते हैं और, हे अपने दोस्त को बता यह है कि मैं बनाने app है। आप किसी के लिए ऐसा कर सकते हैं जो अच्छा है डेस्कटॉप क्षुधा,। सब ठीक है, अब हम वास्तव में प्राप्त करते हैं भाषा उद्देश्य सी में तो क्यों न हम साथ शुरू नहीं करते वास्तव में कुछ बुनियादी सिंटेक्स। मैं उद्देश्य जैसा कि पहले उल्लेख सी यह सी के मूल रूप से एक सुपरसेट है तो बुनियादी वाक्य रचना की एक बहुत हैं वास्तव में बिल्कुल वैसा ही। एक चर घोषित करने और दो चर एक साथ जोड़ने हम मारियो में किया है बिल्कुल के रूप में है। यहाँ कुछ भी नया नहीं। पाश के लिए इसी प्रकार, रहनेवाला और हालत भी एक ही है। आप आप के रूप में सिर्फ एक पाश के लिए क्या कर सकते हैं एक मारियो [अश्राव्य] में किया है। और अगर आप शर्तों क्या कर सकते हैं बस के रूप में क्या आप अपने पिछले पी सेटों में कर दिया गया है। हालांकि, उद्देश्य सी , सी पूरी तरह से नहीं है और है कि वहाँ कुछ अजीब तरह का है इसके बारे में है। पहले एक जा रहा है आप कर रहे हैं, जब कि सी प्रोग्रामिंग कर रही है, आप आमतौर पर कॉल में शामिल हैं और फिर एक पुस्तकालय का नाम। लेकिन उद्देश्य सी में आपको लगता है कि आयात कहते हैं। असल में, कार्यक्षमता कह सिर्फ अलग अलग नामों। और तार कर रहे हैं वास्तव में एक छोटा सा अजीब। आप पहली बार देख सकते हैं कि अजीब तरह का है कि बात आप एक बहुत weird-- यह है कि sorry-- आप एक बहुत अजीब एन एस यहाँ पर हस्ताक्षर। और दूसरी बात यह है कि उस तरह की अजीब है इससे पहले कि आप साइन पर एक है है वास्तव में स्ट्रिंग की घोषणा। तो संकेत पर मूल रूप का प्रतीक एक स्ट्रिंग एक स्ट्रिंग है कि न केवल, यह वास्तव में एक वस्तु है। हम समझाने के लिए जा रहे हैं कि बाद में ऐसा नहीं करते आतंक अगर तुम नहीं करते इसका मतलब है कि क्या समझते हैं। और सांत्वना के लिए मुद्रण एक छोटा सा है अलग है क्योंकि हम printf कॉल सी में, लेकिन उद्देश्य सी में हम [अश्राव्य] कहते हैं। आप यह है कि क्या सोच हो सकती है। यही कारण है, printf मूल रूप से है सिर्फ एक अलग भाषा। बिल्कुल वैसा ही उपयोग, वास्तव में एक ही कार्यक्षमता। वैसे यह पता चला है कि उद्देश्य सी वास्तव में एक एनएस लगभग में उपसर्ग है सब कुछ, हर बुनियादी डेटा प्रकार, NSDictionary, NSArray, NSString। कारण एनएस जा रहा है कि वास्तव में अगले कदम के लिए खड़ा है, एक कंपनी है जो कि स्टीव नौकरियाँ, की स्थापना की है एक कंपनी है जो है, जहां भाषा उद्देश्य सी पैदा होता है। तो यह मूल रूप से परंपरा है। मुझे लगता है यह एक छोटा सा है पता है अजीब है, लेकिन यह एप्पल है। भी weirder इतना है कि कुछ अपेक्षा है कि एक समारोह में घोषणा है। यह है कि हम क्या से बहुत अलग है सी में देखने यहाँ यह वास्तव में क्योंकि अब और सी की तरह नहीं दिखता है। आपके द्वारा here-- है क्या यह एक बुलेट बिंदु नहीं है जिस तरह से, यह एक ऋण चिह्न है। आप एक ऋण चिह्न कोष्ठक है शून्य और फिर समारोह का नाम। चलो बस अगर हम कहते हैं कि हम फिर, नमस्ते दुनिया है वापसी प्रकार शून्य होगा हम कुछ भी नहीं लौटने की वजह से। क्या वास्तव में अजीब हो जाता है आप कर रहे हैं, जब कि है एक से अधिक पैरामीटर होने एक ही समारोह में गुजर कि यहाँ के रूप में दिखाया वास्तव में अजीब हो जाएगा। हम एक विधि का नाम है, करने के लिए कहा जाता है addInt [अश्राव्य] और हम एक पैरामीटर गुजर रहे हैं। लेकिन उसके बाद, हम हैं के साथ और अधिक विधि नाम कॉल। और साथ के बाद हम गुजर रहे हैं दूसरा पैरामीटर। यह वास्तव में एक छोटा सा अजीब है लेकिन इन सभी समारोह घोषणाओं इस के रूप में एक ही पैटर्न का पालन करें। हम साथ शुरू करने के लिए एक ऋण पर हस्ताक्षर किया है। ऋण चिह्न एक प्लस पर हस्ताक्षर हो सकता है कभी कभी विधि किस तरह के आधार पर यह है। विधि मूल रूप से है समारोह के लिए एक और नाम है। और हम करने जा रहे हैं समझा है कि बाद में जब हम वस्तु के बारे में बात कर रहे हैं ओरिएंटेड प्रोग्रामिंग। आप पहली बार वापसी निर्दिष्ट अंदर कोष्ठकों टाइप जिसके बाद विधि का नाम आता है। आप एक पैरामीटर गुजर रहे हैं। और आप और अधिक पैरामीटर है अगर आप विधि नाम का विस्तार करने की जरूरत है और मूल रूप से यहाँ और अधिक कुछ लिखें। यह कुछ भी तुम चाहते हो सकता है। हमारे मामले में यह साथ है। लेकिन आप कह सकते हैं अंत, या या या आप जो चाहते हैं एबीसी पूर्ण बार,। और फिर उसके बाद आप कर रहे हैं पैरामीटर बी गुजर रहा है। यह एक बहुत ही अजीब है कन्वेंशन लेकिन हम कर रहे हैं एप्पल चाहता था देखने के लिए क्यों जा रहा बहुत जल्दी है कि क्या करना है। तो आप कैसे समारोह कहते हैं? उद्देश्य में एक समारोह बुला सी भी सी से अलग है दरअसल, बुला उद्देश्य सी में समारोह आप किसी से बात कर रहे हैं की तरह अधिक है। यहाँ हम स्वयं है, जो एक वस्तु कहा जाता है। आप मूल रूप से कह रहे हैं कहने के लिए स्वयं वस्तु "नमस्ते विश्व!" उस समारोह कॉल करने के लिए कैसे है। एक वस्तु और एक विधि का नाम एक दूसरे के साथ संयुक्त। और इस जहां अजीब विस्तार है विधि नाम के लिए वास्तव में खेलने में आता है। का दूसरा उदाहरण देखते हैं। हम सिर्फ एक विधि बुलाया परिभाषित addInt साथ ब्ला ब्ला ब्ला। तुम्हें बुला रहे हैं जब इस मामले में तो कि विशिष्ट [? संदेश?] चल रहा है आत्म addInt तरह देखने के लिए: 10 के साथ: 2। यह अंग्रेजी की तरह लगता है। समारोह यद्यपि समारोह घोषणा, अजीब है उद्देश्य सी के बिंदु विधि घोषणा पैटर्न, तुम्हें बुला रहे हैं, जब कि है समारोह या विधि यह वास्तविक अंग्रेजी की तरह बात करेंगे। इसलिए यह बहुत सहज है आप इसे में एक बार। विशेष रूप से इस मामले में, जहां आप मूल रूप से कर सकते हैं समारोह का नाम है यह देखना है कि एक तरह से खुद का दस्तावेजीकरण। आप किसी भी जरूरत नहीं है अधिक विवरण देखने के लिए वास्तव में क्या हो रहा है, क्या ठीक एक पैरामीटर कर रहे हैं। उस पार जा रहे हैं, के एक छोटे से बात करते हैं वस्तु उन्मुख प्रोग्रामिंग के बारे में थोड़ा सा। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग है मौलिक प्रोग्रामिंग में से एक है कि तकनीक या पैटर्न उद्देश्य सी उद्देश्य सी द्वारा इस्तेमाल किया उद्देश्य सी, नहीं कहा जाता है सी, एक बहुत अच्छा कारण के लिए। हम में मिलता है, तो इससे पहले कि उद्देश्य सी वाक्य रचना, वास्तव में जल्दी पर देखें वास्तव में क्या एक वस्तु है। हम शायद कुछ किया है पहले, वस्तु की तरह जो आप कर रहे हैं जब संरचना कहा जाता है एक पेड़ या एक लिंक की गई सूची को लागू या [? कोशिश। ?] इसलिए, यह है मूल रूप से एक संरचना की तरह, लेकिन इसे और अधिक शक्तिशाली है कि अधिक से है। एक वस्तु के तरीकों और गुण है। तरीके मूल रूप से कार्य कर रहे हैं। मूल रूप से एक कार्य करता है कि एक निश्चित उद्देश्य के लिए विशिष्ट। और गुण मूल रूप से कर रहे हैं क्षेत्र आप संरचना में निर्दिष्ट करें। हर एक वस्तु के लिए तो हम कुछ संपत्ति है कि कुछ चर है जो वस्तु के लिए विशिष्ट हैं। और हम कुछ कार्य किया है जो भी वस्तु के लिए विशिष्ट हैं। और कार्यों के तरीकों कहा जाता है और चर गुण कहा जाता है। यह सिर्फ एक काल्पनिक नाम है। आप इस तथ्य है, जबकि हर एक दृश्य आप एक iOS एप्लिकेशन खोलने जबकि आप देखते हैं, , चलो बस ट्विटर या फेसबुक कहते हैं कि जैसा कि आप देख हर एक दृश्य के एक वस्तु है। और यहां तक ​​कि पूरे app है एक वस्तु के साथ शुरू करने के लिए। बहुत ही दिलचस्प अवधारणा। और क्यों हम वस्तु चाहते हैं प्रोग्रामिंग उन्मुख? तो क्या आप कल्पना कर सकते हैं जब आपको लगता है कि कार्यक्रम यह बहुत जटिल हो जाता है। चलो बस आप कर रहे हैं जब हम कहते हैं कि बिसात को लागू करने, तर्क करने जा रहा है वास्तव में जटिल हो। आप 36 अलग अलग है टुकड़े, कि अगर ऐसा है तो आप सभी के लिए तर्क लिखना चाहते हैं शतरंज में 36 अलग अलग टुकड़ों, इस बात का एक बहुत कुछ होने जा रहा है विभिन्न कार्यों और चर। यह मुसीबत का एक बहुत कुछ है। और शायद आप एक लिखने जा रहे हैं अलग तरीका या अलग समारोह करने के लिए टुकड़ा से प्रत्येक के लिए वास्तव में वे क्या करते हैं नियंत्रित करते हैं। यदि आप करते हैं लेकिन वस्तु उन्मुख प्रोग्रामिंग, इन टुकड़ों के सभी में abstracted किया जा सकता है एक ही वस्तु। और वस्तु में कुछ सामान्य होगा टुकड़ा किस तरह की संपत्तियों की तरह, यह क्या है? यह रंग क्या है? यह कैसे ले जा सकते हैं? और उस रास्ते में आप बहुत है इसके बारे में तर्क सरलीकृत। तो यह सिर्फ एक बहुत अच्छा तरीका है जटिल प्रोग्राम बनाने के लिए, और श्रेणीबद्ध संबंध कार्यक्रम के भीतर, बहुत आसान है। हम को देखने के लिए जा रहे हैं क्यों बहुत जल्दी जब हम वास्तव में क्या कर रहे हैं हम वास्तव में कर रहे हैं जब programming-- एक एस कोड कर बाद में सत्र प्रोग्रामिंग। अच्छा है कि इसके अलावा में, वस्तु उन्मुख प्रोग्रामिंग सिर्फ मजाक का एक बहुत कुछ है। आप अपनी खुद की वस्तु डिजाइन करने के लिए मिला है। आप क्या करता है डिजाइन करने के लिए मिला यह अपने आप के द्वारा की तरह देखो। यह करने के लिए कोई सही जवाब नहीं है। और यह पूरी तरह से दिलचस्प है। तो वस्तु उन्मुख प्रोग्रामिंग में, दो बुनियादी अवधारणाओं वर्ग और उदाहरण होगा। एक वर्ग मूल रूप से है वस्तु के लिए एक टेम्पलेट। और एक उदाहरण के मूल रूप से है एक विशेष वस्तु। चलो बस आप एक कुकी बना रहे हैं और कहते हैं। इस मामले में, हर एक आप वास्तव में के साथ खत्म कुकी एक वस्तु होने जा रहा है। लेकिन कुकी थाली आप सेंकना करने के लिए उपयोग सभी कुकी एक वर्ग होगा। एक वर्ग मूल रूप से एक टेम्पलेट है। और उदाहरण के एक विशिष्ट हो जाएगा वस्तु उस वर्ग से बाहर बनाया। और एक उदाहरण बनाया जाएगा वर्ग घोषणा पर आधारित है, के रूप में हम बाद में स्लाइड में देखेंगे। तो चलो वास्तव में वास्तव में एक करते हैं त्वरित उदाहरण [अश्राव्य]। हम घोषणा कर रहे हैं कहते हैं कि एक बिल्ली के लिए एक वस्तु। वस्तु have-- चाहिए बिल्ली कक्षा चाहिए कुछ गुण और तरीके हैं। गुण होना चाहिए किस तरह का कक्षा have-- बिल्ली होना चाहिए? उदाहरण के लिए, रंग, उम्र और नस्ल, उन चर हो जाएगा एक बिल्ली के लिए विशिष्ट हैं। और उन लोगों के लिए कुछ बातें कर रहे हैं हम एक बिल्ली का वर्णन करने के लिए उपयोग। विधि किस तरह का, या एक बिल्ली क्या कर सकते हैं? कुछ जल्दी उदाहरण पीछा होगा माउस, मछली खाने के लिए या सिर्फ म्याऊ। यह एक बहुत जल्दी है बिल्ली वर्ग का उदाहरण है। और वास्तव में एक विशिष्ट बिल्ली वस्तु एक बिल्ली हो जाएगा हम निर्दिष्ट जहां रंग, उम्र और नस्ल। उस मामले में, हमारे वस्तु है अब एक वर्ग अब और नहीं। हम कक्षा से टेम्पलेट कॉपी और हम प्रत्येक विशिष्ट जानकारी निर्दिष्ट कि विशिष्ट उद्देश्य के लिए यह स्वतंत्र बनाने के लिए। और तुम्हें बुला रहे हैं जब एक वस्तु के अंदर एक विधि है, तुम सिर्फ वस्तु पर म्याऊ कॉल जो आपने अभी बनाया बिल्ली है। शायद तुम बाहर प्रिंट होगा "नमस्ते विश्व की तरह कुछ! मियांउ। " बहुत प्यारा है। सब ठीक है, चलो बस जाने कुछ विवरण में मिलता है और है कि वास्तव में क्या करता है, देखते हैं iOS के प्रोग्रामिंग अस्तित्व में अनुवाद करते हैं। IOS के हर एक प्रोग्रामिंग तो में कक्षा दो फाइलों में लागू किया जाएगा। एक फ़ाइल, जो यहाँ है इंटरफ़ेस कहा जाता है। एक अन्य फ़ाइल, जो यहाँ है कार्यान्वयन कहा जाता है। आमतौर पर इंटरफ़ेस extension.h होगा हम सी पुस्तकालयों में देखा है। और कार्यान्वयन फ़ाइल है extension.n लिए किया जा रहा। यह अजीब की तरह है। लेकिन वहाँ कोई नहीं है, .c वास्तव में एन का मतलब उन दोनों के बीच बुनियादी फर्क दो। इस मामले में तो, हम हम कर रहे हैं देख सकते हैं कि वस्तु: इंटरफ़ेस, बिल्ली की घोषणा। यही विरासत कहा जाता है। हम मूल रूप से विरासत में मिली रहे वस्तु वर्ग से बिल्ली वर्ग। इसलिए हर संपत्ति और विधि था कि पहले से वस्तु वर्ग में परिभाषित स्वचालित रूप से परिभाषित किया जाएगा एक बिल्ली कक्षा में के रूप में अच्छी तरह से। इसके अलावा, हम रंग को परिभाषित, नस्ल, और उम्र, तीन चर। यही कारण है कि वास्तव में की तरह दिखता है इससे पहले कि आप कुछ किया है। यह संरचना की तरह लग रहा है। वह मूल रूप से वाक्य रचना है संरचना घोषणा के लिए, और यह पूरी तरह से सही है। और जैसा कि मैंने पहले उल्लेख किया है, के बाद से अंतर यह है कि एक struct और एक वस्तु, में से एक बुनियादी मतभेद एक वस्तु विधि यह है कि जबकि एक संरचना ही चर है। तो गुणों के अलावा या हम उद्देश्य के लिए बनाया है चर, हम कुछ विधि निर्दिष्ट करें। चलो बस हम है यहाँ हम कहते हैं एक म्याऊ है दो तरीकों, एक दूसरे से पीछा माउस है। हम शायद एक गुजर होना चाहता हूँ हमारे पिछले पद्धति पर आधारित पैरामीटर घोषणा पैटर्न। तुम्हें शायद एक माउस गुजर होना चाहते हैं। और आप शायद चाहता हूँ एक bool वाचक वापस करने के लिए अपनी बिल्ली को सफलतापूर्वक किया है माउस पकड़ लिया है या नहीं। इस इंटरफेस है, लेकिन हम कर सकते हैं देखते हैं कि वास्तव में इंटरफ़ेस कुछ भी नहीं है। यह सिर्फ एक कार्यक्रम बताता exists-- क्या क्या बिल्ली कक्षा में मौजूद है। ऐसा करने के लिए आदेश में कार्यक्रम में कुछ करने की, हम कार्यान्वयन फ़ाइलों की आवश्यकता है। यहाँ तो, हम क्या पहली बात यह है जाहिर है कि हम इंटरफ़ेस आयात करते हैं। हम इंटरफ़ेस का आयात करने के बाद, हम विधि को परिभाषित। चलो बस यहाँ म्याऊ कहते हैं कि बस से बाहर प्रिंट होगा "हैलो वर्ल्ड!" दिलासा देने के लिए। और कार्यान्वयन के बाद फ़ाइल, हम बहुत ज्यादा कर रहे हैं। यह मूल रूप से एक वर्ग है एक वर्ग के लिए घोषणा। तो अब सवाल बन जाता है, कैसे आप एक चर घोषित करते हैं? जिस तरह से आप एक बनाने के लिए एक वर्ग का उपयोग उद्देश्य सी में वस्तु यहां लिखा है। आप पहली बार है कि निर्दिष्ट यह एक बिल्ली सूचक है उद्देश्य सी में हर वस्तु क्योंकि अंत में एक संकेत के रूप में कार्यान्वित किया जाता है। और तुम वर्ग कहते हैं, उन्हें फोन मूल रूप से malloc है जो alloc, के रूप में, ऑपरेटिंग सिस्टम को कह रहा है कि तुम इस उद्देश्य के लिए कुछ स्मृति अंतरिक्ष की जरूरत है। उसके बाद आप एक वस्तु है पहले से ही है और आप बस इसे इनिशियलाइज़। यह सिर्फ परंपरा है। मैं थोड़ा अजीब है यह पता है, लेकिन इस एप्पल सामान नहीं करता है वास्तव में कैसे है। गुण है बताए वास्तव में बहुत सरल। यह करने के लिए बहुत समान है आप जब क्या कर रहे हैं आप कुछ विशिष्ट बताए रहे संरचना के अंदर क्षेत्र। तुम बस चर , संपत्ति के नाम पर नाम है, और यह करने के लिए एक विशिष्ट मूल्य आवंटित। और एक विधि बुला बहुत समान है। बुला एक विधि है बुनियादी तौर पर मैं इस बारे में बात क्या उद्देश्य सी में किसी भी विधि फोन करने के लिए आप में एक वस्तु गुजर रहे हैं इस मामले में यह, myCat होने जा रहा है और आप विधि नाम गुजर रहे हैं। आप इस उद्देश्य के लिए बात कर रहे हैं के रूप में, आप म्याऊ चाहिए कि myCat,। यह बहुत दिलचस्प है। उसके बाद, वहाँ एक है अधिक आवश्यक डिजाइन पैटर्न हम इस बारे में बात करने की जरूरत है कि वास्तविक एस कोड के लिए हो रहा से पहले। यही कारण है कि डिजाइन पैटर्न कहा जाता है घटना प्रोग्रामिंग संचालित। यह भी है कि ज्यादातर की शायद एक है iOS के प्रोग्रामिंग में मौलिक विचारों। तो आप शायद वास्तव में क्या है पता नहीं है घटना चालित प्रोग्रामिंग, है लेकिन यह सच है कि डरावना नहीं है। खैर, वास्तव में, आपके पास पहले से ही उस से पहले किया। यह आपको शायद है लाइनों में से एक है पहले से ही पिछले [अश्राव्य] में लिखा CS50 की, google.maps.event.addListener (मार्कर, )} {), समारोह ("क्लिक" :. आप कर रहे हैं इस लाइन फोन करके अनिवार्य रूप से कंप्यूटर बता रहा है घटना कहा जाता है कि जब भी , मार्कर पर होता है "क्लिक" उस समारोह का उपयोग करें। इस से बहुत अलग है आप mario.c में क्या करते हैं। Mario.c में आप सिर्फ कार्यक्रम चलाने के लिए एक बार, तो यह आपको एक आउटपुट देता है, और आप कर रहे हैं। ये एक तरह से पसंद कर रहे हैं एक शॉट कार्यक्रम। घटना संचालित कार्यक्रमों बहुत, बहुत अलग हैं। फेसबुक एक से एक है, तो की कल्पना करते हैं शॉट प्रोग्राम यह वास्तव में अच्छा नहीं है। तुम सिर्फ फेसबुक के लिए जाना एक बार और यह किया है। यह आपको कुछ आउटपुट देता है और आप इसे वापस नहीं मिला। आप और अधिक कुछ भी नहीं मिला। तो यहाँ, विशेष रूप से हम उपयोग पैटर्न है घटना है, ताकि संचालित हर कार्य करेंगे के आधार पर पकड़ा जा क्या घटना से हुआ है। उदाहरण के लिए, अगर हमारे पास है एक बटन और हम निर्दिष्ट उस बटन को क्लिक किया है कि जब भी, कहा जाता समारोह कॉल "नमस्ते विश्व!" उस रास्ते में हम वास्तव में कर सकते हैं समारोह तर्क का प्रबंधन एक अत्यंत लचीला रास्ते में प्रवाह। उपयोगकर्ता करते हैं या एक समारोह में कॉल कर सकते हैं कि पहले से ही बुलाया गया है। यह पूरी तरह से उपयोगकर्ताओं को क्या करते हैं पर आधारित है। इसलिए हम यह है कि देख सकते हैं mario.c से वास्तव में बहुत बेहतर है। और अच्छी खबर यह है कि वास्तव में नहीं एक नई अवधारणा। तुम लोग पहले से ही किया है कि पिछले समस्या में निर्धारित किया है। तो उद्देश्य सी में कर रहे हैं तीन अलग अलग चित्र घटना चालित प्रोग्रामिंग के लिए। पहले चित्र है लक्ष्य कार्रवाई कहा जाता है, जहां आप एक बटन बाँध कुछ समारोह के साथ प्रेस। आप क्लिक करें जब भी चलो बस, हम कहते हैं कि कुछ बटन, आप कुछ समारोह कॉल। यह बहुत आसान लक्ष्य कार्रवाई की है। दूसरा एक है वास्तव में सबसे कठिन एक, यह प्रोटोकॉल पर प्रतिनिधिमंडल कहा जाता है। हम समझाने के लिए जा रहे हैं महान विस्तार में है कि बाद में। और तीसरा रास्ता सूचना है। यह वास्तव में नहीं है बहुत महत्वपूर्ण के रूप में दूर हम चिंतित हैं, मौका है क्योंकि आप अधिसूचना उपयोग करने के लिए जा रहे हैं कि अपने अंतिम परियोजना में काफी कम है। तो हम उस भाग को छोड़ करने के लिए जा रहे हैं। और हम गोता करने के लिए जा रहे हैं प्रोटोकॉल पर प्रतिनिधिमंडल में। तो क्या वास्तव में एक प्रोटोकॉल क्या है? या फिर एक प्रतिनिधिमंडल वास्तव में क्या है? के साथ शुरू करने के लिए प्रोटोकॉल के बारे में बात करते हैं। प्रोटोकॉल की घटनाओं पर कुछ भी नहीं कर रहे हैं। लेकिन इन घटनाओं को दिया जाता है एप्पल द्वारा आप के साथ शुरू करने के लिए। उदाहरण के लिए, मैं नहीं कर रहा हूँ आप में से कितने पूरी तरह से यकीन लोग एप्पल के मूल का उपयोग एप्लिकेशन को मेल या संपर्क, लेकिन हर बार जब आप स्क्रॉल मेज और विशेष सेल दबाएँ मेज पर, कि एक घटना है। और अगर आप ऐसा करना चाहते हैं अपने आप से है कि घटना, यह वास्तव में एक छोटा सा मुश्किल है। तो एप्पल यह भी है कि आप के लिए दिया गया है तुम सिर्फ सीधे उपयोग कर सकते हैं ताकि घटना अपने दम पर कुछ करने के लिए। प्रोटोकॉल वास्तव में कर रहे हैं वास्तव में, वास्तव में व्यापक रूप से इस्तेमाल किया में उद्देश्य सी खैर में तथ्य यह है कि हर एक app की कुछ पकड़ा अनुप्रयोग के प्रतिनिधि है। नाजुक के अंदर के सभी है एप्लिकेशन को लोड करने के लिए प्रोटोकॉल। चलो बस का कहना है कि चलो अनुप्रयोग के लिए एक घटना लोड किया था। आप कर लेने के बाद तो क्या होना चाहिए एक app बनाया है, आप अनुप्रयोग खोलने के बाद, के बाद आप के बाद एप्लिकेशन को बंद करें, या आप सोने के लिए iPhone डाल दिया। ये है कि सभी घटनाओं रहे हैं पहले से ही आप के लिए दिया गया। और मूल रूप से इन कणों के अंदर कोई कार्यान्वयन किया जाएगा। एप्पल सिर्फ इस समारोह में कहा था कि तुम कुछ घटना होता है जब कुछ नहीं होगा, लेकिन आप उस के साथ क्या करते हैं समारोह पूरी तरह आप पर है। प्रतिनिधिमंडल मूल रूप से है वर्ग कह रहा है आप इन प्रोटोकॉल संभाल चाहिए। यह एक छोटा सा है भ्रामक है, लेकिन यह हो जाएगा जब हम करते हैं ज्यादा साफ कार्रवाई में कोड। प्रोटोकॉल पर प्रतिनिधिमंडल वास्तव में एक है इस अर्थ में बेहद मजबूत तंत्र कि हम प्रतिनिधिमंडल करते हैं एक विशिष्ट वर्ग के लिए, हम अनिवार्य रूप से संभाल कर सकते हैं सभी प्रकार की घटनाओं हम किसी भी वर्ग का उपयोग कर, बहुत सुविधाजनक उपकरण। तो एक त्वरित उदाहरण के लिए प्रोटोकॉल पर प्रतिनिधिमंडल मैं बस के बारे में बात की क्या हो जाएगा। इस प्रोटोकॉल विशेष रूप से कहा जाता है tableview [अश्राव्य] भूमिका का चयन [पर? सूचकांक?] [? पिछले। ?] तो यह एक पकड़ा जा होता है कि घटना है जब आप वास्तव में एक विशिष्ट पर नल अपने tableview में सेल, चलो बस आपके मेल में हम कहते हैं या अपने संपर्कों के अनुप्रयोग में। एक समारोह के अंदर वहां गया था मूल रूप से कुछ भी नहीं कर रही है। काम नहीं करता डिफ़ॉल्ट रूप से कुछ भी नहीं है। लेकिन अगर आप निर्दिष्ट कर सकते हैं समारोह क्या करता है, आप अपने अनुप्रयोग से बाहर क्या चाहते दी। बहुत सुविधाजनक उपकरण। और सभी के साथ कि मैं मूल रूप से कहा जा रहा है कुछ बहुत ही बुनियादी वाक्य रचना को कवर किया और उद्देश्य सी के लिए मौलिक अवधारणा प्रोग्रामिंग, और हम कुछ के कोड कर सकते हैं। उससे भी ज्यादा रोमांचक है। तो चलो कोड वास्तव में एक है थोड़ा सा भारी यदि आप पहली बार के लिए इसे खोलने के लिए जब। एक जल्दी ध्यान दें, ताकि आप अगर iOS के विकास करना चाहते हैं, मैं अत्यधिक तुम एक मैक है की सलाह देते हैं। पर आईओएस विकास कर रही है क्योंकि विंडोज सच में, सच में कठिन है। यह संभव है, लेकिन यह वास्तव में मुश्किल है। और आप निश्चित रूप से करना जी संपादित उपयोग नहीं करना चाहते। तो चलो कोड में हम हैं कई अलग अलग क्षेत्रों में। जब आप पहली बार हो रहा है जब खुला कोड आप एक नेविगेशन क्षेत्र देखेंगे, जो मूल रूप से आप सभी से पता चलता है अपने वर्तमान परियोजना में है कि फ़ाइलें। आप एक उपकरण पट्टी क्षेत्र है, जो मूल रूप से विचारों का प्रबंध है, या कुछ थोड़ा जल्दी एस कोड के बारे में ही उपकरण। और यह वास्तविक संपादक क्षेत्र है। इस क्षेत्र में बहुत समान छ संपादित है, जी संपादित की तुलना में, लेकिन बहुत बेहतर है। और यह अधिकार क्षेत्र में है, उपयोगिता क्षेत्र कहा जाता है। क्षेत्र जब वास्तव में काम हो जाता है आप इंटरफ़ेस बनाने या निर्दिष्ट कर रहे हैं आपके अनुप्रयोग के लिए कुछ जल्दी setups के। और अंतिम क्षेत्र डिबगिंग है। इस क्षेत्र सांत्वना शामिल हैं। तो आप printf का कहना है कि जब भी, या, हमारे मामले में NSLog आपके सभी परिणाम हैं जा रहा यहां मुद्रित करने के लिए। ठीक है? मुझे लगता है हम सच में जल्दी से कर सकते हैं लगता है iOS के प्रोग्रामिंग के लिए एक उदाहरण है। और हम वास्तव में ऊपर के कोड खोलते हैं। तो अगर आप ऊपर के कोड हर समय खुला, यह है कि ऐसा कुछ दिखाने के लिए जा रहा है। यह आप से पूछना जा रहा है आप क्या करना चाहते हैं? आप कुछ शुरू करना चाहते हैं मूल रूप से यादृच्छिक, एक खेल का मैदान है, तो आप बस बिना कोड का परीक्षण कर सकते हैं वास्तव में किसी भी अनुप्रयोग के लिए करने से। यदि आप एक नई परियोजना का निर्माण करना चाहते हैं? या फिर आप जारी रखना चाहते हैं मौजूदा परियोजना पर काम कर रहा? हमारे मामले में हम जा रहे हैं एक नई परियोजना बनाने के लिए। तो यह वास्तव में अच्छा है है कोड वास्तव में पहले से ही है कुछ टेम्पलेट्स तुम्हें दे दिया वस्तुओं बनाने के लिए। आप एक खेल करना चाहते हैं, कोड है वास्तव में आप एक खेल के लिए टेम्पलेट है, , पेज आधारित आवेदन किया है टैब आधारित अनुप्रयोग। इस मामले में, हम जा रहे हैं कुछ बहुत आसान करने के लिए, और हम एक का उपयोग करने के लिए जा रहे हैं एकल दृश्य आवेदन। उसके बाद तो बस आप कॉल करने के लिए क्या चाहते हैं अपने उत्पाद, और, आपका नाम क्या है क्या आपके पहचानकर्ता है, और आप कौन-सी भाषा का प्रयोग करते हैं। यहाँ हम नहीं करना चाहते हैं कोर डेटा का उपयोग कर की जाँच करें। कोर डेटा मूल रूप से एक databasing आईओएस है। आप कोर डेटा करना है, S कोड को परिभाषित करने के लिए जा रहा है आप के लिए एक बहुत अधिक जटिल वर्गों। इसलिए हम कर रहे हैं, सब कुछ सरल रखने के लिए सिर्फ कोर डेटा के बिना क्या करने जा रहा अभी। हम हो जा रहे हैं समस्या का उपयोग कर समस्या that-- है हम बनाने जा रहा है जा रहे हैं हम कि मूल रूप से सी से मारियो आयात करना चाहते हैं एक iOS एप्लिकेशन को। तो चलो मारियो-आईओएस कि कहते हैं। बेशक आप आप क्या निर्दिष्ट अपनी परियोजना में डाल करना चाहते हैं। और हम वहाँ जाते हैं। तो यह एक छोटा सा है भारी है, लेकिन यह वास्तव में है क्या हम सिर्फ स्लाइड पर देखा था। और पहली क्षेत्र में हम अभी देख मूल रूप से इस परियोजना विन्यास है। इतना सब कुछ आप करना चाहते हैं परियोजना, किस प्रकार के उपकरण, चलो बस कहना है किस प्रकार के उपकरण आप अपने अनुप्रयोग पर प्रदर्शित करना चाहते हैं? यह iPhone, iPad या सार्वभौमिक है? डिवाइस अभिविन्यास, यह सब सामान तो। बहुत महत्वपूर्ण नहीं, लेकिन हो सकता है, लेकिन यह कर सकता है आप की स्थापना की है, जहां एक जगह है अपनी परियोजना आप अगर वास्तव में एप्पल स्टोर करने के लिए तैनात करने के लिए चाहते हैं। ठीक है, हम देखते हैं हमारे कोड के अंदर है कि कुछ और। फाइल नाविक के माध्यम से चलते हैं। और इन सभी फ़ाइलों कि पहले से ही कर रहे हैं बहुत अच्छा टेम्पलेट के साथ आया था। इसलिए हम उनमें से एक पर क्लिक करें जब इस यह कैसा लग रहा है। जी संपादित करने के लिए बहुत समान। लेकिन आप देख सकते हैं कि वाक्य रचना हाइलाइटिंग शायद है एक छोटा सा अच्छे। और यह वास्तव में बहुत अधिक है जी संपादन से अधिक शक्तिशाली। और आप स्वत: पूरा कर सकते हैं आप के लिए बहुत सारी चीज़ें, हम बहुत जल्दी देखेंगे। के रूप में अच्छी तरह डिबगिंग क्षेत्र खोलते हैं। सब ठीक है, हम देख सकते हैं, सांत्वना यहीं है। यह आपको देखने के लिए जहां जा रहे हैं क्या है आप printf या कुछ nsloging में कर रहे हैं। आगे की हलचल के बिना तो, वास्तव में चलो एप्लिकेशन को संकलन और देखो क्या होता है। एक आवश्यक सुविधा के लिए एस कोड, कि कोड है एक iPhone सिम्युलेटर के साथ आता है। तो आप एक की जरूरत नहीं है iPhone है, अपनी परियोजना की कोशिश करना एस कोड के लिए कि अनुकरण कर सकते हैं यदि आप के रूप में हम अभी देख सकते हैं। यह बहुत अच्छा है। यह एक छोटे से ले जा रहा है समय का सा संकलन करने के लिए और मूल रूप से हमारे पास एक खाली आवेदन, जो वास्तव में कुछ भी नहीं है। लेकिन यह compiles। यह बहुत भयानक है। यह हुह सी की तुलना में काफी बेहतर है? सब ठीक है, तो चलो कुछ जोड़ने के लिए प्रयास करें। एक छोटा सा है कि एक फाइल यहाँ अजीब स्टोरीबोर्ड कहा जाता है। यह वास्तव में एक महान है एस कोड के लिए कमाल की सुविधा। क्योंकि कोड में, आप को खींच वास्तव में यह कर सकते हैं और इंटरफ़ेस पर ड्रॉप तत्वों और यह सीधे दिखाई देगा। चलो कि कोशिश करते हैं। हम यहाँ "नमस्ते विश्व !!!" एक लेबल ड्रॉप हम चाहते हैं कि केंद्र कर सकते हैं। बहुत अच्छा। अब हम यह रोक सिमुलेशन चलाते हैं। यहाँ हम "नमस्ते विश्व !!!" है हम भी अभी तक किसी भी कोडिंग नहीं किया। बिल्ली क्या हो रहा है? यह कितना शक्तिशाली है इंटरफ़ेस बिल्डर हो सकता है। किसी ने भी कहा है कि आप कर सकते हैं शायद बस लेखन के बिना एक app पूरा कोड की शायद एक हजार लाइनों बस इंटरफ़ेस बिल्डर का उपयोग करके। लेकिन यह शायद नहीं है सबसे अच्छा तरीका यह करने के लिए। अब हम वास्तव में कोडिंग के लिए नीचे उतरो। फ़ाइल के लिए संरचना तो वास्तव में बहुत दिलचस्प है क्योंकि, जैसा कि आप देख सकते हैं, के रूप में वहाँ कहीं भी कोई मुख्य कार्य है। देख? हम पहले उल्लेख किया है, आप इस देख सकते हैं कि एक कार्यान्वयन फ़ाइल है एक विशिष्ट वर्ग के लिए। लेकिन कोई मुख्य कहीं भी नहीं है। तो जहां मुख्य है? वास्तव में, वहाँ एक मुख्य है, लेकिन मुख्य वास्तव में आप से छिपा है। मुख्य यहाँ है। उस परिचित लग रहा है। तो बुनियादी तौर पर क्या आईओएस मुख्य अंदर कर रही है मुख्य है कि जब भी है मूल रूप से है, जो कहा जाता है अनुप्रयोग, यह मार डाला है, जब भी AppDelegate नामक एक वस्तु बनाता है। जैसा कि मैंने पहले उल्लेख किया है, पूरे एप्लिकेशन को वास्तव में अपने आप में एक वस्तु है। असल में, इस तरह से तो iOS एप्लिकेशन संकलक बता रहा है कि ठीक है, मैं बनाने के लिए जा रहा हूँ AppDelegate नामक एक उत्पाद, और कहा कि मेरे app होने जा रहा है। तो तुम जाने की जरूरत है कि AppDelegate के माध्यम से और उस आदमी क्या कर रहा है देखते हैं। मेरा काम मेरे लिए किया जाता है। और AppDelegate में आप देख सकते हैं कि कुछ बहुत ही अजीब कार्य कर रहे हैं, वास्तव में अच्छी तरह के तरीकों, कि एप्पल पहले से ही तुम्हें दे दिया है। यह क्या हैं? ये वास्तव में सिर्फ प्रोटोकॉल रहे हैं कि मैं के बारे में बात कर रहा था। इसलिए इन घटनाओं रहे हैं कि एप्पल साथ शुरू करने के लिए दिया गया है। कुछ नहीं से कुछ में नहीं है अब सही कार्यों की, लेकिन हम को प्रारंभ करना चाहते हैं हमारे app के लिए कुछ प्रदर्शित करने में हो रहा से पहले किसी भी दृश्य, हम यहाँ करते हैं। तुम सिर्फ नाम पढ़ सकते हैं और मुझे लगता है घटना वास्तव में बहुत स्पष्ट है। तो अब मुख्य पैदा कर दी है AppDelegate के लिए एक वस्तु। और AppDelegate ऐसा करने के लिए क्या हो रहा है वास्तव में भी आप से छिपा है। AppDelegate शुरू करने जा रहा है ViewController शेयर लोड हो रहा है। तो यह मूल रूप से शुरू हो रहा है आपको लगता है कि सभी विचारों को लोड और सिर्फ देखें प्रस्तुत करना पदानुक्रम के आधार पर। इसलिए इस मामले में हम केवल यहाँ है जो एक दृश्य। तो यह है कि केवल दृश्य है कि कहा जा रहा है। ViewController तर्क यहीं है। मतलब यह है कि वास्तव में कोड है हम सिर्फ देखा दृश्य नियंत्रित करता है। सब ठीक है, चलो यहाँ कुछ करते हैं। तो viewDidLoad एक घटना की तरह लगता है, यह भी जब एक प्रतिनिधि है, वास्तव में, यह भी एक प्रोटोकॉल है। तो देखने के लिए, भरी हुई है जो कुछ भी समारोह के अंदर सब कुछ बुलाया जाएगा। इस मामले में हम नमस्ते "देखना चाहिए Tianyu! "हम कार्यक्रम चलाते हैं। यह एक छोटा सा धीमी गति से हो रही है स्टोरीबोर्ड फ़ाइलें संकलन। खैर दरअसल, हम इसके लिए एक आउटपुट देखते हैं। यह बहुत अच्छा है। अब हम वास्तव में मारियो करते हैं। मैं परिभाषित करने के लिए जा रहा हूँ बहुत जल्दी कार्य करते हैं। marioWithLevels: (पूर्णांक) के स्तर का परिणाम है। सब ठीक है, यह वास्तव में भयानक है एस कोड ऑटो पूरा होने की सुविधा। तो क्या आप के लिए लिखने के लिए और दर्ज टाइप करते हैं, यह पहले से ही टेम्पलेट छोड़ दिया गया है आप के लिए, जो बहुत अच्छा है। यही कारण है कि वास्तव में देखना चाहिए आप लोगों को परिचित। क्षमा करें, कि मेरी गलती है। सब ठीक है, शांत। तर्क है कि वास्तव में परिचित दिखना चाहिए तुम लोगों को, विशेष रूप से बस मारियो करने के लिए। लेकिन हम अब के लिए बाहर प्रिंट होगा सांत्वना हर बार, हम किसी भी तरह रखना चाहते हैं क्योंकि हम मुद्रण कर रहे हैं का ट्रैक। हम उपयोग करने के लिए जा रहे हैं बाद में किसी भी तरह का परिणाम है, प्रिंट प्रदर्शित करने के लिए बाहर उपयोगकर्ता के लिए परिणाम। तो बजाय हम सिर्फ रहे हैं सब कुछ nslogging, जो हम सब कुछ भंडारण कर रहे हैं एक समारोह कॉल परिणाम में, लेकिन तर्क बिल्कुल वैसा ही है। हम इसे, हम समाप्त करने के बाद बस हमारे परिणाम मुद्रित करें। और यहाँ के बजाय बाहर मुद्रण मेरी नाम है, हम एक समारोह में कॉल करने के लिए जा रहे हैं। क्या होता है देखते हैं। ओह, जाहिर है। हम एक अच्छा क्या है यहाँ से बाहर थोड़ा पिरामिड। यह मूल रूप से सी है, हम कर रहे हैं बस यदि आप एक समारोह कॉल जहां जोड़ तोड़ और कैसे की तरह एक समारोह दिखता है। अलग कुछ भी नहीं है। लेकिन यह वास्तव में है नहीं बहुत ही रोमांचक है, यहाँ हम देख नहीं रहे हैं, क्योंकि iPhone app से कुछ भी। तो अगर आप वास्तव में app-- एक iPhone है अगर आप वास्तव में मारियो आईओएस अधिकार है अगर अब, आप नहीं जा रहे हैं कुछ भी देखने के लिए कि क्योंकि मारियो के साथ क्या कुछ किया है एक कंसोल में उन सभी outputs के एक उपयोगकर्ता से छुपा रहे हैं। यह आप क्या देख रहा है जो "नमस्ते विश्व !!!" है अच्छा नहीं है। अब 'उपयोगकर्ता को देखने की कोशिश करते हैं क्या वास्तव में हम बाहर मुद्रण कर रहे हैं। इसलिए हम अब और लेबल करने की जरूरत नहीं है। चलो कोशिश करते हैं और कुछ समझ से बाहर और है कि उपयोगी हो सकता है। वास्तव में एक है कहा जाता है कि तत्व पाठ क्षेत्र, जो कर सकता था हमारे लिए बहुत उपयोगी हो। यह मूल रूप से एक क्षेत्र को प्रदर्शित करता है पाठ के संपादित किया जा सकता है। तो यह है कि वास्तव में मददगार लग रहा है। अब देखते हैं कि यह खींचें और ड्रॉप करते हैं। वाह, हम एक पाठ दृष्टि से देखते हैं हमारे विचार में, सच में फैंसी। यही कारण है कि थोड़ा सा भी बड़ा है। चलो इसे छोटा कर दें। केन्द्र में डाल दिया। साथ ही यह छोटा करें। अब हम जो हम कर सकते थे, एक पाठ दृष्टि से देखते हैं हमारे अंतिम परिणाम प्रदर्शित करने के लिए इस्तेमाल किया जाएगा। लेकिन अभी यह है निश्चित रूप से काम करने के लिए नहीं जा रहा है no-- है क्योंकि वहाँ ViewController हम बस पता नहीं है कि परिभाषित वहाँ से बाहर एक पाठ दृश्य है। इसलिए हम किसी भी तरह करने की जरूरत है पाठ को देखने लिंक हम बस वर्ग के साथ बनाए गए पहले से ही हमारे साथ आ गया है। हम चाहते हैं कि जिस तरह से है वास्तव में वास्तव में जादुई। तो स्टोरीबोर्ड ऊपर खुला। वहाँ एक विशेष [अश्राव्य] [कहा जाता है? सहायक?] [अश्राव्य]। आपको लगता है कि क्लिक करें, यह है दो फ़ाइलों को खोलने के लिए जा रहा है। एक एक वर्ग और अन्य एक है इसके लिए एक इसी दृश्य है। यह बहुत, बहुत मददगार है। और चलो बस ज फ़ाइल के माध्यम से चला जाता है चलो। कंट्रोल, यह [अश्राव्य] तर्क है। प्रेस नियंत्रण और खींचें घोषणापत्र में पाठ देखें। हम चाहते हैं कि outputView कॉल करने के लिए जा रहे हैं। कनेक्ट करें। तो यहाँ हम एक नई घोषणा की है हमारे ViewController वर्ग के लिए संपत्ति। और नया संपत्ति सिर्फ पाठ दृश्य है हम इंटरफ़ेस इमारत में बना लिया है। उस रास्ते में हम कर सकते थे तो सभी डेटा और अंदर है कि सब कुछ हेरफेर कमाल है जो उत्पादन देखने के लिए,। , हमारे वास्तविक कोड में तो इसके साथ कुछ करते हैं। तो इस बार हम छपाई की तरह हैं जब अंतिम परिणाम बाहर मारियो के लिए, हम कुछ भी प्रवेश नहीं कर रहे हैं। मुझे लगता है हम रख सकता है मतलब लॉगिंग बयान। इसके अलावा, हम readout के लिए भेज हम बस उत्पादन देखने के लिए, करने के लिए बनाया है, जो हम अभी बनाया TextView एक यूआई है। अब देखते हैं कि क्या होता है देखते हैं। वाह। हम अभी अनुप्रयोग में एक पिरामिड है। उपयोगकर्ता हमारे उत्पादन की वजह से देख सकते हैं तो हम अपने कोड से उत्पादन की नकल की है हमारे इंटरफ़ेस करने के लिए। यह बहुत अच्छा है। यह वास्तव में नहीं है कि रोमांचक हम can-- क्योंकि सभी app है कर रही है आप के लिए एक पिरामिड दिखा रहा है, और आप इसके बारे में कुछ नहीं कर सकता है। यह विशेष रूप से उत्साहजनक नहीं है। तो अब एक बटन बनाते हैं विचार है कि साफ हो जाएगा। एक बटन उपयोगी हो जाएगा लगता है। खींचें और ड्रॉप। बटन एक। बटन दो। इसलिए हम छोड़ दिया क्लिक करें जब बटन, देखने स्पष्ट करना चाहिए। स्क्रीन पर कुछ भी नहीं किया जाना चाहिए। और हम जब आप क्लिक करें सही बटन, मारियो, देखें फिर से दिखाई जा रही है। तो इस तरह हम भी करते हैं जादू सामान, नियंत्रण और खींचें कक्षा घोषणा करने के लिए सहायक director-- में सहायक दर्शक में। इस मामले में हम निर्दिष्ट कर रहे हैं कि एक क्रिया है कि होना चाहिए। clearMario। यहाँ तो हम पहले से ही बनाया है clearMario नामक एक कार्रवाई, जो बुलाया जाएगा कि विधि है हम बटन स्पष्ट दबाएँ जब भी। हमारे वास्तव में कोड में तो, बस चलो उत्पादन पाठ और आउटपुट देखें डाल कुछ नहीं में, और कहा कि जिस तरह से यह स्पष्ट होना दिखाई देगा। इसके अलावा, चलो पैदा करते हैं runMario नामक एक अन्य विधि। ओह, माफ करना, एक संपत्ति है कि नहीं होना चाहिए। सब ठीक है, कि होना चाहिए के रूप में अच्छी तरह से एक कार्रवाई हो। और उस समारोह है जब कहा जाता है, हम सिर्फ मारियो दस चलाते हैं। उम्मीद है कि वह ठीक हो जाएगा। यह संकलन करता है? हाँ। अब हम एक दृष्टि से देखते हैं। हम एक उत्पादन किया है। और चलो बस देखते हैं क्या होता। यही चला गया है। यह फिर से वापस आ गया है। यहाँ तो हम निर्दिष्ट किया है समारोह की किस तरह जब बुलाया जाएगा हम कुछ में टाइप करें, हम एक विशिष्ट बटन दबाएँ जब। यह मूल रूप से है लक्ष्य कार्रवाई योजना घटना के लिए प्रेरित उद्देश्य सी में प्रोग्रामिंग इसके अलावा, यह बहुत उत्साहजनक नहीं है हम वास्तव में नहीं बदल सकते, क्योंकि पिरामिड कैसे उच्च होगा, तो हम शायद किसी भी तरह करना चाहते हैं उपयोगकर्ता से एक इनपुट मिल और की ऊंचाई परिवर्तन पिरामिड क्या वे उत्पादन पर आधारित है। तो क्या हम ऐसा करने जा रहे हैं। इसलिए हम runMario कॉल करते हैं तो इस बार, हम सिर्फ मारियो सीधे फोन नहीं है। यह एक शीर्षक। प्रतिनिधि। यह बहुत दिलचस्प है। एक प्रतिनिधि क्या है? मैं यहाँ स्वयं डाल करने के लिए जा रहा हूँ। और हम को देखने के लिए जा रहे हैं क्या है कि बाद में इसका मतलब है। तो यहाँ हम मूल रूप से बनाया है एक विशिष्ट उदाहरण एक यूआई चेतावनी बुलाया व्यू। एक यूआई चेतावनी दृश्य है मूल रूप से आप क्या करेंगे हर बार कुछ चबूतरे देखना इनपुट के लिए पूछता है और ऊपर, आप कोशिश कर रहे हैं क्या होगा जब की तरह एक app की दुकान पर कुछ खरीदने के लिए। इसके अलावा, आप के बाद इसे बनाने के लिए, हम सिर्फ सतर्क दिखा। सब ठीक है, बस जल्दी से चलो परीक्षण है कि काम करेंगे या नहीं। यह बहुत अच्छा है। अब हम वास्तव में एक पैदा करते हैं यूआई अलर्ट के लिए इनपुट क्षेत्र। यह हम ऐसा कैसे है। और हम एक होना चाहिए अलर्ट के लिए इनपुट देखें। बहुत अच्छा। के सिर्फ 10 कहते हैं। यह सही कुछ भी नहीं कर रही है अब कॉल वास्तव में, क्योंकि मारियो को क्रियान्वित करने के लिए परिवर्तन नहीं किया। तो यह एक छोटी सी बन गई है थोड़ा अजीब क्योंकि जब भी हम जब भी हम नीचे एक बटन दबाएँ चेतावनी दृश्य में एक बटन दबाते हैं, कुछ है, नहीं होना चाहिए लेकिन यह नहीं होता है। हम चाहते हैं कि कैसे पकड़ने करते हैं? कैसे करना है कि हम एक उपयोगकर्ता को पता है कि एक चेतावनी दृश्य को खारिज कर दिया गया है और पहले से ही है, क्योंकि एक संख्या में प्रवेश किया ठीक है अब कुछ भी नहीं है वास्तव में क्या हो रहा है। खैर, आप अंदाज़ा लगा सकते यह ठीक है, प्रतिनिधिमंडल। इतना सब करने के लिए इसके अलावा में इन घोषणाओं, हम एक नए प्रतिनिधिमंडल को जोड़ने की जरूरत है यह यूआई चेतावनी देखें प्रतिनिधि बुलाया। हर एक तो यह है कि बातचीत या घटना हमारे पास करने के लिए जा रहे हैं कि यूआई सतर्क दृष्टि से संभाला जा रहा है के रूप में अच्छी तरह से हमारे वर्ग द्वारा। तो उस के अलावा, हो जाएगा सूचकांक में अलर्ट देखें क्लिक करें बटन। इस पर पहुंच गया है। हमारे पास उस मामले में तो already-- तो हम है एक प्रोटोकॉल पता चला कि जब घटना संभाल लेंगे हम किया बटन को क्लिक करें चेतावनी देखने पर। तो हर बार हम खारिज चेतावनी देखने के लिए, यह नहीं होना चाहिए। मुझे अभी बहुत जल्दी यह परीक्षण करते हैं। खैर दरअसल, हम यहाँ पहुँच गए हैं। यहाँ तो, क्या हम नहीं करेंगे वास्तव में वास्तव में है मिल इसलिए हम बाहर निकलना चाहते हैं the-- मिल हम पहले से है कि पाठ चेतावनी दृश्य में प्रवेश किया। और पाठ पर आधारित है, हम कर रहे हैं मारियो प्रदर्शित करने के लिए जा रहा है। यह बहुत जल्दी से पता चला है यह वास्तव में काम करता है या नहीं है। उस मामले में तो, हम इनपुट अगर, हम 10 देखना चाहिए, 10, चलो कहते हैं। बहुत अच्छा, हम यहां एक संख्या है। यह बहुत अच्छा है। अब अंतिम चरण तो be-- जाएगा अंतिम चरण के लिए हम अभी क्या करने की जरूरत सिर्फ एक साथ मारियो कॉल कर रहा है स्तर इनपुट के आधार पर कि हम सतर्क देखने में डाल दिया है। इसलिए हम बदलने की जरूरत है आईओएस में इस स्ट्रिंग। स्टेटिक अतिप्रवाह बहुत भयानक है। और फिर हम सिर्फ आत्म कॉल marioWithLevels मूल्य। के देखेंगे कि चलो वास्तव में काम करते हैं या नहीं। हम पहले से ही एक पिरामिड दिया हो। की ऊंचाई को बदलने की कोशिश करते हैं। यही कारण है कि वास्तव में काम करता है। यह बहुत अच्छा है। कि अब आप कर सकते हैं तो बस इनपुट आप चाहते हैं कि किसी भी मूल्य। चलो बस चार कहते हैं। यह बहुत भयानक है। तो यह मूल रूप से है एक सच में त्वरित उदाहरण के लिए कोड में एक परियोजना बनाने के लिए कैसे और वास्तव में जल्दी से तार करने के लिए कैसे कुछ सच में सरल घटनाओं और कार्य करता है। तो स्रोत जा रहा है बाद में ऑनलाइन रखा जाना है। आप रुचि रखते हैं तो अगर iOS के मारियो कैसे काम करता है में, मैं वास्तव में एक ही डाला जा रहा हूँ बाद में CS50 वेबसाइट पर परियोजनाओं। हम मूल रूप से कर रहे हैं गर्मियों में, हम और खत्म करने से पहले मैं बस करने के लिए तुम लोगों को बात करने के लिए करना चाहते हैं कुछ सच में भयानक संसाधनों कि ऑनलाइन उपलब्ध हैं। जाहिर है एप्पल प्रलेखन बहुत उपयोगी होने जा रहा है। लेकिन उस के अलावा, मैं विशेष रूप से चार सूत्रों का कहना है, कोड स्कूल की सिफारिश ट्री हाउस, AppCoda और WWDC वीडियो। कोड स्कूल और पेड़ घर कर रहे हैं दो ऑनलाइन शिक्षित वेबसाइटों, जो विशेष रूप से ध्यान केंद्रित सॉफ्टवेयर इंजीनियरिंग पर। खासकर कोड स्कूल के लिए, वे iOS पर वास्तव में अच्छा ट्यूटोरियल है। यही कारण है कि इसके लिए एक बहुत जल्दी उदाहरण है। वे वास्तव में एक बहुत cute-- बना उस छोटे से प्यारा iPhone पर देखने के लिए वहाँ पर यार, यह बहुत भयानक है। और जिस तरह से वे उद्देश्य की व्याख्या सी वाक्य रचना पूरी तरह से स्पष्ट है। पेड़ के घर में ही है। और AppCoda एक मंच है। यह वास्तव में चला गया था कि एक ब्लॉग है वास्तव में एक अनुभवी उद्देश्य सी द्वारा प्रोग्रामर। और AppCoda में उन सभी ट्यूटोरियल हैं बहुत कम है और लागू करने के लिए आसान है, अत्यधिक की सिफारिश की। और अगर आप एक डेवलपर हैं, तो निश्चित रूप से जाँच करें जाओ कैसे WWDC वीडियो जहां आप कर सकते हैं नवीनतम आईओएस प्रोग्रामिंग के बारे में जानने के लिए तकनीक, एपीआई और पुस्तकालयों। तो यह है कि बहुत ज्यादा है संगोष्ठी के लिए यह। बहुत बहुत धन्यवाद। और मुझे लगता है कि तुम मज़ा है उम्मीद अपनी खुद की iOS एप्लिकेशन बनाने।