1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [संगोष्ठी] [iOS: एक मालिक की तरह क्षुधा लेखन] 2 00:00:02,000 --> 00:00:04,000 [टॉमी MacWilliam] [हार्वर्ड विश्वविद्यालय] 3 00:00:04,000 --> 00:00:08,000 [यह CS50 है.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> सही, हर कोई, IOS के लिए आपका स्वागत है: एक मालिक की तरह क्षुधा लेखन. 5 00:00:12,000 --> 00:00:16,000 इस संगोष्ठी में iPhone के लिए क्षुधा लेखन पर ध्यान केंद्रित करने के लिए जा रहा है 6 00:00:16,000 --> 00:00:19,000 और बदले में iPad के लिए क्षुधा लेखन, और इसलिए हम मूल रूप से के माध्यम से चलने के लिए जा रहे हैं 7 00:00:19,000 --> 00:00:23,000 कैसे एक app बनाने के लिए कुछ अलग उदाहरणों, टिक टीएसी को पैर की अंगुली की तरह एक सरल खेल है, 8 00:00:23,000 --> 00:00:26,000 या यदि आप समाचार पाठक के कुछ प्रकार की तरह एक app बनाने में अधिक रुचि रखते हैं 9 00:00:26,000 --> 00:00:30,000 या कुछ और है कि मैं इंटरनेट के रूप में अच्छी तरह से है कि बारे में बात करेंगे के साथ सूचना का आदान प्रदान. 10 00:00:30,000 --> 00:00:32,000 यहाँ अपने संक्षिप्त एजेंडा है. 11 00:00:32,000 --> 00:00:36,000 >> IOS क्षुधा एक उद्देश्य सी बुलाया भाषा में लिखा जाता है, 12 00:00:36,000 --> 00:00:39,000 और इसलिए यह एक छोटी सी के समान है, लेकिन वास्तव में नहीं है सब पर सा है, 13 00:00:39,000 --> 00:00:41,000 तो हम भाषा के बारे में खुद को एक छोटा सा बात कर रहा हूँ 14 00:00:41,000 --> 00:00:45,000 और फिर इस app XCode कार्यक्रम बुलाया का उपयोग करने के लिए iPhone क्षुधा का निर्माण कैसे, 15 00:00:45,000 --> 00:00:48,000 अगर आप अभी तक डाउनलोड नहीं किया है डाउनलोड अब शुरू करने के लिए स्वतंत्र महसूस हो रहा है. 16 00:00:48,000 --> 00:00:50,000 यह कई गीगाबाइट है. 17 00:00:50,000 --> 00:00:54,000 यह App स्टोर पर मुक्त होना चाहिए, तो आप एक मैक है की आवश्यकता होगी 18 00:00:54,000 --> 00:00:57,000 आदर्श ओएस एक्स के नवीनतम संस्करण चला 19 00:00:57,000 --> 00:00:59,000 यदि आप नहीं कर रहे हैं, कोई समस्या नहीं. 20 00:00:59,000 --> 00:01:02,000 हम अपने इस्तेमाल के लिए विज्ञान केंद्र में उपलब्ध Macs 21 00:01:02,000 --> 00:01:05,000 साथ XCode स्थापित है, और विकास के लिए उन का उपयोग करने के लिए स्वतंत्र महसूस हो रहा है. 22 00:01:05,000 --> 00:01:07,000 यदि आप के लिए एक app बनाना चाहते हैं, लेकिन एक मैक नहीं है, चिंता मत करो. 23 00:01:07,000 --> 00:01:09,000 वहाँ उस के लिए परिसर में संसाधनों का बहुत है. 24 00:01:09,000 --> 00:01:15,000 और यदि ऐसा है तो फिर हम विभिन्न क्षुधा आप कर सकते हैं 2 बड़ा उदाहरण को कवर करने के लिए जा रहे हैं. 25 00:01:15,000 --> 00:01:19,000 उद्देश्य सी तकनीकी सी. के एक सुपर सेट क्या कहा जाता है 26 00:01:19,000 --> 00:01:24,000 इसका मतलब है कि किसी भी सी कोड भी मान्य कोड उद्देश्य सी है. 27 00:01:24,000 --> 00:01:29,000 इसका मतलब है कि हम वाहिनी की तरह सी. करने के लिए कुछ अतिरिक्त सुविधाओं पर टेप 28 00:01:29,000 --> 00:01:33,000 इन सुविधाओं में से कुछ के लिए कभी malloc फिर से लिखने के लिए नहीं होने के शामिल है, भगवान का शुक्र है, 29 00:01:33,000 --> 00:01:36,000 कोई उन मूर्ख संकेत के बारे में चिंता कर रहे हैं और उन्हें मुक्त और वह सब सामान 30 00:01:36,000 --> 00:01:40,000 आप सी के बारे में नफरत है, और यह की तरह उद्देश्य सी में चला गया. 31 00:01:40,000 --> 00:01:43,000 >> अब, उद्देश्य सी भी एक बहुत बड़ा मानक पुस्तकालय है, 32 00:01:43,000 --> 00:01:47,000 तो वहाँ एक बहुत अधिक कार्यक्षमता आप उद्देश्य सी के मुक्त अंदर के लिए मिलता है. 33 00:01:47,000 --> 00:01:50,000 याद है जब हम PHP लिख रहे थे, हमने देखा है कि हम से चला गया 34 00:01:50,000 --> 00:01:54,000 इस छोटी इन सब पागल चीजें आप कर सकते विशाल पुस्तकालय के लिए भाषा. 35 00:01:54,000 --> 00:01:56,000 एक ही बात IOS में होता है. 36 00:01:56,000 --> 00:01:59,000 बौद्ध कैलेंडर की तरह बातों के लिए वस्तुओं है, और वास्तव में कुछ भी 37 00:01:59,000 --> 00:02:05,000 आप संभवतः उद्देश्य सी के कार्यान्वयन में शायद पहले से ही मौजूद है के बारे में सोच सकते हैं. 38 00:02:05,000 --> 00:02:08,000 उद्देश्य सी के उद्देश्य भाग कुछ संदर्भित है 39 00:02:08,000 --> 00:02:11,000 वस्तु उन्मुख प्रोग्रामिंग कहा जाता है. 40 00:02:11,000 --> 00:02:14,000 यह एक नई अवधारणा की तरह है, लेकिन हम वास्तव में ज्यादातर सीखा है 41 00:02:14,000 --> 00:02:17,000 इन अवधारणाओं के एक बहुत पहले से ही. 42 00:02:17,000 --> 00:02:19,000 ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के पीछे विचार यह है कि आप संरचना करने के लिए जा रहे हैं 43 00:02:19,000 --> 00:02:23,000 इन बातों के आसपास अपने कोड का एक बहुत वर्ग कहा जाता है, 44 00:02:23,000 --> 00:02:26,000 और इन कक्षाओं वास्तव structs महिमा कर रहे हैं. 45 00:02:26,000 --> 00:02:30,000 एक struct के अंदर हम मूल रूप से यहाँ कहा एक बात है, 46 00:02:30,000 --> 00:02:32,000 और इस बात के सदस्यों को हो सकता है. 47 00:02:32,000 --> 00:02:35,000 उदाहरण के लिए, एक लिंक सूची में एक नोड अन्य बातों के हो सकता है 48 00:02:35,000 --> 00:02:38,000 एक मूल्य की तरह, सूची में अगले नोड के लिए एक सूचक है, 49 00:02:38,000 --> 00:02:44,000 और साथ में है कि सूचक और कहा कि मूल्य एक struct के इस एक उदाहरण की रचना की. 50 00:02:44,000 --> 00:02:47,000 क्लासेस बहुत समान हैं, को छोड़कर 51 00:02:47,000 --> 00:02:50,000 कक्षाएं भी उन के अंदर कार्य हो सकता है. 52 00:02:50,000 --> 00:02:54,000 जब हम एक struct की घोषणा की है, हम केवल int n या नोड अगले * कह सकता है. 53 00:02:54,000 --> 00:02:57,000 >> अब उद्देश्य सी के साथ हम वास्तव में कार्य डाल सकते हैं 54 00:02:57,000 --> 00:02:59,000 अंदर उन चीजों में से एक है. 55 00:02:59,000 --> 00:03:03,000 एक और बात यह है कि कक्षाओं में कर सकते हैं वे अन्य वर्गों से डेटा वारिस कर सकते हैं. 56 00:03:03,000 --> 00:03:07,000 उदाहरण के लिए, हम में निर्मित उद्देश्य सी वर्गों का एक गुच्छा पर लग रही होगी. 57 00:03:07,000 --> 00:03:11,000 उनमें से एक वर्ग है कि एक स्क्रीन के लिए दृश्य का प्रतिनिधित्व हो सकता है, 58 00:03:11,000 --> 00:03:14,000 और इतना कह कर मैं अपना खुद का दृश्य को लागू करना चाहते हैं 59 00:03:14,000 --> 00:03:18,000 हम मूल रूप से एप्पल पर किसी पर, शायद सच में अच्छा लोगों का कहना है, 60 00:03:18,000 --> 00:03:21,000 मेरे लिए इस वर्ग लिखा है, और यह बटन प्रदर्शित की तरह बातें संभालती 61 00:03:21,000 --> 00:03:25,000 या स्क्रीन प्रतिपादन, और हम वास्तव में दुख होगा 62 00:03:25,000 --> 00:03:28,000 कि सभी कार्यक्षमता खुद को लागू करने के लिए, और इसलिए बस से 63 00:03:28,000 --> 00:03:31,000 डेटा इनहेरीट हम सब कुछ कह सकते हैं कि आप उस वर्ग में किया था 64 00:03:31,000 --> 00:03:34,000 मैं भी अपने वर्ग के अंदर करना चाहते हैं, और फिर मैं कुछ अन्य सामान के लिए जा रहा हूँ, 65 00:03:34,000 --> 00:03:37,000 अर्थात् एक app को लागू. 66 00:03:37,000 --> 00:03:40,000 यही कि शब्द विरासत क्या मतलब है. हम एक और अधिक ठोस उदाहरण देखेंगे. 67 00:03:40,000 --> 00:03:42,000 >> और अंत में, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के साथ कुंजी है कि 68 00:03:42,000 --> 00:03:45,000 यह डेटा encapsulation की ओर जाता है. 69 00:03:45,000 --> 00:03:48,000 हमारी समस्या के कुछ सेट हम इन बड़े, वैश्विक चर हो सकता है 70 00:03:48,000 --> 00:03:51,000 और हर जगह वैश्विक है, और है कि कैसे हम राज्य का ट्रैक रखना चाहते हैं. 71 00:03:51,000 --> 00:03:55,000 कक्षाओं के साथ हम एक वस्तु के अंदर जानकारी encapsulating शुरू कर सकते हैं. 72 00:03:55,000 --> 00:03:58,000 यदि हम हमारे app पर एक स्क्रीन है, हम वास्तव में से कोई डेटा की जरूरत नहीं 73 00:03:58,000 --> 00:04:01,000 हमारे कि अंदर के अनुप्रयोग में एक और स्क्रीन, 74 00:04:01,000 --> 00:04:04,000 और वर्गों के भीतर चीजें encapsulating द्वारा यह वास्तव ओर जाता है 75 00:04:04,000 --> 00:04:08,000 ज्यादा बेहतर कोड डिजाइन करने के लिए, और कुछ अतिरिक्त सुविधाओं के साथ संभव है 76 00:04:08,000 --> 00:04:11,000 उद्देश्य सी के. 77 00:04:11,000 --> 00:04:15,000 Forewarning, उद्देश्य सी के लिए वाक्यविन्यास केले है. 78 00:04:15,000 --> 00:04:19,000 यह कुछ भी नहीं है हम पहले देखा है की तरह है, 79 00:04:19,000 --> 00:04:22,000 तो यह एक सीखने की अवस्था के लिए इस्तेमाल किया जा रहा है का एक छोटा सा है 80 00:04:22,000 --> 00:04:24,000 क्या बिल्ली यह मतलब है? 81 00:04:24,000 --> 00:04:27,000 लेकिन एक बार आप पिछले प्रारंभिक सीखने की अवस्था है कि यह सच है, सच में चिकनी 82 00:04:27,000 --> 00:04:29,000 क्षुधा लेखन शुरू. 83 00:04:29,000 --> 00:04:33,000 >> एक वर्ग की घोषणा करने के लिए यहाँ कहने की मेरी कक्षा है, यह मौजूद है, 84 00:04:33,000 --> 00:04:35,000 और शायद यहाँ कुछ चीजें हैं कि मैं बाद में को परिभाषित करने के लिए जा रहा हूँ, 85 00:04:35,000 --> 00:04:38,000 मैं @ अंतरफलक कहने जा रहा हूँ. 86 00:04:38,000 --> 00:04:41,000 मैं @ अंतरफलक कहने जा रहा हूँ. मैं अपनी कक्षा एक नाम देने के लिए जा रहा हूँ. 87 00:04:41,000 --> 00:04:43,000 और फिर बाद में कहीं और मैं अंत @ कहने जा रहा हूँ, 88 00:04:43,000 --> 00:04:46,000 @ इंटरफ़ेस और @ अंत के बीच में सब कुछ और 89 00:04:46,000 --> 00:04:48,000 मेरी कक्षा के लिए जा रहा है. 90 00:04:48,000 --> 00:04:51,000 कि क्या हमारे ज फ़ाइलों के अंदर जा रहा है. 91 00:04:51,000 --> 00:04:55,000 सी में वैसे ही जैसे हमारे ज फ़ाइलें मूल रूप से यहां कहा कि कुछ चीजें हैं जो मौजूद होगा. 92 00:04:55,000 --> 00:04:57,000 मैं यह जरूरी नहीं कह रहा हूँ कि वे अभी तक क्या, 93 00:04:57,000 --> 00:04:59,000 लेकिन संकलक को पता है कि वे मौजूद हैं की जरूरत है. 94 00:04:59,000 --> 00:05:04,000 बाद में हमारे मीटर के अंदर फ़ाइलों क्योंकि उद्देश्य सी के लिए मीटर 95 00:05:04,000 --> 00:05:08,000 हम वास्तव में जहां को परिभाषित करने के लिए इन कक्षाओं में क्या करते जा रहे हैं. 96 00:05:08,000 --> 00:05:11,000 हमारे ग फ़ाइलें बहुत पसंद है, हम कार्यों के लिए एक कार्यान्वयन प्रदान की है. 97 00:05:11,000 --> 00:05:15,000 अंदर हमारे. मीटर फ़ाइल की हम यहाँ कहने जा रहे कार्यों के सभी 98 00:05:15,000 --> 00:05:18,000 मेरी कक्षा क्या वे सब के अंदर. 99 00:05:18,000 --> 00:05:22,000 और अंत में, एक struct के अंदर हम उन घुंघराले ब्रेसिज़ के अंदर कह सकते हैं 100 00:05:22,000 --> 00:05:25,000 int n या * अगले नोड, 101 00:05:25,000 --> 00:05:28,000 और उद्देश्य सी में हम कीवर्ड @ संपत्ति का उपयोग करने के लिए जा रहे हैं, 102 00:05:28,000 --> 00:05:31,000 और यह है कि गुणों को परिभाषित करने के लिए जा रहा है, 103 00:05:31,000 --> 00:05:36,000 या गैर कार्य करता है कि मेरी कक्षा का एक हिस्सा हैं. 104 00:05:36,000 --> 00:05:40,000 >> उद्देश्य सी में कार्यों कॉलिंग भी केले है. 105 00:05:40,000 --> 00:05:43,000 जब हम सी में कार्यों की घोषणा की हम जैसे कुछ int foo कहा 106 00:05:43,000 --> 00:05:46,000 और कोष्ठक खुला और फिर इसे तर्कों की एक सूची दी है. 107 00:05:46,000 --> 00:05:51,000 यह वही है जो तरीकों या कार्यों की घोषणा के उद्देश्य सी में की तरह लग रहा है. 108 00:05:51,000 --> 00:05:54,000 अगर मैं एक समारोह या एक विधि की घोषणा करना चाहते हैं 109 00:05:54,000 --> 00:05:58,000 जहाँ मैं विधि कह रहा हूँ सच में सिर्फ एक समारोह है कि एक वर्ग के एक सदस्य है, 110 00:05:58,000 --> 00:06:01,000 विनिमेय की तरह है, लेकिन वास्तव में नहीं तो, 111 00:06:01,000 --> 00:06:03,000 तो मेरे विधि के अंदर मैं करने के लिए एक नई विधि बनाने चाहते हैं. 112 00:06:03,000 --> 00:06:06,000 यह करने के लिए कुछ भी नहीं लौटने जा रहा है, तो यह प्रकार शून्य से होने जा रहा है. 113 00:06:06,000 --> 00:06:08,000 यह मेरे समारोह की वापसी प्रकार है. 114 00:06:08,000 --> 00:06:11,000 अब हम parens यहाँ है, क्योंकि मैं नहीं जानता कि. 115 00:06:11,000 --> 00:06:14,000 अगले करने के लिए अपने कार्य के नाम पर होने जा रहा है, 116 00:06:14,000 --> 00:06:17,000 और फिर अंत में हम जैसे हम सी. में था सिर्फ एक सेमीकोलन 117 00:06:17,000 --> 00:06:19,000 यहाँ नया क्या है इस आदमी को यहाँ है. 118 00:06:19,000 --> 00:06:22,000 यह हायफ़न वास्तव में आवश्यक है, और यह क्या कहते हैं कि 119 00:06:22,000 --> 00:06:26,000 यहाँ इस विधि के एक वर्ग का एक उदाहरण पर बुलाया जाना चाहिए. 120 00:06:26,000 --> 00:06:29,000 >> के बाद हम अपने structs घोषित संभवत: हम कुछ की तरह कहा 121 00:06:29,000 --> 00:06:32,000 struct नोड n, और वास्तव में बनाया है कि 122 00:06:32,000 --> 00:06:35,000 या उन structs instantiated इतना है कि मैं वास्तव में काम शुरू कर सकता 123 00:06:35,000 --> 00:06:38,000 क्या यह के अंदर है, तो इस पानी का छींटा का मतलब है कि हम 124 00:06:38,000 --> 00:06:41,000 वर्ग इन्स्तांत सिर्फ हम instantiated की तरह है कि struct 125 00:06:41,000 --> 00:06:43,000 इससे पहले कि हम उस पर इस विधि कॉल कर सकते हैं. 126 00:06:43,000 --> 00:06:46,000 अगर मैं अपने तरीकों के लिए तर्क जोड़ने शुरू करना चाहते हैं 127 00:06:46,000 --> 00:06:48,000 यह और भी अधिक केले हो जाता है. 128 00:06:48,000 --> 00:06:50,000 यहाँ मेरे विधि नाम है. 129 00:06:50,000 --> 00:06:53,000 तो मैं एक बृहदान्त्र के लिए जा रहा हूँ, और इस कोलन के बाद यह यहाँ का कहना कुछ तर्क आता है. 130 00:06:53,000 --> 00:06:56,000 इस विधि में एक तर्क लेता. 131 00:06:56,000 --> 00:06:59,000 अपने तर्क के प्रकार एक int है, और उस तर्क के नाम है 132 00:06:59,000 --> 00:07:03,000 या चर कि मैं विधि के अंदर का उपयोग शुरू करने के लिए जा रहा हूँ मैं कहा जाता है. 133 00:07:03,000 --> 00:07:05,000 फिर, यह विधि है. यह एक तर्क लेता. 134 00:07:05,000 --> 00:07:10,000 >> यदि आप अधिक तर्क जोड़ने शुरू करना चाहते हैं यह अधिक केले हो जाता है 135 00:07:10,000 --> 00:07:13,000 में है कि हम इस बृहदान्त्र कि यहाँ का कहना है मेरे तर्कों की सूची में आता है. 136 00:07:13,000 --> 00:07:15,000 यह पहला तर्क एक पूर्णांक है. 137 00:07:15,000 --> 00:07:17,000 अब, यह दूसरा तर्क दिलचस्प है. 138 00:07:17,000 --> 00:07:20,000 चर है कि मैं अपने कार्य के अंदर का उपयोग करने के लिए जा रहा हूँ 139 00:07:20,000 --> 00:07:23,000 एक कहा जाता है, तो अंदर मैं अपने कार्य के कह सकते हैं 140 00:07:23,000 --> 00:07:25,000 च + 1 = या कुछ और. 141 00:07:25,000 --> 00:07:30,000 यहाँ यह बात है कि तर्क या पैरामीटर के लिए मूल रूप से एक कुंजी है. 142 00:07:30,000 --> 00:07:34,000 वैसे ही जैसे हम महत्वपूर्ण मूल्य जोड़े था और JSON या साहचर्य arrays की तरह कुछ 143 00:07:34,000 --> 00:07:37,000 उद्देश्य सी के लिए कहते हैं, ठीक करने का फैसला किया है, बस इतना है कि यह वास्तव में स्पष्ट है 144 00:07:37,000 --> 00:07:39,000 जब आप इन सभी मापदंडों क्या कर रहे हैं एक विधि कॉल 145 00:07:39,000 --> 00:07:41,000 मैं वास्तव में उन सभी का नाम करने के लिए जा रहा हूँ. 146 00:07:41,000 --> 00:07:45,000 जब आप एक विधि कहते हैं, आप वास्तव में andFloat कहते हैं, 147 00:07:45,000 --> 00:07:47,000 और फिर आप इसे पारित अंदर हूँ 148 00:07:47,000 --> 00:07:50,000 >> दिलचस्प है, यह एक नाम नहीं है, लेकिन अन्य मानकों के सभी कर रहे हैं, 149 00:07:50,000 --> 00:07:53,000 इसलिए यदि हम एक 3 तर्क था मैं andFloat कह सकते हैं 150 00:07:53,000 --> 00:07:56,000 और एक अन्य नाव और इतने पर. 151 00:07:56,000 --> 00:08:01,000 जब मैं इन तरीकों फोन यह पाठ्यक्रम केले की है, 152 00:08:01,000 --> 00:08:04,000 यदि ऐसा है तो मैं एक वस्तु है, और मैं एक विधि बुलाया foo परिभाषित, 153 00:08:04,000 --> 00:08:09,000 और मैं इसे कहते हैं, बजाय कह foo खुला / करीब parens चाहते हैं 154 00:08:09,000 --> 00:08:11,000 मैं एक वर्ग को खोलने के लिए जा रहा हूँ. 155 00:08:11,000 --> 00:08:13,000 यहाँ मेरे विधि का नाम है. 156 00:08:13,000 --> 00:08:17,000 मैं ब्रैकेट बंद करने के लिए जा रहा हूँ, और इस वस्तु है मैं उस पर बुला रहा हूँ. 157 00:08:17,000 --> 00:08:20,000 याद है, इन तरीकों के सभी वर्गों के भीतर मौजूद हैं 158 00:08:20,000 --> 00:08:23,000 क्योंकि कक्षाएं उन के अंदर परिभाषित तरीकों हो सकता है. 159 00:08:23,000 --> 00:08:26,000 >> यहाँ मैं मनमाने ढंग से कुछ वर्ग की एक वस्तु बना लिया है, 160 00:08:26,000 --> 00:08:28,000 और यह करने के लिए वाक्यविन्यास है. 161 00:08:28,000 --> 00:08:31,000 वहाँ 2 एक वस्तु बनाने के लिए कदम उठाए हैं. 162 00:08:31,000 --> 00:08:34,000 पहले कदम के लिए कहते हैं कि मैं जगह आवंटित करना चाहते है. 163 00:08:34,000 --> 00:08:37,000 यह एक malloc के बराबर है. हम malloc और कहने की जरूरत नहीं है. 164 00:08:37,000 --> 00:08:42,000 हम मीटर गिरा दिया, यह alloc बनाया, और मीटर के साथ ग प्रतिस्थापित. 165 00:08:42,000 --> 00:08:47,000 हम alloc कुछ के बाद हम तो यह इनिशियलाइज़ की जरूरत है. 166 00:08:47,000 --> 00:08:49,000 असल में जब आप वस्तुओं को बनाने के लिए कुछ तर्क करना चाह सकते हैं 167 00:08:49,000 --> 00:08:53,000 कि कार्यान्वित जब वे पैदा कर रहे हैं, तो आप कुछ मूलभूत मूल्यों में पारित कर सकते हैं 168 00:08:53,000 --> 00:08:57,000 या उस तरह कुछ, और इसलिए इस init विधि है क्या वास्तव में ऑब्जेक्ट बनाता है. 169 00:08:57,000 --> 00:08:59,000 हम पहली जगह आवंटित करने, जैसे हम सी में किया था, 170 00:08:59,000 --> 00:09:04,000 और फिर हम इसे शुरू करेंगे, जो करने के लिए या एक पूरी बहुत कुछ नहीं हो सकता है. 171 00:09:04,000 --> 00:09:07,000 तो फिर हम एक वस्तु ओ में इस बात को लौट रहे हैं. 172 00:09:07,000 --> 00:09:09,000 एक सितारा यहाँ है क्योंकि यह तकनीकी रूप से एक सूचक है, 173 00:09:09,000 --> 00:09:12,000 लेकिन चिंता मत करो, संकेत है कि उद्देश्य सी में एक बड़ा सौदा नहीं कर रहे हैं. 174 00:09:12,000 --> 00:09:15,000 >> अब हम इस NSObject वर्ग बुलाया instantiated है, 175 00:09:15,000 --> 00:09:19,000 और यह सिर्फ एक यादृच्छिक वर्ग है कि एप्पल है. 176 00:09:19,000 --> 00:09:22,000 हम इस instantiated है, और अब मैं इस वर्ग का एक उदाहरण है 177 00:09:22,000 --> 00:09:25,000 इस वस्तु ओ में है, तो इसका मतलब है कि अगर मैं परिभाषित 178 00:09:25,000 --> 00:09:29,000 इन तरीकों मैं उन्हें इस तरह से कह सकते हैं. 179 00:09:29,000 --> 00:09:31,000 इसी तरह, अगर मैं एक तर्क के साथ एक विधि फोन करना चाहता था 180 00:09:31,000 --> 00:09:34,000 तो इस बार विधि है, कि एक तर्क लेता है, 181 00:09:34,000 --> 00:09:38,000 और यहाँ baz: qux विधि, तो यह 2 तर्क लेता है. 182 00:09:38,000 --> 00:09:44,000 यह इस वस्तु ओ पर एक समारोह बुला रहा है. 183 00:09:44,000 --> 00:09:46,000 मतलब होता है? 184 00:09:46,000 --> 00:09:50,000 वाक्यविन्यास समझ बनाने के लिए करना चाहिए, लेकिन आप की तरह इसकी आदत हो. 185 00:09:50,000 --> 00:09:54,000 >> ठीक है, चलो कुछ चीजें है कि उद्देश्य सी में बनाया जाता है के बारे में बात करते हैं 186 00:09:54,000 --> 00:09:56,000 यह जरूरी है कि सी. में नहीं बनाया गया था 187 00:09:56,000 --> 00:09:59,000 सी में हम किस तरह का इन बेवकूफ चरित्र arrays के रूप में तार के साथ सौदा किया था, 188 00:09:59,000 --> 00:10:01,000 और यह वास्तव में गुस्सा है. 189 00:10:01,000 --> 00:10:04,000 उद्देश्य सी उन सब हमारे लिए में बनाया गया है, और यह में बनाया गया है 190 00:10:04,000 --> 00:10:06,000 इस NSString नामक वर्ग का उपयोग कर. 191 00:10:06,000 --> 00:10:10,000 जब मैं एक NSString हम और अधिक रहस्यमय वाक्यविन्यास है बनाना चाहते हैं. 192 00:10:10,000 --> 00:10:15,000 बजाय कह 'CS50 "हम @" CS50 "कहते हैं 193 00:10:15,000 --> 00:10:17,000 और यह सिर्फ उद्देश्य सी में तार की घोषणा करने के लिए वाक्यविन्यास है. 194 00:10:17,000 --> 00:10:21,000 यह अत्यंत भूलना आसान है, ऐसा नहीं है. 195 00:10:21,000 --> 00:10:24,000 अब एक बार मैं यह है, यह एक स्ट्रिंग है, लेकिन नोटिस 196 00:10:24,000 --> 00:10:26,000 यह वास्तव में सिर्फ एक वस्तु है. 197 00:10:26,000 --> 00:10:30,000 मैंने कहा NSString है, जिसका मतलब है मैं वर्ग instantiated 198 00:10:30,000 --> 00:10:32,000 NSString, जो किसी और मेरे लिए लिखा है कहा जाता है, 199 00:10:32,000 --> 00:10:35,000 और वे इसके बारे में बहुत अच्छे थे, और अब 200 00:10:35,000 --> 00:10:37,000 मैं उस पर तरीकों बुला शुरू कर सकते हैं. 201 00:10:37,000 --> 00:10:40,000 अगर मैं इस वस्तु पर विधि लंबाई को बुलाओ 202 00:10:40,000 --> 00:10:43,000 यह मेरे लिए स्ट्रिंग की लंबाई वापस जा रहा है. 203 00:10:43,000 --> 00:10:45,000 यह सी में strlen की तरह है 204 00:10:45,000 --> 00:10:47,000 यह 4 लौटेंगे. 205 00:10:47,000 --> 00:10:51,000 >> इसी तरह, एक और तरीका है मैं के बारे में ध्यान करना चाहते हो सकता है इस characterAtIndex है. 206 00:10:51,000 --> 00:10:54,000 यह एक तरीका है कि इस स्ट्रिंग पर कहते है 207 00:10:54,000 --> 00:10:57,000 मैं आप 0 चरित्र पाने के लिए करना चाहते हैं, 208 00:10:57,000 --> 00:10:59,000 और इसलिए यह मेरे चरित्र ग लौटेंगे, 209 00:10:59,000 --> 00:11:02,000 और इन तरीकों में से एक पूरी गुच्छा है कि तुम सच में आसानी से गूगल कर सकते हैं. 210 00:11:02,000 --> 00:11:07,000 एप्पल प्रलेखन महान है, और हम एक बिट में उस पर एक नज़र रखना होगा. 211 00:11:07,000 --> 00:11:09,000 उन तार कर रहे हैं. 212 00:11:09,000 --> 00:11:11,000 हम भी चर आकार arrays का निर्माण किया है. 213 00:11:11,000 --> 00:11:13,000 सी में याद है जब हम एक सरणी की घोषणा 214 00:11:13,000 --> 00:11:16,000 हम कहते हैं कि तुम 5 तत्वों, कहानी का अंत करने के लिए किया था. 215 00:11:16,000 --> 00:11:18,000 जब हम जावास्क्रिप्ट और PHP मिला हम शुरू कर सकता है 216 00:11:18,000 --> 00:11:20,000 तत्वों को जोड़ने या आगे बढ़ तत्वों की तरह बातें कर रहे हैं. 217 00:11:20,000 --> 00:11:22,000 हम उद्देश्य सी में एक ही कर सकते हैं. 218 00:11:22,000 --> 00:11:26,000 के बजाय सामान्य सी रास्ते में एक सरणी बनाने 219 00:11:26,000 --> 00:11:30,000 हम फिर से एक और NSMutableArray वर्ग बुलाया है. 220 00:11:30,000 --> 00:11:33,000 वहाँ भी NSArray है, 221 00:11:33,000 --> 00:11:35,000 और यह मूल रूप से कुछ सरणी encapsulate जा रहा है. 222 00:11:35,000 --> 00:11:38,000 यह कहते हैं पहली बात मैं करना चाहता है मैं आवंटित करना चाहते हैं 223 00:11:38,000 --> 00:11:41,000 एक नई सरणी के लिए अंतरिक्ष, और उसके बाद मैं इसे आवंटित 224 00:11:41,000 --> 00:11:43,000 मैं तो इसे इनिशियलाइज़ की जरूरत है. 225 00:11:43,000 --> 00:11:45,000 फिर, बस इन 2 तरीकों बुला. 226 00:11:45,000 --> 00:11:48,000 अब यह है कि इस वस्तु के अंदर एक मतलब 227 00:11:48,000 --> 00:11:50,000 मैं एक खाली सरणी वहाँ बैठे है. 228 00:11:50,000 --> 00:11:54,000 अगर मैं इस सरणी के लिए कुछ जोड़ना चाहते हैं, तो मैं addObject विधि कॉल कर सकते हैं. 229 00:11:54,000 --> 00:11:59,000 मैं सरणी के लिए एक वस्तु जोड़ना चाहते हैं, और मैं CS50 स्ट्रिंग जोड़ना चाहते हैं. 230 00:11:59,000 --> 00:12:02,000 अगर मैं इसके विपरीत दूर है कि मैं कह सकता हूँ मैं चाहता हूँ 231 00:12:02,000 --> 00:12:09,000 सरणी पर पहले स्थान पर वस्तु को हटाने या एक आपत्ति है. 232 00:12:09,000 --> 00:12:11,000 >> मतलब होता है? 233 00:12:11,000 --> 00:12:14,000 ठीक है, आप की तरह इस वर्ग कोष्ठक बात के लिए इस्तेमाल किया. 234 00:12:14,000 --> 00:12:18,000 वैसे, एप्पल के पुस्तकालयों के एक बहुत कुछ के अंदर आप इस NS देखेंगे. 235 00:12:18,000 --> 00:12:21,000 एन एस वास्तव में अगला कदम है, जो स्टीव नौकरियाँ पहली कंपनियों में से एक थी के लिए खड़ा है, 236 00:12:21,000 --> 00:12:24,000 और कहा कि जहां वह वास्तव में कोड का एक बहुत लेखन शुरू कर दिया 237 00:12:24,000 --> 00:12:27,000 मैक ओएस एक्स और अन्य सामान के सभी के लिए आधार की तरह के रूप में, 238 00:12:27,000 --> 00:12:32,000 और इसलिए इस NS यह अच्छा विरासत की तरह एक पहले कंपनियों के लिए बाहर चिल्लाओ 239 00:12:32,000 --> 00:12:34,000 वापस जब एप्पल पहले से शुरू किया गया था. 240 00:12:34,000 --> 00:12:36,000 यह हर जगह है. 241 00:12:36,000 --> 00:12:41,000 चलो एक और अधिक समग्र उद्देश्य सी उदाहरण पर एक नज़र रखना. 242 00:12:41,000 --> 00:12:44,000 यहाँ मैं XCode के अंदर हूँ. 243 00:12:44,000 --> 00:12:47,000 यहाँ लाने के लिए, मैं पहली बार App स्टोर से XCode डाउनलोड, 244 00:12:47,000 --> 00:12:50,000 इसे खोल दिया, और फिर मैं ऊपर चला गया फाइल करने के लिए यहाँ, 245 00:12:50,000 --> 00:12:54,000 यहाँ पर नया, और फिर इस परियोजना के लिए. 246 00:12:54,000 --> 00:12:57,000 , के बाद मुझे लगता है कि मैं इन सभी विकल्पों मैं क्या बनाना चाहते हैं 247 00:12:57,000 --> 00:12:59,000 और इसलिए हम बाद में इन विकल्पों पर एक नज़र ले जाऊँगा, 248 00:12:59,000 --> 00:13:03,000 लेकिन सिर्फ इस उदाहरण के लिए, क्योंकि हम वास्तव में एक app अभी तक नहीं जा रहे हैं, 249 00:13:03,000 --> 00:13:06,000 मैं यहाँ आया था, और मैं कमांड लाइन उपकरण कहा, 250 00:13:06,000 --> 00:13:09,000 और यह एक app है कि मैं कमांड लाइन पर चला सकता है 251 00:13:09,000 --> 00:13:12,000 जैसे हम सी से चल रहा है 252 00:13:12,000 --> 00:13:16,000 कि कैसे मैं इस परियोजना बनाया, और अब मैं यहाँ हूँ, 253 00:13:16,000 --> 00:13:20,000 तो इस फाइल पर पहले देखो, और यह बहुत परिचित दिखना चाहिए. 254 00:13:20,000 --> 00:13:24,000 मैं एक int नाम है. मेरे दोस्त argc, मेरे अन्य दोस्त argv है. 255 00:13:24,000 --> 00:13:30,000 और इसलिए हम देख सकते हैं कि यह मेरा पहला उद्देश्य सी आवेदन के लिए प्रवेश बिंदु है. 256 00:13:30,000 --> 00:13:32,000 यहाँ हम अब के लिए इस की उपेक्षा कर सकते हैं. 257 00:13:32,000 --> 00:13:35,000 यह मूल रूप से कुछ स्मृति प्रबंधन सामान है कि आप वास्तव में नहीं होगा 258 00:13:35,000 --> 00:13:37,000 कभी के बारे में चिंता करने की ज़रूरत है. 259 00:13:37,000 --> 00:13:39,000 >> चलो इस 1 ब्लॉक में यहाँ देखो. 260 00:13:39,000 --> 00:13:46,000 यह पहली पंक्ति, अगर मैं कहना है कि छात्र * ऐलिस = [[छात्र alloc init]] कर रही है कि क्या है? 261 00:13:46,000 --> 00:13:50,000 यहाँ यह पहला छात्र है, यह शायद एक वर्ग है. 262 00:13:50,000 --> 00:13:54,000 यह एक वर्ग है कि एप्पल ने लिखा है, नहीं है, लेकिन यह एक वर्ग है कि मैं ने लिखा है. 263 00:13:54,000 --> 00:13:57,000 पहली बात मैं करना चाहता है मैं एक नए छात्र के लिए जगह आवंटित करना चाहते हैं, 264 00:13:57,000 --> 00:14:00,000 और फिर मैं यह इनिशियलाइज़ करना चाहते हैं, तो यह मुझे वापस देता है 265 00:14:00,000 --> 00:14:05,000 इस नए छात्र वस्तु है, और मैं एक चर बुलाया ऐलिस में इस संग्रहीत कर रहा हूँ. 266 00:14:05,000 --> 00:14:07,000 कि वर्ग कहां से आया? 267 00:14:07,000 --> 00:14:12,000 खैर, बाईं ओर यहाँ पर ये मेरा परियोजना के अंदर अलग अलग फ़ाइलों के सभी कर रहे हैं. 268 00:14:12,000 --> 00:14:16,000 हम यहाँ देख मैं एक Student.h और एक Student.m कर सकते हैं. 269 00:14:16,000 --> 00:14:20,000 ज. फ़ाइल याद है, जहां मैं चीज़ों के सभी की घोषणा 270 00:14:20,000 --> 00:14:22,000 कि कक्षा के भीतर मौजूद होगा. 271 00:14:22,000 --> 00:14:25,000 >> चलो उस पर एक नज़र रखना. 272 00:14:25,000 --> 00:14:29,000 ठीक है, यहाँ हम इस @ अंतरफलक है, और यह कहते हैं कि यहाँ आता है 273 00:14:29,000 --> 00:14:33,000 सब कुछ है कि मेरी कक्षा के भीतर मौजूद होगा की घोषणाओं. 274 00:14:33,000 --> 00:14:36,000 तो फिर मैं एक बृहदान्त्र है. तब मैं इस NSObject बात है. 275 00:14:36,000 --> 00:14:40,000 इस बृहदान्त्र हम थोड़ा पहले चर्चा कर रहे थे कि विरासत बिट का प्रतीक है. 276 00:14:40,000 --> 00:14:43,000 यह कहना है कि सब कुछ एक NSObject कर सकते हैं 277 00:14:43,000 --> 00:14:46,000 जहां NSObject इस वर्ग किसी और ने लिखा है, 278 00:14:46,000 --> 00:14:50,000 सब कुछ इस NSObject कर सकते हैं कि मैं ऐसा करने में सक्षम होना चाहते हैं. 279 00:14:50,000 --> 00:14:54,000 कह: NSObject इसका मतलब है कि मैं मूल रूप से 280 00:14:54,000 --> 00:14:58,000 एक अन्य वर्ग की कार्यक्षमता के सभी विरासत में मिला. 281 00:14:58,000 --> 00:15:02,000 कि वास्तव में मुझे विभिन्न तरीकों और गुण है कि मैं का उपयोग कर सकते हैं की एक पूरी गुच्छा दिया. 282 00:15:02,000 --> 00:15:05,000 यहाँ नीचे मैं 2 गुण पैदा कर रहा हूँ. 283 00:15:05,000 --> 00:15:08,000 कि मेरे छात्र का मतलब है, अगर यह एक struct थे, इन 2 बातें होगा 284 00:15:08,000 --> 00:15:11,000 मेरे struct के अंदर है, इसलिए हर छात्र को एक नाम है 285 00:15:11,000 --> 00:15:14,000 कि एक स्ट्रिंग है, और एक छात्र भी एक ग्रेड, 286 00:15:14,000 --> 00:15:17,000 जो एक int है. 287 00:15:17,000 --> 00:15:23,000 >> अंत में, यहाँ नीचे मैं अपने छात्र के लिए एक विधि बनाने के लिए जा रहा हूँ. 288 00:15:23,000 --> 00:15:26,000 मैं अपने तरीके से कहा जाता है, initWithName, और यह एक तर्क लेता है, 289 00:15:26,000 --> 00:15:31,000 और कि तर्क एक स्ट्रिंग है, और मैं यह कहा जाता है नाम. 290 00:15:31,000 --> 00:15:35,000 अब कैसे हम वास्तव में इस वर्ग लागू देखो. 291 00:15:35,000 --> 00:15:38,000 यहाँ, अब मैं मेरे मीटर फ़ाइल के अंदर हूँ, 292 00:15:38,000 --> 00:15:40,000 लागू करने के लिए कर रहा हूँ, मुझे लगता है. 293 00:15:40,000 --> 00:15:44,000 मैं अपने कार्यान्वयन है, अपने अंत, और यहाँ है जहाँ मैं वास्तव में परिभाषित कर रहा हूँ 294 00:15:44,000 --> 00:15:47,000 initWithName क्या करता है. 295 00:15:47,000 --> 00:15:50,000 मैं initWithName, मेरे पैरामीटर का नाम, और फिर इस 296 00:15:50,000 --> 00:15:53,000 वह जगह है जहाँ मैं वास्तव में एक छात्र का निर्माण कर रहा हूँ, 297 00:15:53,000 --> 00:15:56,000 और इसलिए यह एक छोटा सा गुप्त है, लेकिन इस boilerplate की तरह है 298 00:15:56,000 --> 00:15:58,000 कि आप अपने भवन निर्माताओं में शामिल करना चाहते हैं. 299 00:15:58,000 --> 00:16:02,000 इस initialization समारोह, initWithName, निर्माता का एक प्रकार है. 300 00:16:02,000 --> 00:16:05,000 आप मूल रूप से एक नए छात्र वस्तु का निर्माण कर रहे हैं 301 00:16:05,000 --> 00:16:07,000 और शायद यह के अंदर कुछ डेटा भेजने. 302 00:16:07,000 --> 00:16:11,000 पहली बात मैं करना चाहता है मैं इस सुपर बात पर init कॉल करना चाहते हैं. 303 00:16:11,000 --> 00:16:15,000 >> याद रखें कि जब मैं ज. फ़ाइल में कहा कि यहाँ वापस 304 00:16:15,000 --> 00:16:21,000 कि सब कुछ एक NSObject एक छात्र भी है. 305 00:16:21,000 --> 00:16:24,000 इसका मतलब है कि जब मैं एक छात्र मैं भी क्या करने की जरूरत है बनाते हैं 306 00:16:24,000 --> 00:16:28,000 यह सुनिश्चित कर लें कि NSObject है कि मैं है कि डेटा के सभी से इनहेरीट रहा हूँ 307 00:16:28,000 --> 00:16:32,000 भी ठीक से प्रारंभ है. 308 00:16:32,000 --> 00:16:36,000 मैं कहने की ज़रूरत क्या इस सुपर है वास्तव में माता पिता के वर्ग का उल्लेख करने के लिए जा रहा है 309 00:16:36,000 --> 00:16:39,000 कि मैं से इनहेरीट रहा हूँ, तो मुझे यकीन है कि मैं इनिशियलाइज़ बनाना चाहते हैं 310 00:16:39,000 --> 00:16:43,000 सब कुछ है कि मैं के आधार पर कर रहा हूँ इससे पहले कि मैं इसे इस्तेमाल करने की कोशिश कर रहा शुरू. 311 00:16:43,000 --> 00:16:46,000 तो अगर कि initialized सही ढंग से यह कह रही है की तरह है यदि malloc 312 00:16:46,000 --> 00:16:50,000 अशक्त वापस नहीं किया तो मैं कुछ संपत्तियों की स्थापना शुरू कर सकते हैं. 313 00:16:50,000 --> 00:16:54,000 >> जावास्क्रिप्ट और PHP में हम इस कीवर्ड बुलाया था, 314 00:16:54,000 --> 00:16:58,000 और यह एक वर्ग के वर्तमान उदाहरण के लिए भेजा. 315 00:16:58,000 --> 00:17:00,000 उद्देश्य सी में हम इस आत्म कहते हैं. 316 00:17:00,000 --> 00:17:04,000 जब मैं कहता self.name, इसका मतलब है कि वस्तु 317 00:17:04,000 --> 00:17:07,000 मैं सिर्फ बनाया था जब मैं ने कहा कि छात्र alloc init, 318 00:17:07,000 --> 00:17:09,000 कि एक वस्तु मुझे वापस दे रहा है. 319 00:17:09,000 --> 00:17:12,000 इसका मतलब है कि मैं उस वस्तु का नाम निर्धारित करना चाहते हैं 320 00:17:12,000 --> 00:17:15,000 मैं जो कुछ भी बस अंदर पारित 321 00:17:15,000 --> 00:17:18,000 बस सी में पसंद है, हम इस बिंदु के साथ सदस्यों का उपयोग करने के लिए, 322 00:17:18,000 --> 00:17:21,000 तो self.name छात्र वस्तु का नाम कहते हैं 323 00:17:21,000 --> 00:17:24,000 अब जो भी हो तुम सिर्फ अंदर पारित करने के लिए जा रहा है 324 00:17:24,000 --> 00:17:28,000 और इसलिए अंत में, मैं इसे वापस तो मैं वास्तव में कुछ वापस प्राप्त कर सकते हैं. 325 00:17:28,000 --> 00:17:30,000 >> प्रश्न? 326 00:17:30,000 --> 00:17:34,000 ठीक है, तो इस आत्म = सुपर init, 327 00:17:34,000 --> 00:17:37,000 अगर आप पूरी तरह से विरासत सामान समझ में नहीं आता है चिंता मत करो. 328 00:17:37,000 --> 00:17:40,000 बस पता है कि अगर तुम कभी अपने खुद के init विधि बनाना चाहते हैं तो बस 329 00:17:40,000 --> 00:17:42,000 ऐसा है कि, और तुम जाने के लिए अच्छा होगा. 330 00:17:42,000 --> 00:17:44,000 हाँ >> [छात्र] क्या अगर स्वयं का क्या मतलब है? 331 00:17:44,000 --> 00:17:49,000 इसका मतलब यह है जब हम कुछ हम हमेशा जाँच अगर यह अशक्त करने के लिए बराबर था malloc, 332 00:17:49,000 --> 00:17:51,000 और अगर यह शून्य था, तो हम बाहर हुआ. 333 00:17:51,000 --> 00:17:55,000 यह एक ही बात है, क्योंकि इस रिटर्न अशक्त अगर है, तो हम शायद seg गलती के लिए जा रहे हैं 334 00:17:55,000 --> 00:17:57,000 अगर हम यह हेरफेर करने की कोशिश कर रहा शुरू. 335 00:17:57,000 --> 00:18:01,000 कि हमारे छात्र वर्ग है. 336 00:18:01,000 --> 00:18:03,000 इसका मतलब है कि हम एक दो तरीके से हमारे छात्रों को हस्ताक्षर कर सकते हैं. 337 00:18:03,000 --> 00:18:08,000 अगर मैं कहूँ कि छात्र alloc init मुझे लगता है कि विधि का उपयोग नहीं कर रहा हूँ कि मैं सिर्फ लिखा, 338 00:18:08,000 --> 00:18:11,000 और इसके बजाय मैं बस alice.name कह सकते हैं, 339 00:18:11,000 --> 00:18:14,000 और अब मैं करने के लिए है कि संपत्ति के नाम सेट करने के लिए जा रहा हूँ. 340 00:18:14,000 --> 00:18:17,000 >> इसी तरह, अगर मैं उस initWithName विधि का उपयोग करना चाहते हैं 341 00:18:17,000 --> 00:18:20,000 मैं बस alloc कहते हैं, कर सकते हैं और फिर बजाय init कह 342 00:18:20,000 --> 00:18:24,000 मैं कि तरीका है कि मैं अभी बनाया कॉल करने के लिए जा रहा हूँ, और मैं बॉब में पारित करने के लिए जा रहा हूँ. 343 00:18:24,000 --> 00:18:30,000 इस बिंदु पर, इस वस्तु बॉब एक ​​नाम बॉब के लिए बराबर है. 344 00:18:30,000 --> 00:18:35,000 ठीक है, यहाँ नीचे मुझे लगता है कि NSMutableArray है कि हम पहले से कम देखा का उपयोग कर रहा हूँ. 345 00:18:35,000 --> 00:18:38,000 मैं space.Then का आवंटन कर रहा हूँ मैं एक नई सरणी आरंभ कर रहा हूँ. 346 00:18:38,000 --> 00:18:40,000 मैं यह करने के लिए 2 बातें जोड़ने के लिए जा रहा हूँ. 347 00:18:40,000 --> 00:18:43,000 इस सरणी अब छात्र वस्तुओं रखती है. 348 00:18:43,000 --> 00:18:46,000 सूचना है कि कहीं मैं कहना है कि यह छात्रों के एक सरणी है किया है. 349 00:18:46,000 --> 00:18:48,000 मैंने कहा कि यह एक सरणी, अवधि है. 350 00:18:48,000 --> 00:18:50,000 तो मैं के अंदर जो कुछ भी रख सकते हैं कि मैं चाहता हूँ. 351 00:18:50,000 --> 00:18:52,000 यहाँ मैं 2 वस्तुओं है. 352 00:18:52,000 --> 00:18:56,000 >> अंत में, मैं यहाँ एक और वस्तु है, इस TF. 353 00:18:56,000 --> 00:18:59,000 TF.h में यहाँ पर मूल रूप से एक ही बात है. 354 00:18:59,000 --> 00:19:01,000 मैं NSObject से, और जिस तरह से इनहेरीट कर रहा हूँ, 355 00:19:01,000 --> 00:19:03,000 जब आप कक्षा बनाने के लिए यह सब आप के लिए किया जाता है, 356 00:19:03,000 --> 00:19:06,000 इंटरफ़ेस बॉयलरप्लेट के इस तरह. 357 00:19:06,000 --> 00:19:08,000 यह छात्रों की एक संपत्ति है. 358 00:19:08,000 --> 00:19:15,000 मैं एक दो तरीके यहाँ है कि वास्तव में एक पूरी बहुत कुछ नहीं है, 359 00:19:15,000 --> 00:19:18,000 और तो इसका मतलब है कि मैं इस TF वस्तु बनाने के बाद 360 00:19:18,000 --> 00:19:23,000 मैं इस तरह से उस पर इस विधि ग्रेड कॉल कर सकते हैं. 361 00:19:23,000 --> 00:19:26,000 उद्देश्य सी वाक्यविन्यास पर कोई सवाल है इससे पहले कि हम कुछ और आगे बढ़ शुरू 362 00:19:26,000 --> 00:19:30,000 दिलचस्प क्षुधा विकास सामान? 363 00:19:30,000 --> 00:19:34,000 >> ठीक है, तो हम वास्तव में एक iPhone app. 364 00:19:34,000 --> 00:19:39,000 अपने iPhone app के मुख्य वर्गों है कि आप अंदर उपयोग कर सकता हूँ दृश्य नियंत्रकों को कहा जाता है, 365 00:19:39,000 --> 00:19:42,000 और एक दृश्य नियंत्रक मूल रूप से एक सिंगल स्क्रीन का प्रतिनिधित्व करता है 366 00:19:42,000 --> 00:19:46,000 अपने अनुप्रयोग के अंदर, यदि ऐसा है तो मैं संगीत app पर उदाहरण के लिए, हूँ, 367 00:19:46,000 --> 00:19:50,000 एक दृश्य नियंत्रक दृश्य है जिसमें मैं अपने iPhone पर सभी गीतों को देखने का प्रतिनिधित्व कर सकता है. 368 00:19:50,000 --> 00:19:53,000 एक अन्य दृश्य नियंत्रक जब मैं एक गाना क्लिक करें और यह खेल शुरू हो सकता है 369 00:19:53,000 --> 00:19:55,000 या के रूप में मैं नीचे कलाकारों में ड्रिलिंग कर रहा हूँ. 370 00:19:55,000 --> 00:19:59,000 उन विभिन्न स्क्रीन के प्रत्येक एक अलग दृश्य नियंत्रक के रूप में प्रतिनिधित्व किया जा सकता है, 371 00:19:59,000 --> 00:20:04,000 और एक दृश्य नियंत्रक वास्तव में सिर्फ एक वर्ग का कहना है कि यह कैसे काम करता है स्क्रीन है. 372 00:20:04,000 --> 00:20:07,000 एक दृश्य नियंत्रक के अंदर हालात, हम गुण है करने के लिए जा रहे हैं, 373 00:20:07,000 --> 00:20:10,000 तो एक बटन की तरह बातें करने के लिए हमारे दृश्य नियंत्रक के एक संपत्ति होने जा रहा है. 374 00:20:10,000 --> 00:20:13,000 >> हम भी तरीके हैं के लिए जा रहे हैं, और ये मूल रूप से कर रहे हैं घटना संचालकों. 375 00:20:13,000 --> 00:20:16,000 इस विधि का कहना है कि जब आप इस बटन को दबाएं 376 00:20:16,000 --> 00:20:19,000 मुझे कुछ करना चाहते हैं, और अंत में फिर से, 377 00:20:19,000 --> 00:20:24,000 हम इस आत्म कीवर्ड का उपयोग किया जाना वर्तमान उदाहरण का उपयोग करने के लिए जा रहे हैं. 378 00:20:24,000 --> 00:20:29,000 IOS में इंटरफेस का निर्माण वास्तव में सच है, वास्तव में आसान है. 379 00:20:29,000 --> 00:20:32,000 वे यह अच्छा खींचें और ड्रॉप इंटरफ़ेस बिल्डर बुलाया इंटरफेस है, 380 00:20:32,000 --> 00:20:37,000 और 2 मूल अवधारणाओं कि अपने उद्देश्य सी ऊपर इंटरफ़ेस बिल्डर तार 381 00:20:37,000 --> 00:20:40,000 IBOutlet और IBAction हैं. 382 00:20:40,000 --> 00:20:44,000 एक IBOutlet बस का कहना है कि यदि आप एक संपत्ति है कि एक बटन की घोषणा, 383 00:20:44,000 --> 00:20:47,000 और आप इसे अपने वास्तविक UI में कुछ करने के लिए हुक चाहते, 384 00:20:47,000 --> 00:20:49,000 आप कहते हैं कि यह एक दुकान के लिए जा रहे हैं. 385 00:20:49,000 --> 00:20:51,000 इसी तरह, अगर आप कोई ईवेंट हैंडलर का प्रतिनिधित्व करना चाहते हैं 386 00:20:51,000 --> 00:20:54,000 तो आप कहते हैं कि यह एक कार्रवाई करने के लिए जा रहे हैं. 387 00:20:54,000 --> 00:20:57,000 >> वास्तव में इस चित्रमय प्रतिनिधित्व तार 388 00:20:57,000 --> 00:21:00,000 और अपने कोड यह सच है, वास्तव में सरल है. 389 00:21:00,000 --> 00:21:03,000 अगर आप एक IBOutlet संलग्न करना चाहते हैं, तो सब तुम्हें क्या करना है आप बादनियंत्रण 390 00:21:03,000 --> 00:21:05,000 और हम यह बहुत जल्दी का एक उदाहरण देखेंगे. 391 00:21:05,000 --> 00:21:07,000 आप क्लिक नियंत्रित करते हैं कि जहां यह देखें नियंत्रक का कहना है. 392 00:21:07,000 --> 00:21:09,000 आप इंटरफ़ेस में खींचें जा रहे हैं, या इसके विपरीत, 393 00:21:09,000 --> 00:21:13,000 अगर आप को किसी ईवेंट हैंडलर हुक करना चाहते हैं आप अंतरफलक से खींचें जा रहे हैं 394 00:21:13,000 --> 00:21:15,000 दूसरी दिशा में. 395 00:21:15,000 --> 00:21:20,000 चलो वास्तव में एक सरल iOS उदाहरण पर एक नज़र रखना. 396 00:21:20,000 --> 00:21:23,000 >> चलो एक नई परियोजना बनाने. 397 00:21:23,000 --> 00:21:25,000 मैं करने के लिए आवेदन करने के लिए यहाँ आने के लिए जा रहा हूँ, 398 00:21:25,000 --> 00:21:28,000 और मैं सिंगल अनुप्रयोग के लिए जा रहा हूँ. 399 00:21:28,000 --> 00:21:31,000 मैं अगले क्लिक करने के लिए जा रहा हूँ. मैं अपनी परियोजना को एक नाम दे दूँगा. 400 00:21:31,000 --> 00:21:33,000 मैं इसे नमस्ते फोन करता हूँ. 401 00:21:33,000 --> 00:21:36,000 दिलचस्प बात यह है कि, एप्पल मानती है कि आप एक उत्पाद बना रहे हैं 402 00:21:36,000 --> 00:21:38,000 ताकि आप इसे बेचते हैं और वे पैसे कमा सकते हैं कर सकते हैं. 403 00:21:38,000 --> 00:21:41,000 यहाँ नीचे मैं कहना है कि यह एक iPhone app है करने के लिए जा रहा हूँ. 404 00:21:41,000 --> 00:21:44,000 आप एक iPad अनुप्रयोग बनाने के लिए कर सकते हैं, या अगर आप उन क्षुधा में से एक बनाना चाहते हैं 405 00:21:44,000 --> 00:21:47,000 कि दोनों उपकरणों का समर्थन करता है कि आप भी कर सकते हैं. 406 00:21:47,000 --> 00:21:49,000 ये हैं क्या आप अपने checkmarks की तरह देखने के लिए करना चाहते हैं. 407 00:21:49,000 --> 00:21:51,000 >> आप storyboards, जो हम बाद में देखेंगे का उपयोग करना चाहते हैं, 408 00:21:51,000 --> 00:21:54,000 और आप निश्चित रूप से करने के लिए स्वत: संदर्भ गिनती का उपयोग करना चाहते हैं, 409 00:21:54,000 --> 00:21:58,000 जो एक अच्छी सुविधा है कि आप malloc और मुक्त कहना होने से रोकता है. 410 00:21:58,000 --> 00:22:03,000 जब तक आप malloc और मुक्त कॉल करना चाहते हैं, तो मैं इस जाँच छोड़ना होगा. 411 00:22:03,000 --> 00:22:07,000 मैं अगले क्लिक करें, और अंत में, यह मुझे पूछने के लिए जा रहा है, जहां मैं इसे बचाने के लिए करना चाहते हैं. 412 00:22:07,000 --> 00:22:14,000 मैं बनाने के लिए मारा, और यहाँ हम चले. 413 00:22:14,000 --> 00:22:16,000 मैं एक नई परियोजना बनाया. 414 00:22:16,000 --> 00:22:19,000 बाईं तरफ यहाँ पर सभी फ़ाइलों कि मेरी परियोजना के अंदर हैं, 415 00:22:19,000 --> 00:22:22,000 नोटिस और कहा कि मैं एक पूरी गुच्छा मिला है, और भी मैं कुछ नहीं कर. 416 00:22:22,000 --> 00:22:24,000 IOS महान है. 417 00:22:24,000 --> 00:22:27,000 >> उदाहरण के लिए, यहाँ इस ViewController.h, 418 00:22:27,000 --> 00:22:30,000 यह मेरी पहली दृश्य नियंत्रक का प्रतिनिधित्व करने जा रहा है, 419 00:22:30,000 --> 00:22:32,000 तो अपने अनुप्रयोग के अंदर 1 स्क्रीन. 420 00:22:32,000 --> 00:22:34,000 अब हम जानते हैं कि यह क्या कह रहा है. 421 00:22:34,000 --> 00:22:36,000 हम कह रहे हैं मैं इस वर्ग ViewController बुला रहा हूँ, 422 00:22:36,000 --> 00:22:40,000 और एक ViewController सब कुछ है कि एक UIViewController करता है, 423 00:22:40,000 --> 00:22:43,000 और यह, फिर से, कुछ वर्ग है कि एप्पल ने लिखा है कि हमारे लिए काम सामान का एक बहुत कुछ करता है 424 00:22:43,000 --> 00:22:46,000 स्क्रीन प्रदर्शित करना. 425 00:22:46,000 --> 00:22:50,000 यहाँ है जहाँ मैं वास्तव में परिभाषित मेरे विचार नियंत्रक क्या करता है शुरू कर सकते हैं, 426 00:22:50,000 --> 00:22:52,000 और यह पता चला है कि मैं वास्तव में इस की कोई जरूरत नहीं है. 427 00:22:52,000 --> 00:22:55,000 यह boilerplate कोड है कि एप्पल मुझे मुक्त करने के लिए देता है. 428 00:22:55,000 --> 00:22:59,000 मैं कि पहली पंक्ति की जरूरत है, या मैं एक वर्ग नहीं है, 429 00:22:59,000 --> 00:23:02,000 तो हम उससे छुटकारा पाने के लिए और इस से छुटकारा मिल सकता है. 430 00:23:02,000 --> 00:23:05,000 ठीक है, तो यह मेरे खाली स्क्रीन है. 431 00:23:05,000 --> 00:23:08,000 >> अब चलो इस MainStoryboard.storyboard पर क्लिक करें, 432 00:23:08,000 --> 00:23:11,000 और यह है जहाँ यह दिलचस्प प्राप्त करने के लिए शुरू होता है. 433 00:23:11,000 --> 00:23:14,000 यह मेरे app पर पहली स्क्रीन का प्रतिनिधित्व करता है. 434 00:23:14,000 --> 00:23:17,000 अगर मैं एक बटन को जोड़ना चाहते हैं, HTML में मैं एक बटन टैग बनाने के लिए किया था. 435 00:23:17,000 --> 00:23:20,000 Android में आप एक बटन टैग बनाने के लिए किया है, 436 00:23:20,000 --> 00:23:23,000 लेकिन IOS में अगर मैं बस यहाँ नीचे आने के नीचे सही 437 00:23:23,000 --> 00:23:27,000 और अगर मैं यहाँ इस 3 एक पर क्लिक करें जहाँ यह वस्तुओं कहते हैं, 438 00:23:27,000 --> 00:23:31,000 और मैं नीचे स्क्रॉल करने के लिए, कर सकते हैं या मैं बटन के लिए खोज शुरू कर सकते हैं. 439 00:23:31,000 --> 00:23:35,000 और देखो, एक बटन है, यदि ऐसा है तो मैं वास्तव में खींचें और यह सही ड्रॉप वहाँ, 440 00:23:35,000 --> 00:23:38,000 मैं सिर्फ अपने app पर इस स्क्रीन पर एक बटन जोड़. 441 00:23:38,000 --> 00:23:41,000 अगर मैं पाठ को बदलना चाहते हैं, मैं इसे डबल क्लिक कर सकते हैं, 442 00:23:41,000 --> 00:23:47,000 कुछ मोहक की तरह कहते हैं, "मुझे प्रेस." 443 00:23:47,000 --> 00:23:51,000 ठीक है, अब अगर मैं इस अनुप्रयोग चलाने, तो हम यह संकलन, 444 00:23:51,000 --> 00:23:54,000 तो इसे चलाने के लिए मैं ऊपर छोड़ दिया में खेलने बटन क्लिक करें, और वहाँ मेरे app है. 445 00:23:54,000 --> 00:23:58,000 मैं कुछ भी नहीं था, और मैं एक प्यारी लग रही iPhone app है. 446 00:23:58,000 --> 00:24:01,000 अगर मैं इसे रोकना चाहते हैं, तो आप रोक बटन क्लिक कर सकते हैं 447 00:24:01,000 --> 00:24:03,000 क्योंकि यह अधिक मज़ा है. 448 00:24:03,000 --> 00:24:07,000 >> चलो का कहना है कि मैं वास्तव में कुछ करना चाहते हो सकता है जब मैं इस बटन को दबाएं. 449 00:24:07,000 --> 00:24:09,000 करना है कि मैं क्या करने की जरूरत है कि मैं बनाने की जरूरत 450 00:24:09,000 --> 00:24:13,000 एक नई घटना हेन्डलर या एक कार्रवाई. 451 00:24:13,000 --> 00:24:16,000 इसका मतलब है कि मैं कुछ तरीका है कि मैं करने के लिए कहा जा चाहते हैं बनाने की जरूरत है 452 00:24:16,000 --> 00:24:18,000 जब मैं बटन दबाते हैं, तो हम एक नई विधि बनाने. 453 00:24:18,000 --> 00:24:20,000 मैं ViewController.h के अंदर हूँ. 454 00:24:20,000 --> 00:24:22,000 मैं कहना है कि एक विधि मौजूद है की जरूरत है. 455 00:24:22,000 --> 00:24:26,000 मैं पहली बार एक हायफ़न की जरूरत है क्योंकि मैं दृश्य नियंत्रक पर इस फोन करने जा रहा हूँ. 456 00:24:26,000 --> 00:24:28,000 मैं यह एक प्रकार देने की जरूरत है. 457 00:24:28,000 --> 00:24:31,000 इस के प्रकार कि IBAction बात है कि हम पहले देखा होने जा रहा है. 458 00:24:31,000 --> 00:24:35,000 यह एक घटना हेन्डलर है तो, यह एक IBAction वापस जा रहा है, 459 00:24:35,000 --> 00:24:38,000 और इस XCode के लिए एक संकेत कहना है कि 460 00:24:38,000 --> 00:24:40,000 यह कुछ मैं करने के लिए कुछ तार करना चाहते है. 461 00:24:40,000 --> 00:24:45,000 मैं इसे buttonPressed अर्धविराम, जैसे एक नाम दे सकते हैं. 462 00:24:45,000 --> 00:24:48,000 >> अब मैं मेरी कक्षा के अंदर एक नई विधि की घोषणा की है. 463 00:24:48,000 --> 00:24:50,000 मैंने कहा है इस विधि के लिए मौजूद है. 464 00:24:50,000 --> 00:24:53,000 अब चलो ViewController.m में आने, 465 00:24:53,000 --> 00:24:56,000 और कहते हैं कि इस विधि क्या कर सकते हैं. 466 00:24:56,000 --> 00:25:03,000 अगर मैं टाइपिंग शुरू, उदाहरण के लिए buttonPressed (शून्य) 467 00:25:03,000 --> 00:25:06,000 नोटिस XCode वास्तव में अच्छा है और मेरे लिए autocompletes. 468 00:25:06,000 --> 00:25:09,000 यह वास्तव में अद्भुत है. 469 00:25:09,000 --> 00:25:12,000 यहाँ ध्यान दें कि. मीटर फ़ाइल के अंदर मैं भी शून्य कह सकते हैं, 470 00:25:12,000 --> 00:25:15,000 और इस वजह से है कि IBAction वास्तव में एक प्रकार की नहीं है. 471 00:25:15,000 --> 00:25:19,000 यह वास्तव में कहीं परिभाषित hashtag एक शून्य हो, 472 00:25:19,000 --> 00:25:22,000 और फिर, यह सिर्फ XCode के लिए एक संकेत है कि कहते हैं 473 00:25:22,000 --> 00:25:25,000 मैं इस एक घटना हेन्डलर होना चाहते हैं, और हम एक दूसरे में क्यों देखेंगे. 474 00:25:25,000 --> 00:25:28,000 जब इस बटन दबाया जाता है मैं कुछ करने के लिए कष्टप्रद करने के लिए जा रहा हूँ 475 00:25:28,000 --> 00:25:30,000 एक पॉपअप प्रदर्शित करना. 476 00:25:30,000 --> 00:25:35,000 >> ऐसा करने के लिए है कि मैं इस वर्ग का एक नया उदाहरण UIAlertView बुलाया बना सकते हैं, 477 00:25:35,000 --> 00:25:39,000 और यह एक वर्ग है कि एप्पल ने लिखा है कि कष्टप्रद पॉपअप प्रदर्शित करने के लिए जा रहा है है. 478 00:25:39,000 --> 00:25:43,000 हम इस पॉपअप चेतावनी कहते हैं, और मैं 2 कदम है, इस वस्तु बनाने के लिए याद है,. 479 00:25:43,000 --> 00:25:46,000 पहली बात मैं करने की ज़रूरत जगह आवंटित करने के लिए है. 480 00:25:46,000 --> 00:25:48,000 मैं एक UIAlertView चाहते. 481 00:25:48,000 --> 00:25:51,000 मैं करने के लिए जगह आवंटित करने के लिए करना चाहते हैं. यह मेरी पहली विधि है. 482 00:25:51,000 --> 00:25:53,000 मेरी अगली विधि है मैं यह इनिशियलाइज़ करना चाहते हैं, 483 00:25:53,000 --> 00:25:58,000 और इसलिए मैं इस बड़े, लंबे initWithTitle विधि बुलाया है. 484 00:25:58,000 --> 00:26:01,000 वह मूल रूप से नियंत्रित करने के लिए क्या कहते हैं इस पॉपअप जा रहा है. 485 00:26:01,000 --> 00:26:04,000 अपने पॉपअप के शीर्षक हैलो हो सकता है. 486 00:26:04,000 --> 00:26:08,000 इस पॉपअप का संदेश "यह iOS है कर सकते हैं." 487 00:26:08,000 --> 00:26:10,000 प्रतिनिधि बात है, मैं नहीं जानता कि वह क्या है. 488 00:26:10,000 --> 00:26:13,000 चलो यह कुछ भी नहीं कहना है. 489 00:26:13,000 --> 00:26:18,000 अब बटन कि दिखाई जा रही है की तरह "यह निश्चित है," कुछ कह सकते हैं 490 00:26:18,000 --> 00:26:24,000 और मैं वास्तव में किसी भी अन्य बटन नहीं करना चाहते, तो चलो कि को हटाना और वर्ग को बंद. 491 00:26:24,000 --> 00:26:27,000 >> ठीक है, मैं एक अतिरिक्त एक बनाया. हम वहाँ जाते हैं. 492 00:26:27,000 --> 00:26:30,000 यह कैसे मैं एक नया पॉपअप बना सकते हैं. 493 00:26:30,000 --> 00:26:35,000 अगर मैं वास्तव में पॉपअप दिखाना चाहते हैं मैं शो विधि कॉल करने के लिए करना चाहते हैं. 494 00:26:35,000 --> 00:26:38,000 ऐसा करने के लिए है कि मैं सतर्क और दिखाने को कह सकते हैं, 495 00:26:38,000 --> 00:26:40,000 और फिर, autocomplete सुपर अच्छा था. 496 00:26:40,000 --> 00:26:42,000 अगर मैं भूल गया कि वह क्या था, अगर मैं बस में टाइप, 497 00:26:42,000 --> 00:26:45,000 मैं यहाँ के माध्यम से स्क्रॉल करने के लिए बाहर आंकड़ा यह क्या था, 498 00:26:45,000 --> 00:26:48,000 और यह अच्छी तरह से फिल्टर. 499 00:26:48,000 --> 00:26:52,000 अब मैं इस नए पॉपअप बनाया. 500 00:26:52,000 --> 00:26:55,000 हम प्रतिनिधि क्या मतलब है वापस बाद में आता हूँ, 501 00:26:55,000 --> 00:26:58,000 और अब मैं कहना है कि मैं इस विधि को निकाल दिया जाना चाहते हैं 502 00:26:58,000 --> 00:27:01,000 जब मैं बटन दबाएँ तो, मैं अपने स्टोरीबोर्ड के लिए वापस आने के लिए जा रहा हूँ, 503 00:27:01,000 --> 00:27:04,000 और मैं अब इस IBAction संलग्न करना चाहते हैं. 504 00:27:04,000 --> 00:27:06,000 पहली बात तुम करना चाहते हो बटन पर क्लिक करें. 505 00:27:06,000 --> 00:27:08,000 जब मैं इस बटन को दबाएं मैं ऐसा करने के लिए कुछ करना चाहते हैं. 506 00:27:08,000 --> 00:27:10,000 मैं नियंत्रण करने के लिए नीचे पकड़ करने के लिए नहीं जा रहा हूँ. 507 00:27:10,000 --> 00:27:13,000 मैं जा रहा हूँ करने के लिए क्लिक करें और बटन से खींचें 508 00:27:13,000 --> 00:27:15,000 यहाँ पर जहां यह देखें नियंत्रक कहते हैं. 509 00:27:15,000 --> 00:27:17,000 हम देख सकते हैं कि यह अच्छी तरह से रोशनी. 510 00:27:17,000 --> 00:27:22,000 >> अगर मैं अपने माउस के साथ जाने के लिए मैं अब यहाँ पर इस पॉपअप है, जहां मैं कुछ विकल्प हैं. 511 00:27:22,000 --> 00:27:24,000 इनमें से एक की घटनाओं है कि मैं पंजीकरण कर सकते हैं है. 512 00:27:24,000 --> 00:27:28,000 ये उन तरीकों को मैं मेरे IBActions के रूप में ज फ़ाइल में घोषित सभी कर रहे हैं. 513 00:27:28,000 --> 00:27:31,000 यह कैसे XCode जानता है कि क्या इस छोटे से सूची में दिखाई देनी चाहिए, 514 00:27:31,000 --> 00:27:33,000 ताकि बस एक संकेत है. 515 00:27:33,000 --> 00:27:37,000 यदि मैं दबाया बटन पर क्लिक करें, अब मैं ईवेंट हैंडलर पंजीकृत किया है. 516 00:27:37,000 --> 00:27:41,000 जावास्क्रिप्ट में हम कहते हैं कि मैं कुछ कोड है कि ईवेंट हैंडलर पंजीकृत था. 517 00:27:41,000 --> 00:27:43,000 उद्देश्य सी में यह सच था कि आसान है. 518 00:27:43,000 --> 00:27:46,000 अगर मैं यह फिर से चलाने के 519 00:27:46,000 --> 00:27:49,000 अब जब मैं बटन दबाएँ मेरे ईवेंट हैंडलर आग करने के लिए जा रहा है, 520 00:27:49,000 --> 00:27:51,000 और मैं इस पॉपअप पाने के लिए जा रहा हूँ. 521 00:27:51,000 --> 00:27:54,000 सुपर, सुपर आसान है. 522 00:27:54,000 --> 00:27:57,000 >> यदि आप कभी घटनाओं है कि करने के लिए पंजीकृत होना होगा की सभी देखना चाहते हैं 523 00:27:57,000 --> 00:28:00,000 एक घटक पर अगर मैं इस बटन पर क्लिक करें 524 00:28:00,000 --> 00:28:02,000 और मैं यहाँ आने के दाईं ओर के लिए 525 00:28:02,000 --> 00:28:05,000 पहले आप यहाँ देख मैं बटन के प्रकार की तरह बातें कर सकते हैं कर सकते हैं, 526 00:28:05,000 --> 00:28:08,000 इसलिए यदि आप एक उन मैं या संपर्क बटन जोड़ने चाहते हैं 527 00:28:08,000 --> 00:28:10,000 या जो भी हो. 528 00:28:10,000 --> 00:28:13,000 अगर मैं सभी घटनाओं है कि इस बटन पर देखना चाहते हैं 529 00:28:13,000 --> 00:28:16,000 अगर मैं यहाँ पर दाईं ओर के लिए सभी तरह आया 530 00:28:16,000 --> 00:28:19,000 हम यहाँ मैं इन अलग अलग घटनाओं के सभी घटनाओं पर देख सकते हैं. 531 00:28:19,000 --> 00:28:23,000 मैं बटन दबाएँ, जब मैं बटन के चलते हैं, जब मैं नल डबल या जो कुछ भी कर सकते हैं, 532 00:28:23,000 --> 00:28:26,000 और एक मैं सिर्फ पंजीकृत है इस घटना टच फोन के अंदर, 533 00:28:26,000 --> 00:28:29,000 और यह कहते हैं कि जैसे ही मेरी उंगली से बटन आता है 534 00:28:29,000 --> 00:28:32,000 घटना है कि आग के लिए जा रहा है, और कहा कि वास्तव में अभी क्या हुआ है. 535 00:28:32,000 --> 00:28:36,000 यह डिफ़ॉल्ट बटन दबाया घटना की तरह है. 536 00:28:36,000 --> 00:28:39,000 >> कोई प्रश्न इतनी दूर है? 537 00:28:39,000 --> 00:28:43,000 ठीक है, है कि कैसे हम अपने कोड में बातें करने के लिए तार शुरू कर सकते हैं 538 00:28:43,000 --> 00:28:46,000 हमारे अंतरफलक के अंदर बातों में. 539 00:28:46,000 --> 00:28:49,000 याद है पहली बात हम करना पड़ा कोड को खोजने के लिए गया था, 540 00:28:49,000 --> 00:28:54,000 और फिर हम वायर्ड कोड के लिए इंटरफ़ेस, 541 00:28:54,000 --> 00:28:57,000 और हमारी पहली अनुप्रयोग है. 542 00:28:57,000 --> 00:29:00,000 ठीक है, यह वास्तव में अच्छा था, और हम इस बटन बनाया. 543 00:29:00,000 --> 00:29:03,000 क्या होगा अगर हम करना चाहते हैं नहीं करने के लिए गुणों का एक गुच्छा बनाने के लिए है 544 00:29:03,000 --> 00:29:05,000 इन बटन का प्रतिनिधित्व? 545 00:29:05,000 --> 00:29:08,000 उदाहरण के लिए, टिक टीएसी को पैर की अंगुली में मैं 9 बटन है, 546 00:29:08,000 --> 00:29:11,000 और यह सुपर, सुपर करने के लिए खींचें और 9 बार छोड़ दिया है कष्टप्रद होगी 547 00:29:11,000 --> 00:29:14,000 या अगर मैं 81 के साथ टिक टीएसी को पैर की अंगुली के बजाय 9 548 00:29:14,000 --> 00:29:17,000 और मैं खींचें और ड्रॉप 81 बार था, और वह लंगड़ा है. 549 00:29:17,000 --> 00:29:20,000 हम क्या कर सकते हैं बजाय एक HTML बहुत पसंद है 550 00:29:20,000 --> 00:29:23,000 जब हम आईडी और नाम की तरह बातें किया था और हम बातों के लिए खोज कर सकते हैं 551 00:29:23,000 --> 00:29:27,000 अपने आईडी द्वारा, वहाँ IOS में एक इसी तरह की धारणा टैग कहा जाता है. 552 00:29:27,000 --> 00:29:31,000 >> टैग केवल एक घटक के लिए एक अद्वितीय संख्यात्मक पहचानकर्ता है. 553 00:29:31,000 --> 00:29:34,000 यदि मैं यह कहने के 0 के एक टैग है, उदाहरण के लिए, 554 00:29:34,000 --> 00:29:38,000 अगर मैं एक बटन बनाने के लिए और इसे 0 की एक टैग दे, और हम देखेंगे कि कैसे सिर्फ एक दूसरे में करने के लिए है कि, 555 00:29:38,000 --> 00:29:41,000 अगर मैं उस बटन को प्राप्त करना चाहते हैं मैं बस कहना मैं फोन करने के लिए करना चाहते हैं कर सकते हैं 556 00:29:41,000 --> 00:29:45,000 वस्तु पर यहाँ पर विधि viewWithTag, 557 00:29:45,000 --> 00:29:48,000 , उदाहरण के लिए self.view जो वर्तमान स्क्रीन का प्रतिनिधित्व करता है. 558 00:29:48,000 --> 00:29:53,000 यदि मुझे लगता है कि viewWithTag विधि कहते हैं, मैं 0 टैग बटन के साथ वापस खींचने के लिए जा रहा हूँ. 559 00:29:53,000 --> 00:29:58,000 चलो निर्माण टिक टीएसी को पैर की अंगुली के द्वारा इस पर एक नज़र ले. 560 00:29:58,000 --> 00:30:01,000 सबसे पहले, यह मेरी स्टोरीबोर्ड है. 561 00:30:01,000 --> 00:30:05,000 मैं इन 10 यूआई बटन बनाया है. 562 00:30:05,000 --> 00:30:07,000 सूचना है वे सभी एक ही आकार के हो. 563 00:30:07,000 --> 00:30:11,000 अगर मैं इनमें से एक पर क्लिक करें और मैं यहाँ पर यह सही पक्ष पर वापस आते हैं 564 00:30:11,000 --> 00:30:15,000 आप देखेंगे कि मैं फ़ॉन्ट यहाँ समायोजित, इसलिए मैं फ़ॉन्ट थोड़ा बड़ा कर दिया है, 565 00:30:15,000 --> 00:30:19,000 लेकिन क्या मैं भी किया था कि मैं इस टैग सेट. 566 00:30:19,000 --> 00:30:23,000 मैंने कहा कि यह 1 के एक टैग है, और है कि ऊपर छोड़ दिया है. 567 00:30:23,000 --> 00:30:26,000 >> अब, अगर मैं एक बटन क्लिक करें, इस 2 एक यहाँ की तरह, 568 00:30:26,000 --> 00:30:29,000 अब आप देखेंगे कि मेरे टैग 2. 569 00:30:29,000 --> 00:30:32,000 इन बटनों में से प्रत्येक एक अद्वितीय टैग है, 570 00:30:32,000 --> 00:30:35,000 और तो यह बाद में मैं कैसे कर रहा हूँ करने के लिए बातचीत शुरू करने के लिए जा रहा 571 00:30:35,000 --> 00:30:38,000 मेरी अनुप्रयोग के साथ. 572 00:30:38,000 --> 00:30:40,000 यह एक दृश्य नियंत्रक सभी के अंदर है, 573 00:30:40,000 --> 00:30:42,000 लेकिन यहाँ है कि हम क्या है. 574 00:30:42,000 --> 00:30:44,000 यहाँ हम 3 गुण है. 575 00:30:44,000 --> 00:30:49,000 1 एक और पिछले एक मेरे बोर्ड के राज्य का प्रतिनिधित्व करने के लिए जा रहे हैं. 576 00:30:49,000 --> 00:30:53,000 असल में यह 1 एक एक सरणी का प्रतिनिधित्व जहां Xs और ओएस है. 577 00:30:53,000 --> 00:30:57,000 यह एक दूसरे के यहाँ हमें बताता किसकी बारी है. 578 00:30:57,000 --> 00:31:01,000 आप देखेंगे कि मैं भी इन बातों को यहाँ. 579 00:31:01,000 --> 00:31:05,000 इससे पहले जब हम संपत्ति घोषित की हम उन्हें एक नाम और एक प्रकार दिया. 580 00:31:05,000 --> 00:31:08,000 हम भी उन्हें कुछ अतिरिक्त जानकारी दे सकते हैं. 581 00:31:08,000 --> 00:31:11,000 यह पहली nonatomic कहते हैं, और यह क्या कहते हैं 582 00:31:11,000 --> 00:31:16,000 मूल रूप से केवल एक ही बात कभी एक समय में इस चर का उपयोग करने की कोशिश कर रहा हो जाएगा. 583 00:31:16,000 --> 00:31:19,000 आप अधिक जटिल अनुप्रयोगों है कि बहु लड़ी पिरोया है कर सकता है, 584 00:31:19,000 --> 00:31:22,000 और इसलिए वापस खरोंच में हम अलग अलग सूत्र था, 585 00:31:22,000 --> 00:31:25,000 और विभिन्न sprites एक ही समय में अलग - अलग बातें कर रही हो सकता है. 586 00:31:25,000 --> 00:31:29,000 >> कि अगर मामला नहीं है, जो यह कुछ भी नहीं है कि हम पर देख रही हूँ, 587 00:31:29,000 --> 00:31:33,000 अगर हम nonatomic का कहना है कि यह वास्तव में बातें एक छोटा सा तेजी से बनाने के लिए जा रहा है. 588 00:31:33,000 --> 00:31:37,000 हम भी इस बात आवंटित, मजबूत या कमजोर कहा जाता है. 589 00:31:37,000 --> 00:31:40,000 इस असाइन करने के लिए बस इतना ही कहना है कि यह एक मानक प्रकार है. 590 00:31:40,000 --> 00:31:43,000 यह एक वस्तु या एक सूचक नहीं है क्योंकि यह सिर्फ एक bool है, 591 00:31:43,000 --> 00:31:46,000 तो bool उद्देश्य सी में बनाया गया है. 592 00:31:46,000 --> 00:31:49,000 यह कहते हैं यहाँ संकेत के साथ फैंसी कुछ भी करने की कोशिश नहीं है. 593 00:31:49,000 --> 00:31:51,000 यह एक नियमित रूप से पुराने scaler है. 594 00:31:51,000 --> 00:31:54,000 मजबूत और कमजोर है, यह कमजोर है कि वास्तव में कहते हैं 595 00:31:54,000 --> 00:31:57,000 मैं इस दृश्य नियंत्रक में कुछ करने के लिए की ओर इशारा करते हुए करना चाहते हैं. 596 00:31:57,000 --> 00:32:00,000 मैं वास्तव में आवंटित करने के लिए नहीं जा रहा हूँ या यह अपने आप init. 597 00:32:00,000 --> 00:32:04,000 इंटरफेस बिल्डर, जब मैं अनुप्रयोग चलाने के लिए, सभी के लिए है कि initialization संभालने जा रहा है. 598 00:32:04,000 --> 00:32:07,000 यदि मैं कमजोर कहते हैं, का कहना है कि किसी और को इस का निर्माण किया जा रहा है. 599 00:32:07,000 --> 00:32:09,000 अगर मैं मजबूत कहते हैं, यह कहना है कि मैं एक होने जा रहा हूँ 600 00:32:09,000 --> 00:32:12,000 कि इस बोर्ड वस्तु बनाने है, 601 00:32:12,000 --> 00:32:14,000 और यहाँ तो मैं कुछ और तरीके यहाँ है, 602 00:32:14,000 --> 00:32:18,000 उदाहरण के लिए, जब नया खेल बटन दबाया जाता है के लिए एक कार्रवाई, 603 00:32:18,000 --> 00:32:20,000 जब किसी भी अन्य बटन दबाया जाता है के लिए एक कार्रवाई, 604 00:32:20,000 --> 00:32:23,000 और वगैरह. 605 00:32:23,000 --> 00:32:26,000 >> हम भी टिक टीएसी को पैर की अंगुली के तर्क के ज्यादा में नहीं मिलेगा, 606 00:32:26,000 --> 00:32:30,000 हालांकि यह बहुत ही रोमांचक है, लेकिन हम पर एक नज़र रखना 607 00:32:30,000 --> 00:32:33,000 कुछ चीजें हैं जो हम IOS के अंदर कर सकते हैं. 608 00:32:33,000 --> 00:32:35,000 इस नए खेल विधि नौकरी से निकाला जा रहा है 609 00:32:35,000 --> 00:32:37,000 जब भी मैं नया खेल बटन दबाएँ. 610 00:32:37,000 --> 00:32:41,000 हुक है कि ऊपर मैं बस मेरे स्टोरीबोर्ड पर आने के. 611 00:32:41,000 --> 00:32:43,000 मैं नया खेल पर क्लिक किया. 612 00:32:43,000 --> 00:32:47,000 अगर मैं आ सही करने के लिए यहाँ मैं देख सकता हूँ 613 00:32:47,000 --> 00:32:50,000 अंदर newGame विधि तार स्पर्श. 614 00:32:50,000 --> 00:32:53,000 यही कारण है कि यह करने के लिए निकाल दिया जा रहा है. 615 00:32:53,000 --> 00:32:56,000 newGame विधि कुछ सेट करना जा रहा है. 616 00:32:56,000 --> 00:32:59,000 यह कहना है कि मैं बोर्ड की स्थिति को स्पष्ट करने के लिए करना चाहते हैं के लिए जा रहा है. 617 00:32:59,000 --> 00:33:01,000 इस परिवर्तनशील arrays पर एक अच्छा तरीका है. 618 00:33:01,000 --> 00:33:03,000 यह कहना है कि यह अब एक्स बारी है जा रहा है, 619 00:33:03,000 --> 00:33:07,000 और अब मैं इस viewWithTag बात का लाभ लेने के लिए जा रहा हूँ. 620 00:33:07,000 --> 00:33:11,000 >> मुझे पता है कि मेरे बटन टैग 1-9, 621 00:33:11,000 --> 00:33:13,000 और कहा कि कुछ मैं मनमाने ढंग से उठाया है. 622 00:33:13,000 --> 00:33:15,000 अगर मैं प्रत्येक बटन के पाठ को सेट करने के लिए खाली हो चाहते हैं 623 00:33:15,000 --> 00:33:17,000 क्योंकि मैं सिर्फ एक नया खेल शुरू कर दिया है और मैं किसी भी नहीं करना चाहती 624 00:33:17,000 --> 00:33:20,000 Xs या ओएस पर मैं यह कर सकता छोड़ा जा सकता. 625 00:33:20,000 --> 00:33:24,000 मैं कह सकता हूँ कि मैं चाहता हूँ टैग के साथ देखने के लिए, 1, 2, 3, 4 वगैरह. 626 00:33:24,000 --> 00:33:27,000 यह एक अलग बटन हर बार खींच जाएगा. 627 00:33:27,000 --> 00:33:30,000 यहाँ मैं यह कास्ट करने के लिए UIButton के लिए जा रहा हूँ. 628 00:33:30,000 --> 00:33:33,000 वैसे ही जैसे हम ints मंगाई और उपाध्यक्ष के लिए प्रतिकूल डाली जा सकता है 629 00:33:33,000 --> 00:33:37,000 यह कहना है कि मैं एक UIButton इस देना चाहते हैं. 630 00:33:37,000 --> 00:33:40,000 इसका मतलब है कि इस के प्रकार एक UIButton होगा * 631 00:33:40,000 --> 00:33:43,000 संकेत की वजह से है, लेकिन चिंता मत करो, वे डरावना अब और नहीं कर रहे हैं. 632 00:33:43,000 --> 00:33:47,000 >> एक बार जब मैं इस बटन मैं इस पर एक विधि कॉल करने के लिए जा रहा हूँ. 633 00:33:47,000 --> 00:33:50,000 इस विधि setTitle forState कहा जाता है, और इसलिए इस कहते हैं 634 00:33:50,000 --> 00:33:53,000 मैं बटन का पाठ सेट खाली स्ट्रिंग चाहते हैं, 635 00:33:53,000 --> 00:33:57,000 और मैं यह खाली स्ट्रिंग जब यह नहीं दबाया है होना चाहता हूँ. 636 00:33:57,000 --> 00:34:01,000 अगर मैं इस विधि का उपयोग कर रहा हूँ, मैं बटन का पाठ बदल सकते हैं 637 00:34:01,000 --> 00:34:04,000 के रूप में जल्द ही के रूप में किसी को मारता है, लेकिन हम कहते हैं कि जब बटन वहाँ बैठी है चाहता हूँ 638 00:34:04,000 --> 00:34:07,000 मैं पाठ रिक्त होने के लिए करना चाहते हैं. 639 00:34:07,000 --> 00:34:10,000 अंत में, हम अपने बोर्ड आरंभ करने जा रहे हैं, 640 00:34:10,000 --> 00:34:12,000 और मैं कहना है कि सब कुछ वर्तमान में 0 है जा रहा हूँ, 641 00:34:12,000 --> 00:34:15,000 इस बोर्ड ताकि सदस्यों अपरिवर्तनीय एक अस्थायी सरणी है, 642 00:34:15,000 --> 00:34:21,000 जिसका मतलब है कि मैं addObject विधि कॉल कर सकते हैं और यह सिर्फ एक 0 अंदर. 643 00:34:21,000 --> 00:34:23,000 यही कारण है कि क्या होता है जब मैं एक नया खेल बनाने के. 644 00:34:23,000 --> 00:34:25,000 >> चलो एक दूसरे पर एक नज़र रखना. 645 00:34:25,000 --> 00:34:28,000 यहाँ यह विधि IBAction है कि को दबाया जा रहा है है 646 00:34:28,000 --> 00:34:31,000 हर बार उन वर्गों में से दबाया जाता है. 647 00:34:31,000 --> 00:34:33,000 अब हम कुछ Tic Tac Toe तर्क यहाँ है. 648 00:34:33,000 --> 00:34:36,000 हम यह पता लगाने किसकी बारी है, 649 00:34:36,000 --> 00:34:39,000 और के आधार पर है कि हम या तो एक एक्स या एक हे सेट, 650 00:34:39,000 --> 00:34:43,000 लेकिन हम देखते हैं कि हम इस एक ही घटना हेन्डलर reusing रहे हैं 651 00:34:43,000 --> 00:34:45,000 उन बटन के हर एक के लिए. 652 00:34:45,000 --> 00:34:49,000 , इसका मतलब है कि मैं शीर्ष बाएँ बटन के लिए एक विधि नहीं है 653 00:34:49,000 --> 00:34:52,000 नीचे सही बटन के लिए एक अलग तरीका है, हालांकि मुझे लगता है कि किया जा सकता है. 654 00:34:52,000 --> 00:34:54,000 यह वास्तव में अच्छा डिजाइन नहीं होगा. 655 00:34:54,000 --> 00:34:57,000 मैं यहाँ क्या कर रहा हूँ मैं वास्तव में निर्धारित करने के लिए जा रहा हूँ 656 00:34:57,000 --> 00:35:00,000 बटन दबाया गया था कि क्या टैग है. 657 00:35:00,000 --> 00:35:04,000 आपको लगता है कि इस खेल विधि एक तर्क लेता. 658 00:35:04,000 --> 00:35:07,000 यह प्रेषक कहा जाता है, और क्या प्रेषक प्रेषक जाता है के लिए जा रहा 659 00:35:07,000 --> 00:35:10,000 वास्तव में क्या कार्रवाई पर लिया गया था का प्रतिनिधित्व करते हैं. 660 00:35:10,000 --> 00:35:15,000 अगर मैं एक बटन दबाएँ, इस प्रेषक कि UIButton होने जा रहा है 661 00:35:15,000 --> 00:35:18,000 कि मैं वास्तव में दबाया जाता है, तो इसका मतलब है कि कि UIButton 662 00:35:18,000 --> 00:35:20,000 एक टैग है क्योंकि मैं एक टैग बनाया. 663 00:35:20,000 --> 00:35:23,000 >> अगर मैं टैग पर प्राप्त करना चाहते हैं मैं बस कह सकते हैं 664 00:35:23,000 --> 00:35:26,000 मैं प्रेषक का टैग करना चाहते हैं, 665 00:35:26,000 --> 00:35:28,000 और फिर, मैं सिर्फ एक UIButton है यह casted. 666 00:35:28,000 --> 00:35:32,000 मुझे पता है कि प्रेषक एक UIButton होगा होता है. 667 00:35:32,000 --> 00:35:34,000 यह हमेशा के लिए एक UIButton होना जरूरी नहीं है. 668 00:35:34,000 --> 00:35:36,000 मैं, उदाहरण के लिए, एक ही घटना हेन्डलर रजिस्टर कर सकते हैं 669 00:35:36,000 --> 00:35:38,000  एक एक बटन है, एक एक स्लाइडर के लिए के लिए के लिए. 670 00:35:38,000 --> 00:35:40,000 इस मामले में, मैं जानता हूँ कि वे सभी बटन रहे हैं, तो मैं कहने जा रहा हूँ 671 00:35:40,000 --> 00:35:43,000 मैं यह एक बटन होना चाहते हैं, और तो मैं टैग प्राप्त कर सकते हैं, 672 00:35:43,000 --> 00:35:48,000 और टैग से अब मैं जानता हूँ जहाँ मैं बोर्ड के अंदर हूँ. 673 00:35:48,000 --> 00:35:51,000 तो मैं बस या तो एक्स या हे, बारी फ्लिप कर सकते हैं निर्धारित कर सकते हैं, 674 00:35:51,000 --> 00:35:54,000 जांच जो जीता है, वगैरह. 675 00:35:54,000 --> 00:35:59,000 >> यह अब तक पर कोई सवाल? 676 00:35:59,000 --> 00:36:02,000 ठीक है, सब कोड हम ऑनलाइन हम बहुत ज्यादा में मिल नहीं करना चाहती तैनात 677 00:36:02,000 --> 00:36:06,000 Tic Tac Toe तर्क की, लेकिन अब आपको लगता है कि वास्तव में देख सकते हैं 678 00:36:06,000 --> 00:36:09,000 सब हम कर रहे हैं हम इस सरणी पर पाशन कर रहे हैं, 679 00:36:09,000 --> 00:36:13,000 तो हम loops के लिए यहाँ की एक जोड़ी है, और हम सिर्फ देखने के लिए तुलना कर रहे हैं 680 00:36:13,000 --> 00:36:18,000 हम सभी पंक्तियाँ, या उस तरह कुछ भी स्तंभ में एक मैच में एक मैच है. 681 00:36:18,000 --> 00:36:21,000 वास्तव में इस app चलाने के लिए, अगर मैं इनमें से किसी एक बटन पर नल 682 00:36:21,000 --> 00:36:24,000 कि खेलने विधि निकाल दिया गया था, तो इसका मतलब है कि मैं सिर्फ सेट 683 00:36:24,000 --> 00:36:31,000 बटन एक एक्स के लिए है, इसलिए अब इस बटन एक हे हो सकता है, और इतने पर, 684 00:36:31,000 --> 00:36:35,000 और इसलिए है कि हम कैसे इस एक पृष्ठ के अनुप्रयोग के साथ बातचीत शुरू कर रहे हैं. 685 00:36:35,000 --> 00:36:38,000 >> हम कोड पोस्ट करेंगे, तो कि ख़याल स्वतंत्र महसूस हो रहा है, 686 00:36:38,000 --> 00:36:43,000 लेकिन अब कुछ क्षुधा है कि सिर्फ एक पृष्ठ से अधिक कर रहे हैं के बारे में बात करते हैं. 687 00:36:43,000 --> 00:36:47,000 टिक टीएसी को पैर की अंगुली के रूप में रोमांचक था, IOS के अंदर क्षुधा का एक बहुत 688 00:36:47,000 --> 00:36:50,000 कई स्क्रीन के साथ बातें नीचे इन ड्रिल की तरह हैं. 689 00:36:50,000 --> 00:36:54,000 पहली अवधारणा है कि हम के बारे में बात करने की आवश्यकता होगी प्रोटोकॉल रहे हैं, 690 00:36:54,000 --> 00:36:57,000 और बस एक प्रोटोकॉल तरीकों का एक सेट है 691 00:36:57,000 --> 00:36:59,000 कि आप को परिभाषित करने के लिए वादा कर सकते हैं. 692 00:36:59,000 --> 00:37:02,000 अगर मैं 2 तरीकों के साथ इस नए प्रोटोकॉल, यह पहली एक बनाने के लिए, 693 00:37:02,000 --> 00:37:05,000 अगर रिटर्न प्रकार शून्य है, मैं यह foo बुलाया. 694 00:37:05,000 --> 00:37:07,000 यह कोई तर्क लेता है. मैं एक और तरीका है. 695 00:37:07,000 --> 00:37:11,000 यह एक int देता. मैं यह बार बुलाया, और यह एक तर्क लेता. 696 00:37:11,000 --> 00:37:14,000 यह प्रोटोकॉल है कि SomeProtocol कहा जाता है यहाँ, 697 00:37:14,000 --> 00:37:19,000 यह चीजें हैं जो किसी को लागू कर सकते हैं का एक सेट है. 698 00:37:19,000 --> 00:37:22,000 मैं इस प्रोटोकॉल के अंदर foo क्या नहीं कहा है. 699 00:37:22,000 --> 00:37:26,000 इसके बजाय, मैं सिर्फ इतना कह रहा हूँ आप foo परिभाषित अगर तुम चाहते हो सकता है. 700 00:37:26,000 --> 00:37:30,000 अगर मैं एक दृश्य नियंत्रक का निर्माण कर रहा हूँ या एक वर्ग बनाने 701 00:37:30,000 --> 00:37:33,000 मैं अंदर कि वर्ग वादा के लागू करने के लिए कर सकते हैं 702 00:37:33,000 --> 00:37:40,000 इन तरीकों में से कुछ का कहना है, उदाहरण के लिए अगर, 703 00:37:40,000 --> 00:37:43,000 अब यह कहते हैं, मैं तुम्हें एक वादा कर रहा हूँ अंदर है कि 704 00:37:43,000 --> 00:37:50,000 मैं इस दृश्य नियंत्रक वर्ग के foo और बार दोनों के लिए परिभाषा है. 705 00:37:50,000 --> 00:37:52,000 >> क्यों कि उपयोगी है? 706 00:37:52,000 --> 00:37:55,000 IOS के अंदर घटकों के एक बहुत कुछ इस का लाभ ले 707 00:37:55,000 --> 00:37:58,000 डिजाइन पैटर्न प्रतिनिधिमंडल कहा जाता है, और प्रतिनिधिमंडल क्या कहते हैं 708 00:37:58,000 --> 00:38:01,000 उदाहरण के लिए, अगर मैं एक पाठ बॉक्स है कि 709 00:38:01,000 --> 00:38:04,000 और वहाँ कुछ घटनाओं है कि मेरे पाठ बॉक्स के अंदर पंजीकृत किया जा सकता है, 710 00:38:04,000 --> 00:38:07,000 अलग घटनाओं है मैं क्या कर सकता बनाने के बजाय मैं कह सकता 711 00:38:07,000 --> 00:38:10,000 इस पाठ बॉक्स के प्रतिनिधि कुछ वस्तु होगी. 712 00:38:10,000 --> 00:38:13,000 जब मैं कहता हूं कि यह अब एक प्रतिनिधि है इसका मतलब है कि 713 00:38:13,000 --> 00:38:16,000 जब भी कुछ घटना पाठ बॉक्स में निकाल दिया गया है 714 00:38:16,000 --> 00:38:18,000 बजाय यह या ऐसा कुछ रजिस्टर 715 00:38:18,000 --> 00:38:21,000 यह सिर्फ प्रतिनिधि पर एक विधि कॉल करने के लिए जा रहा है. 716 00:38:21,000 --> 00:38:24,000 उदाहरण के लिए, मेरे पाठ बॉक्स के अंदर मैं जब मैं प्रेस के लिए एक विधि है 717 00:38:24,000 --> 00:38:27,000 कि नीचे सही में बटन किया, 718 00:38:27,000 --> 00:38:30,000 और इसलिए बजाय ईवेंट हैंडलर मैं क्या कह सकता दर्ज की है 719 00:38:30,000 --> 00:38:34,000 पाठ बॉक्स, यहाँ एक वस्तु है कि मैं आप पर एक विधि कॉल करने के लिए करना चाहते है 720 00:38:34,000 --> 00:38:37,000 हर बार किसी किया बटन प्रेस, 721 00:38:37,000 --> 00:38:40,000 और इसका मतलब है कि उस ऑब्जेक्ट के लिए कुछ प्रोटोकॉल को लागू करने के लिए है 722 00:38:40,000 --> 00:38:45,000 कहते हैं कि मैं कि किया बटन कार्रवाई को परिभाषित करने के लिए वादा, 723 00:38:45,000 --> 00:38:47,000 क्योंकि अगर यह है कि विधि को परिभाषित नहीं करता है और आप किया प्रेस, 724 00:38:47,000 --> 00:38:49,000 तो यह भ्रमित किया जा रहा है. 725 00:38:49,000 --> 00:38:55,000 >> चलो एक उदाहरण पर एक नज़र रखना. 726 00:38:55,000 --> 00:38:58,000 यहाँ मैं बस एक पाठ बॉक्स है, 727 00:38:58,000 --> 00:39:04,000 और यहाँ पर इस पाठ बॉक्स के दाईं ओर गुणों में से एक प्रतिनिधि है. 728 00:39:04,000 --> 00:39:06,000 इस वर्ग की एक संपत्ति है. 729 00:39:06,000 --> 00:39:09,000 क्या मैं यहाँ किया है मैं क्लिक नियंत्रण है, और मैं यहाँ पर इस जगह से घसीटा 730 00:39:09,000 --> 00:39:13,000 दृश्य नियंत्रक, और कहा कि अब इस पाठ बॉक्स के प्रतिनिधि का कहना है 731 00:39:13,000 --> 00:39:18,000 दृश्य नियंत्रक होने जा रहा है. 732 00:39:18,000 --> 00:39:20,000 इसका मतलब है कि जब कुछ कार्रवाई हो, दर्ज की बजाय 733 00:39:20,000 --> 00:39:25,000 अलग घटना संचालकों मैं आप उन्हें प्रतिनिधि को भेजने के लिए करना चाहते हैं. 734 00:39:25,000 --> 00:39:28,000 अब चलो मेरे विचार नियंत्रक पर एक नज़र रखना. 735 00:39:28,000 --> 00:39:32,000 ज. फ़ाइल के अंदर मैं एक वादा किया है. 736 00:39:32,000 --> 00:39:36,000 मैं इस प्रोटोकॉल के अंदर कुछ तरीकों को लागू करने का वादा किया है 737 00:39:36,000 --> 00:39:38,000 UITextFieldDelegate, और फिर कहा जाता है, 738 00:39:38,000 --> 00:39:42,000 यह सिर्फ कुछ चीजें हैं जो मैं लागू करने के लिए चुन सकते हैं के कुछ सूची है. 739 00:39:42,000 --> 00:39:46,000 >> यदि मैं मेरी. मीटर फ़ाइल में यहाँ आते हैं, मैं एक ऐसी विधि को लागू किया है. 740 00:39:46,000 --> 00:39:49,000 मैं इसे textFieldShouldReturn बुलाया है 741 00:39:49,000 --> 00:39:52,000 क्योंकि है कि क्या यह प्रोटोकॉल के अंदर बुलाया गया था. 742 00:39:52,000 --> 00:39:57,000 और अब जब भी मैं किया है कि पाठ क्षेत्र के अंदर बटन दबाएँ 743 00:39:57,000 --> 00:40:00,000 यह है कि क्या करने के लिए बुलाया जा रहा है, तो मैं एक घटना हेन्डलर रजिस्टर नहीं था. 744 00:40:00,000 --> 00:40:03,000 मैं प्रतिनिधि जुड़ा हुआ है, और जब भी इस घटना निकाल दिया है 745 00:40:03,000 --> 00:40:08,000 इस विधि कि बुलाया मिल जाएगा है, यदि ऐसा है तो मैं यहाँ आने के मेरे स्टोरीबोर्ड और इसे चलाने 746 00:40:08,000 --> 00:40:11,000 समय है कि लोड हो रहा है कि हम देख सकते हैं कि यह क्या करता है. 747 00:40:11,000 --> 00:40:13,000 अपनी स्क्रीन पर मैं 2 बातें है. 748 00:40:13,000 --> 00:40:16,000 मैं इस पाठ क्षेत्र है, और मैं इस लेबल है. 749 00:40:16,000 --> 00:40:19,000 मैं बस कह रहा हूँ कि मैं इस लेबल के पाठ करना चाहते हैं 750 00:40:19,000 --> 00:40:23,000 जो उपयोगकर्ता पाठ क्षेत्र के अंदर में टाइप करने के लिए बराबर होना. 751 00:40:23,000 --> 00:40:26,000 यह अगली पंक्ति यहाँ बस एक तरीका है कि मैं बुला रहा हूँ 752 00:40:26,000 --> 00:40:29,000 पाठ क्षेत्र कहते हैं कि मैं आप कीबोर्ड को छिपाने के लिए करना चाहते हैं. 753 00:40:29,000 --> 00:40:33,000 यह सिर्फ मनमाना तरीका है कि एप्पल चुना है. 754 00:40:33,000 --> 00:40:38,000 >> फिर, इससे पहले कि मैं मैं कुछ भी करने के लिए सब कुछ तार पड़ा था, तो मैं पहली बार यहाँ आया था. 755 00:40:38,000 --> 00:40:42,000 दृश्य नियंत्रक से मैं पाठ बॉक्स पर खींचें. 756 00:40:42,000 --> 00:40:46,000 मैं चलते हैं, और मैं यहाँ देख सकते हैं कि मैं इस पाठ क्षेत्र संपत्ति कर सकते हैं 757 00:40:46,000 --> 00:40:49,000 पर दृश्य नियंत्रक में यहाँ के बाद से मैं एक संपत्ति को परिभाषित किया गया है 758 00:40:49,000 --> 00:40:52,000 कि एक पाठ क्षेत्र के एक IBOutlet है. 759 00:40:52,000 --> 00:40:55,000 यह कहना है कि मैं इस संपत्ति तार कर सकते हैं 760 00:40:55,000 --> 00:40:59,000 मेरी UI में एक पाठ क्षेत्र. 761 00:40:59,000 --> 00:41:03,000 अब जब मैं इस पर क्लिक करें मैं लिखना शुरू कर सकते हैं. 762 00:41:03,000 --> 00:41:06,000 अब अगर मैंने किया बटन पर क्लिक करें इस आग के लिए जा रहा है 763 00:41:06,000 --> 00:41:08,000 एक घटना है कि मैं अब जवाब कर सकते हैं. 764 00:41:08,000 --> 00:41:10,000 कोई घटना संचालकों. 765 00:41:10,000 --> 00:41:13,000 यही कारण है कि कैसे मैं सिर्फ उस बटन को किया जवाब. 766 00:41:13,000 --> 00:41:15,000 मतलब होता है? 767 00:41:15,000 --> 00:41:20,000 >> यह एक डिजाइन पैटर्न है कि आप कभी भी अपने आप को नहीं मिल सकता है नहीं है 768 00:41:20,000 --> 00:41:23,000 अपने खुद के प्रोटोकॉल बनाने, लेकिन सिर्फ इतना पता है कि कुछ 769 00:41:23,000 --> 00:41:27,000 अलग IOS के घटकों को अलग अलग तरीकों से घटनाओं रजिस्टर. 770 00:41:27,000 --> 00:41:29,000 बटन, उदाहरण के लिए, उन IBActions का उपयोग करें. 771 00:41:29,000 --> 00:41:32,000 पाठ क्षेत्रों, दूसरे हाथ पर, प्रतिनिधियों का उपयोग करने के लिए जा रहे हैं. 772 00:41:32,000 --> 00:41:36,000 हम देखते हैं और आप दस्तावेज की कि अंदर के सभी देख सकते हैं. 773 00:41:36,000 --> 00:41:41,000 वैसे, वहाँ वास्तव में UI सामान की एक टन आप के लिए IOS में बनाया गया है, 774 00:41:41,000 --> 00:41:46,000 ऐसा करते हैं, उदाहरण के लिए, जिस तरह से मैं कर दिया है कि नीचे सही पर किया कहना है 775 00:41:46,000 --> 00:41:48,000 मैं इस पाठ क्षेत्र को चुना है. 776 00:41:48,000 --> 00:41:50,000 मैं यहाँ आया था. 777 00:41:50,000 --> 00:41:53,000 मैं थोड़ा नीचे स्क्रॉल करने के लिए महत्वपूर्ण वापसी, 778 00:41:53,000 --> 00:41:56,000 और मैं वास्तव में चीजों की एक पूरी गुच्छा बना सकते हैं, जैसे अगर मैं चाहता हूँ कि कहने के लिए 779 00:41:56,000 --> 00:42:00,000 आपात स्थिति के बजाय मुझे लगता है कि करने के लिए, जो पूरी तरह से यादृच्छिक है कहते हैं, 780 00:42:00,000 --> 00:42:02,000 और मैं क्यों वहाँ एक निर्मित में आपातकालीन कॉल बटन है पता नहीं है, 781 00:42:02,000 --> 00:42:06,000 लेकिन वहाँ है, यह वास्तव में छोटे अक्षरों में आपातकालीन कॉल कहते हैं. 782 00:42:06,000 --> 00:42:08,000 वहाँ तुम जाओ. 783 00:42:08,000 --> 00:42:12,000 >> निश्चित रूप से IOS में इन विभिन्न विकल्पों में से सभी का पता लगाने. 784 00:42:12,000 --> 00:42:14,000 प्रतिनिधियों पर कोई सवाल? 785 00:42:14,000 --> 00:42:18,000 फिर से, बस एक दिलचस्प डिजाइन पैटर्न है कि आप के बारे में पता होना चाहिए. 786 00:42:18,000 --> 00:42:22,000 ठीक है, चलो अगले तालिका दृश्य पर एक नज़र रखना. 787 00:42:22,000 --> 00:42:26,000 एक तालिका दृश्य मूल रूप से वस्तुओं की सूची है कि IOS में सभी जगह पर है. 788 00:42:26,000 --> 00:42:29,000 जब आप अपने संपर्कों के सभी के माध्यम से flipping रहे हैं, आप देख रहे हैं 789 00:42:29,000 --> 00:42:34,000 पेज की स्थापना, और चीजों की सूची के उस तरह एक तालिका दृश्य कहा जाता है. 790 00:42:34,000 --> 00:42:37,000 IOS में एक तालिका दृश्य को लागू करना बहुत आसान है. 791 00:42:37,000 --> 00:42:41,000 एक वर्ग है कि कि UIViewController से उतरता बनाने के बजाय 792 00:42:41,000 --> 00:42:44,000 जैसे हम इससे पहले कि हम बस के बजाय कहने की ज़रूरत नहीं किया है 793 00:42:44,000 --> 00:42:46,000 सब कुछ एक UIViewController मैं करना चाहता है, 794 00:42:46,000 --> 00:42:50,000 मैं सब कुछ एक UITableViewController मैं करना चाहता है कहते हैं, 795 00:42:50,000 --> 00:42:54,000 बस इतना है कि कुछ अतिरिक्त चीजें हैं जो पूरी तरह से हमारे लिए काम कर रहे हैं कहते हैं. 796 00:42:54,000 --> 00:42:58,000 हम बहुत करने के लिए मूल रूप से तालिका के अंदर रिक्त स्थान को भरने के कुछ करने की जरूरत है. 797 00:42:58,000 --> 00:43:02,000 >> आदेश में एक तालिका प्रदर्शित करने के लिए मैं कुछ सवालों के जवाब देने की जरूरत है. 798 00:43:02,000 --> 00:43:06,000 पहला सवाल मैं जवाब देने की जरूरत है, कितने वर्गों तालिका में कर रहे हैं? 799 00:43:06,000 --> 00:43:08,000 जब आप अपने संपर्कों के अनुप्रयोग के माध्यम से flipping रहे हैं तो आप देखेंगे कि यह एक तरह से है 800 00:43:08,000 --> 00:43:12,000 के रूप में द्वारा आयोजित है, तो आप बी एस है, और आपको लगता है कि छोटे उप शीर्षक है. 801 00:43:12,000 --> 00:43:14,000 उन में से हर एक वर्ग कहा जाता है. 802 00:43:14,000 --> 00:43:16,000 आप कर सकते हैं या इन की आवश्यकता नहीं हो सकता है. 803 00:43:16,000 --> 00:43:19,000 पहली बात तुम क्या करने की जरूरत है एक विधि को लागू 804 00:43:19,000 --> 00:43:22,000 numberOfSectionsInTableView: tableView बुलाया. 805 00:43:22,000 --> 00:43:25,000 यह बस रिटर्न कितने वर्गों आप, 806 00:43:25,000 --> 00:43:29,000 तो यह कह सकते हैं एक वापस अगर आप एक बड़ा तालिका दृश्य है. 807 00:43:29,000 --> 00:43:33,000 अगला सवाल है कि IOS पता करने की जरूरत है आप कितने पंक्तियाँ है? 808 00:43:33,000 --> 00:43:36,000 उदाहरण के लिए, आप एक तालिका दृश्य के माध्यम से flipping रहे हैं. 809 00:43:36,000 --> 00:43:39,000 आप गाने की एक निश्चित संख्या या आप देख रहे हैं संपर्कों की एक निश्चित संख्या है. 810 00:43:39,000 --> 00:43:41,000 अगर तुम मुझे कर रहे हैं, निश्चित रूप से, कि कई नहीं, 811 00:43:41,000 --> 00:43:44,000 और इसलिए है कि कैसे iOS जानता है कि कितने कोशिकाओं को प्रदर्शित करने के लिए. 812 00:43:44,000 --> 00:43:46,000 >> फिर, यह 3 वापसी की तरह कुछ कह सकते हैं. 813 00:43:46,000 --> 00:43:49,000 मेरा तालिका दृश्य 3 पंक्तियों है. 814 00:43:49,000 --> 00:43:52,000 अंत में, IOS पता है कि क्या प्रत्येक कोशिका की तरह लग रहा है की जरूरत है, 815 00:43:52,000 --> 00:43:54,000 तो क्या यह वास्तव में करने जा रहा है इस विधि यहाँ नीचे फोन, 816 00:43:54,000 --> 00:43:57,000 इस tableView: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 यह अपनी मेज के अंदर हर एक सेल पर इस विधि कॉल करने के लिए जा रहा है. 818 00:44:01,000 --> 00:44:03,000 यह कैसे पता नहीं कितनी बार यह कॉल करने के लिए? 819 00:44:03,000 --> 00:44:06,000 ठीक है, तुम यह अनुभाग में पंक्तियों की संख्या के अंदर बताया. 820 00:44:06,000 --> 00:44:08,000 हम हमारी कोशिकाओं में से प्रत्येक पर कॉल करने के लिए जा रहे हैं, 821 00:44:08,000 --> 00:44:11,000 और इस के अंदर है, जहां आप वास्तव में तरह बातें कर सकते 822 00:44:11,000 --> 00:44:16,000 पाठ सेट कर सकते हैं या तुम बताओ सही पक्ष पर कि छोटे नीले बटन क्या करता है. 823 00:44:16,000 --> 00:44:19,000 इन कोशिकाओं को प्राप्त करने के लिए पैटर्न, हम करने के लिए इस विधि का उपयोग करने के लिए जा रहे हैं 824 00:44:19,000 --> 00:44:22,000 dequeueReusableCellWithIdentifier कहा जाता है. 825 00:44:22,000 --> 00:44:29,000 >> उद्देश्य सी वास्तव में उनके विधि नाम के हास्यास्पद लंबाई के लिए बहुत अच्छी तरह से जाना जाता है, 826 00:44:29,000 --> 00:44:32,000 और यह वास्तव में बिंदु उदाहरण में एक अच्छा मामला है. 827 00:44:32,000 --> 00:44:37,000 इस विधि क्या करता है यह सिर्फ कहते हैं, मैं आप मुझे एक सेल देने के लिए करना चाहते हैं. 828 00:44:37,000 --> 00:44:39,000 बस एक iOS बात. 829 00:44:39,000 --> 00:44:41,000 यदि आप अपने आइपॉड पर 100,000 गाने की तरह कुछ है 830 00:44:41,000 --> 00:44:45,000 IOS के लिए नहीं करना चाहती क्या है 100.000 कोशिकाओं आवंटित, 831 00:44:45,000 --> 00:44:48,000 क्योंकि अगर आप अपनी सूची के शीर्ष पर रहे हैं, तो आप वास्तव में स्मृति आवंटित करने की जरूरत है 832 00:44:48,000 --> 00:44:51,000 सेल कि 99,000 नीचे पंक्तियों के लिए? 833 00:44:51,000 --> 00:44:55,000 नहीं, क्योंकि आप के रूप में आप स्क्रॉल कर रहे आवंटित के रूप में आप के साथ जाने की तरह कर सकते हैं. 834 00:44:55,000 --> 00:44:57,000 यह आप के लिए किया जाता है. 835 00:44:57,000 --> 00:44:59,000 आप कि सभी बेवकूफ प्रदर्शन सामान के बारे में चिंता करने की ज़रूरत नहीं है. 836 00:44:59,000 --> 00:45:02,000 तुम कहते हो तुम इस विधि dequeueReusableCellWithIdentifier कहते है, 837 00:45:02,000 --> 00:45:06,000 और यह कहते हैं, ठीक है, अगर आप के लिए मैं आप के लिए एक नया सेल बनाने जा रहा हूँ की जरूरत है. 838 00:45:06,000 --> 00:45:09,000 >> लेकिन अगर आप तालिका के निचले भाग में कर रहे हैं और आप पहले से ही कुछ कोशिकाओं आवंटित है 839 00:45:09,000 --> 00:45:12,000 तालिका के शीर्ष पर है कि तुम सच में जा रहे हैं जल्द ही किसी भी समय की जरूरत नहीं है 840 00:45:12,000 --> 00:45:15,000 मैं तुम्हें एक नया एक आवंटन के बजाय वापस उन में से एक देने जा रहा हूँ, 841 00:45:15,000 --> 00:45:17,000 और इसलिए यह एक अच्छा प्रदर्शन चिंता का विषय है. 842 00:45:17,000 --> 00:45:21,000 आप के लिए कोशिकाओं को अपने आप को आवंटित नहीं है. 843 00:45:21,000 --> 00:45:23,000 कि तुम्हें देने के लिए एक सेल वापस जा रहा है. 844 00:45:23,000 --> 00:45:25,000 यह आप के लिए एक सेल वस्तु वापस जा रहा है. 845 00:45:25,000 --> 00:45:28,000 एक बार जब आप सेल वस्तु आप सामान यह कर सकते है. 846 00:45:28,000 --> 00:45:32,000 आप इस पाठ लेबल बुलाया संपत्ति के साथ सेल के पाठ को सेट कर सकते हैं. 847 00:45:32,000 --> 00:45:36,000 आप सही है या कुछ अन्य यादृच्छिक सामान पर कि तीर जोड़ सकते हैं 848 00:45:36,000 --> 00:45:41,000 यह अन्य संपत्ति के साथ accessoryType कहा जाता है, और इतने पर और इतने पर. 849 00:45:41,000 --> 00:45:46,000 >> चलो वास्तव में एक तालिका दृश्य अब लागू करने पर एक नज़र रखना. 850 00:45:46,000 --> 00:45:49,000 जब मैं इस परियोजना को बनाया 851 00:45:49,000 --> 00:45:53,000 कह ही दृश्य आवेदन के बजाय मैं वास्तव में यहाँ आया था 852 00:45:53,000 --> 00:45:57,000 मास्टर विस्तार के आवेदन करने के लिए, और इसलिए मूल रूप से इस मेल app करने के लिए मेल खाती है 853 00:45:57,000 --> 00:46:01,000 बाईं तरफ तालिका दृश्य तो और सही पर सामग्री के साथ iPad पर. 854 00:46:01,000 --> 00:46:07,000 आइपॉड या iPhone पर इस के लिए एक एकल तालिका दृश्य के अनुरूप रहा है. 855 00:46:07,000 --> 00:46:10,000 यही कारण है कि जहां मैं अपने स्टार्टर कोड है. 856 00:46:10,000 --> 00:46:13,000 >> चलो पहले स्टोरीबोर्ड पर एक नज़र रखना. 857 00:46:13,000 --> 00:46:15,000 इस सब के सब मेरे लिए किया गया था, मूल रूप से बनाया है. 858 00:46:15,000 --> 00:46:18,000 इस नेविगेशन बार मुझे पता चला है क्या एक उदाहरण सेल की तरह लग सकता है, 859 00:46:18,000 --> 00:46:22,000 और मैं डबल क्लिक करें, शीर्षक को बदलने के लिए कर सकते हैं. 860 00:46:22,000 --> 00:46:25,000 किसी भी अन्य UI चिंताओं मैं वहाँ संभाल सकते हैं. 861 00:46:25,000 --> 00:46:27,000 हैडर फ़ाइल वास्तव में आसान लग रहा है. 862 00:46:27,000 --> 00:46:30,000 कह रही है इस UIViewController के बजाय अब हम कह रहे हैं कि यह एक है 863 00:46:30,000 --> 00:46:35,000 TableViewController, तो हम जानते हैं कि हम उन सभी तालिका तरीकों कॉल करना चाहते हैं. 864 00:46:35,000 --> 00:46:38,000 अगले मैं एक संपत्ति है कि का प्रतिनिधित्व करने के लिए जा रहा है बनाना चाहते हैं 865 00:46:38,000 --> 00:46:40,000 मेरी मेज के अंदर बातें. 866 00:46:40,000 --> 00:46:43,000 इस तालिका में मनमाने ढंग से प्रदर्शित करने के लिए जा रहा है 867 00:46:43,000 --> 00:46:46,000 फल की एक सूची है, और इसलिए मैं कुछ सरणी बनाने की जरूरत 868 00:46:46,000 --> 00:46:49,000 जिस में मैं फल सम्मिलित कर सकते हैं. 869 00:46:49,000 --> 00:46:52,000 अंदर के अपने कार्यान्वयन फ़ाइल पहली बात मैं करना चाहता हूँ 870 00:46:52,000 --> 00:46:55,000 मैं यकीन है कि मैं इस सरणी इनिशियलाइज़ बनाना चाहते. 871 00:46:55,000 --> 00:46:58,000 >> मैं alloc init ने कहा, मेरे फल सरणी बनाया, 872 00:46:58,000 --> 00:47:03,000 और मैं यह करने के लिए 4 चीजें जोड़ रहा हूँ, जिनमें से एक बहुत अधिक अन्य 3 से विवादास्पद है. 873 00:47:03,000 --> 00:47:06,000 और अब मैं 4 आकार की एक सरणी है. 874 00:47:06,000 --> 00:47:08,000 हम इसे मिलाते रहे हैं CS50 में. 875 00:47:08,000 --> 00:47:11,000 मैं अब 4 आकार की एक सरणी है. 876 00:47:11,000 --> 00:47:13,000 अब मैं इन सवालों का जवाब देने शुरू करने के लिए जा रहा हूँ, और वास्तव में, 877 00:47:13,000 --> 00:47:16,000 जब मैं इस app बनाया इस सब के पहले से ही मेरे लिए किया गया था. 878 00:47:16,000 --> 00:47:19,000 मैं बाहर तालिका दृश्य में वर्गों की संख्या में टाइप करने के लिए नहीं था. 879 00:47:19,000 --> 00:47:22,000 यह पहले से ही वहाँ था, और मैं रिक्त स्थान भरने रहा हूँ. 880 00:47:22,000 --> 00:47:24,000 मैं कितने वर्गों है? 881 00:47:24,000 --> 00:47:26,000 एक. सब किया. 882 00:47:26,000 --> 00:47:28,000 मैं कितनी पंक्तियाँ है? 883 00:47:28,000 --> 00:47:31,000 खैर, मैं हर फल के लिए एक पंक्ति है, तो यह गिनती 884 00:47:31,000 --> 00:47:34,000 किसी भी सरणी है कि का कहना है कि यह कितना बड़ा है एक संपत्ति है? 885 00:47:34,000 --> 00:47:36,000 यही कारण है कि मैं कितनी पंक्तियाँ है. 886 00:47:36,000 --> 00:47:42,000 अंत में, मैं कहना है कि प्रत्येक कोशिका की तरह दिखता है की जरूरत है? 887 00:47:42,000 --> 00:47:46,000 मैं dequeueReusableCellWithIdentifier कहने जा रहा हूँ. 888 00:47:46,000 --> 00:47:48,000 >> फिर, यह पहले से ही मेरे लिए लिखा गया था. 889 00:47:48,000 --> 00:47:51,000 मैं यह खुद कर नहीं है, था, और मैं करने के लिए वापस जाना चाहता हूँ 890 00:47:51,000 --> 00:47:54,000 इस स्थान पर इस सेल. 891 00:47:54,000 --> 00:47:57,000 याद रखें कि हम हर एक सेल पर यह एक ही विधि बुला रहे हैं, 892 00:47:57,000 --> 00:48:01,000 और यह यहाँ तर्क indexPath तर्क, 893 00:48:01,000 --> 00:48:03,000 कहते हैं पंक्ति क्या मैं अंदर हूँ 894 00:48:03,000 --> 00:48:05,000 अगर मैं indexPath.row यहाँ का कहना है 895 00:48:05,000 --> 00:48:09,000 इस 0 हो जाएगा, तो यह 1 हो जाएगा, तो यह 2 हो सकता है, और है यह तो मैं जानता हूँ कि 896 00:48:09,000 --> 00:48:11,000 सेल क्या मैं वर्तमान में प्रदर्शित कर रहा हूँ. 897 00:48:11,000 --> 00:48:15,000 मैं सेल के पाठ इस पाठलेबल संपत्ति का उपयोग कर सेट करना चाहते हैं 898 00:48:15,000 --> 00:48:19,000 मेरे फल सरणी के भीतर जाने के लिए और 899 00:48:19,000 --> 00:48:21,000 प्रत्येक पंक्ति के लिए इसी वस्तु. 900 00:48:21,000 --> 00:48:24,000 यदि यह एक स्ट्रिंग है, अब मैं स्थापित कर रहा हूँ 901 00:48:24,000 --> 00:48:28,000 पाठ संपत्ति एक स्ट्रिंग के लिए. 902 00:48:28,000 --> 00:48:30,000 मैं एक अन्य बात कर सकते हैं. 903 00:48:30,000 --> 00:48:32,000 मैं भी कोशिकाओं में से प्रत्येक पर एक घटना हेन्डलर रजिस्टर कर सकते हैं, 904 00:48:32,000 --> 00:48:35,000 इसलिए जब मैं इन कोशिकाओं के प्रत्येक नल 905 00:48:35,000 --> 00:48:39,000 इस didSelectRowAtIndexPath, यह मेरे लिए कहा जा रहा है, 906 00:48:39,000 --> 00:48:42,000 तो बस यह परिभाषित द्वारा अब मैं संभाल क्या होता है 907 00:48:42,000 --> 00:48:46,000 जब आप एक सेल नल, और फिर, हम गुजर रहे हैं जो में सेल का उपयोग किया गया था 908 00:48:46,000 --> 00:48:50,000 इतना है कि हम हमारी कोशिकाओं के सभी के लिए यह एक ही घटना हेन्डलर का पुन: उपयोग कर सकते हैं. 909 00:48:50,000 --> 00:48:53,000 >> फिर, यह कुछ iOS मेरे लिए क्या कर रही है है. 910 00:48:53,000 --> 00:48:55,000 चलो एक और कष्टप्रद पॉपअप प्रदर्शित 911 00:48:55,000 --> 00:48:59,000 बस का कहना है कि आप कहाँ है कि कुछ कुछ उठाया 912 00:48:59,000 --> 00:49:04,000 पंक्ति वस्तु होने जा रहा है. 913 00:49:04,000 --> 00:49:10,000 जब मैं इस चलाने के लिए, मैं यह अच्छा तालिका दृश्य करने के लिए जा रहा हूँ 914 00:49:10,000 --> 00:49:14,000 इन फलों में से प्रत्येक के लिए एक पंक्ति के साथ, और अगर मैं एक नल 915 00:49:14,000 --> 00:49:16,000 वह मुझसे कहता है कि क्या हुआ. 916 00:49:16,000 --> 00:49:21,000 मतलब होता है? 917 00:49:21,000 --> 00:49:24,000 चलो एक छोटा सा एक app के परिसर का निर्माण, 918 00:49:24,000 --> 00:49:28,000 के रूप में क्लिक करके आप टमाटर उठाया के रूप में ज्यादा है. 919 00:49:28,000 --> 00:49:31,000 storyboarding के बारे में अच्छा हिस्सा 920 00:49:31,000 --> 00:49:35,000 यह केवल हमारे डिजाइन स्क्रीन व्यक्तिगत रूप से मदद करने के लिए नहीं जा रहा है, 921 00:49:35,000 --> 00:49:38,000 यह भी मदद करने के लिए हमें एक साथ हमारे पूरे app टाई रहा है, 922 00:49:38,000 --> 00:49:42,000 इसलिए अंतिम app हम निर्माण हो जाएगा यह अच्छा खेल समाचार रीडर है, 923 00:49:42,000 --> 00:49:45,000 और कई स्क्रीन है तो यह जा रहा है, और इसलिए मैं वास्तव में प्रतिनिधित्व कर सकते हैं 924 00:49:45,000 --> 00:49:48,000 स्टोरीबोर्ड पर इन एकाधिक स्क्रीन के प्रत्येक, 925 00:49:48,000 --> 00:49:52,000 और मैं बाहर ज़ूम और एक उच्च स्तर से मेरे app देख सकते हैं. 926 00:49:52,000 --> 00:49:55,000 >> आदेश में मेरे स्टोरीबोर्ड का एक नया तत्व के अंदर बनाने के लिए 927 00:49:55,000 --> 00:49:59,000 इंटरफ़ेस बिल्डर के अंदर यह वास्तव में सरल है. 928 00:49:59,000 --> 00:50:01,000 यदि मैं यह करने के लिए एक स्क्रीन जोड़ना चाहते हैं, उदाहरण के लिए, 929 00:50:01,000 --> 00:50:06,000 मैं पहली बार चुटकी ज़ूम है कि एप्पल इतना प्यार करता है के साथ बाहर ज़ूम कर सकते हैं, 930 00:50:06,000 --> 00:50:09,000 और यहाँ नीचे से पहले मैं एक बटन के लिए खोज 931 00:50:09,000 --> 00:50:12,000 और मैं खींचें और एक बटन ड्रॉप 932 00:50:12,000 --> 00:50:15,000 अगर मैं एक नए स्क्रीन बनाना चाहते हैं मैं वास्तव में सिर्फ खींचें और कर सकते हैं ड्रॉप 933 00:50:15,000 --> 00:50:19,000 एक पूरे दृश्य नियंत्रक, यदि ऐसा है तो मैं इस लेने के लिए, यह यहाँ खींच खत्म हो, 934 00:50:19,000 --> 00:50:23,000 हे, वहाँ एक स्क्रीन है, और इसलिए अब इस एक ही स्टोरीबोर्ड फ़ाइल का उपयोग 935 00:50:23,000 --> 00:50:26,000 मैं अपने अनुप्रयोग के अंदर स्क्रीन के सभी कर सकते हैं, और मैं बाहर ज़ूम कर सकते हैं 936 00:50:26,000 --> 00:50:28,000 देखते हैं और कैसे वे बातचीत. 937 00:50:28,000 --> 00:50:32,000 ये अभी तक नहीं बातचीत करेंगे. 938 00:50:32,000 --> 00:50:36,000 रास्ते में इन 2 स्क्रीन के संपर्क है आप संबंधों को परिभाषित. 939 00:50:36,000 --> 00:50:39,000 आप मूल रूप से इस स्क्रीन कहते हैं, कर सकते हैं, जब आप इस बटन को दबाएं, 940 00:50:39,000 --> 00:50:42,000 मैं तुम पर इस नए स्क्रीन को स्लाइड के लिए चाहते हैं. 941 00:50:42,000 --> 00:50:44,000 इसका मतलब है कि वहाँ के बीच रिश्ते की इस तरह है 942 00:50:44,000 --> 00:50:46,000  1 स्क्रीन और 2 स्क्रीन. 943 00:50:46,000 --> 00:50:49,000 आप मूल रूप से उस बटन से दूसरी स्क्रीन एक तीर होगा 944 00:50:49,000 --> 00:50:53,000 कह रही है कि जब आप इस बटन को दबाएं है कि जहां मैं जाना चाहता हूँ. 945 00:50:53,000 --> 00:50:57,000 वैसे ही जैसे हम क्लिक किया और नियंत्रण करने के लिए उन के आउटलेट को परिभाषित करने के लिए घसीटा 946 00:50:57,000 --> 00:51:01,000 हम एक ही बात करने के लिए इन segues को परिभाषित करने के लिए जा रहे हैं. 947 00:51:01,000 --> 00:51:05,000 >> हम उस के लिए एक उदाहरण देखते हैं, और हम वास्तव में संक्रमण से पहले 948 00:51:05,000 --> 00:51:08,000 एक स्क्रीन से दूसरे iOS काफी अच्छा करने के लिए इस विधि कॉल 949 00:51:08,000 --> 00:51:11,000 prepareForSegue कहा जाता है, और यह है, जहां हम शुरू कर सकते हैं 950 00:51:11,000 --> 00:51:14,000 एक app से दूसरे करने के लिए डेटा भेजने. 951 00:51:14,000 --> 00:51:17,000 उदाहरण में हम कर रहे हैं के बारे में इसे देखो मूल रूप से हमें की अनुमति देगा 952 00:51:17,000 --> 00:51:20,000 लीग और प्रभागों द्वारा बेसबॉल टीमों फिल्टर. 953 00:51:20,000 --> 00:51:23,000 जब मैं एक लीग का चयन करते हैं, उदाहरण के लिए, मैं परिवर्तन लाना चाहते हैं 954 00:51:23,000 --> 00:51:25,000 मेरी अगली स्क्रीन जहाँ मैं सब डिवीजनों की प्रदर्शित कर सकते हैं 955 00:51:25,000 --> 00:51:27,000 कि लीग या सभी अलग अलग टीमों में. 956 00:51:27,000 --> 00:51:31,000 मैं टीमों क्या आप प्रदर्शित करना चाहिए कि स्क्रीन के लिए भेजने की जरूरत है. 957 00:51:31,000 --> 00:51:35,000 ऐसा करने के लिए है कि मैं इस विधि का लाभ लेने के लिए जा रहा हूँ यहाँ. 958 00:51:35,000 --> 00:51:39,000 >> अंत में, बस IOS पर एक यादृच्छिक बिंदु. 959 00:51:39,000 --> 00:51:41,000 यदि आप डेटा संग्रहीत करना चाहते हैं वहाँ इस कोर डेटा बुलाया बात है, 960 00:51:41,000 --> 00:51:44,000 जो वास्तव में के साथ काम करने के लिए जटिल की तरह है. 961 00:51:44,000 --> 00:51:47,000 तुम भी SQL का उपयोग करने के लिए डाटा स्टोर कर सकते हैं, 962 00:51:47,000 --> 00:51:51,000 जो फिर से, अच्छा है, लेकिन और अधिक जटिल तरफ की तरह है के साथ काम करने के लिए, 963 00:51:51,000 --> 00:51:55,000 लेकिन iOS भी इन सच में अच्छा संपत्ति सूचियों बुलाया बातों का समर्थन करता है, 964 00:51:55,000 --> 00:52:00,000 और एक संपत्ति की सूची सिर्फ एक फ़ाइल है कि महत्वपूर्ण मूल्य जोड़े का प्रतिनिधित्व करता है. 965 00:52:00,000 --> 00:52:03,000 चाबी की एक सूची को परिभाषित करने के लिए, और आप कहते हैं कि इस कुंजी एक सरणी होने जा रहा है. 966 00:52:03,000 --> 00:52:06,000 यह कुंजी एक स्ट्रिंग हो जा रहा है, और मूल रूप से कुछ भी आप कर सकते हैं 967 00:52:06,000 --> 00:52:10,000 JSON में आप एक संपत्ति की सूची के अंदर कर सकते हैं, 968 00:52:10,000 --> 00:52:14,000 और इसलिए यह वास्तव में अच्छी तरह से हमें कुछ डेटा के साथ काम करने के लिए अनुमति देता है. 969 00:52:14,000 --> 00:52:18,000 उदाहरण के लिए, मैं इस Teams.plist कि मैं बनाया है. 970 00:52:18,000 --> 00:52:22,000 मैं एक नया plist फ़ाइल बनाया है, और मैं नीचे ड्रिल कर सकते हैं. 971 00:52:22,000 --> 00:52:26,000 यह एक शब्दकोश है, यह एक शब्दकोश है, इन तार कर रहे हैं, 972 00:52:26,000 --> 00:52:30,000 और इसलिए यह एक JSON दस्तावेज़ का एक अच्छा ग्राफिकल प्रतिनिधित्व है 973 00:52:30,000 --> 00:52:33,000 या सिर्फ महत्वपूर्ण मूल्य जोड़े का एक सेट, 974 00:52:33,000 --> 00:52:37,000 और इसलिए इस डेटा है कि मैं अपने अनुप्रयोग के अंदर के साथ काम करना होगा. 975 00:52:37,000 --> 00:52:40,000 >> चलो पहले यहाँ आ. अब हम एक बहुत अधिक फ़ाइलें है. 976 00:52:40,000 --> 00:52:44,000 लेकिन हम पहले से अधिक स्टोरीबोर्ड यहाँ आने के लिए. 977 00:52:44,000 --> 00:52:48,000 स्टोरीबोर्ड यहाँ अगर मैं ज़ूम कर सकते हैं बाहर 978 00:52:48,000 --> 00:52:51,000 अब हम देखते हैं कि यह अपने अनुप्रयोग के प्रवाह कर सकते हैं. 979 00:52:51,000 --> 00:52:53,000 मैं पहली बार इस स्क्रीन पर शुरू करने के लिए जा रहा हूँ. 980 00:52:53,000 --> 00:52:55,000 मैं इस स्क्रीन के लिए नीचे ड्रिल करने के लिए जा रहा हूँ, 981 00:52:55,000 --> 00:52:58,000 और मैं इस स्क्रीन के लिए नीचे ड्रिल करने के लिए जा रहा हूँ, और हम यहाँ देख सकते हैं कि अगर मैं एक तरह से 982 00:52:58,000 --> 00:53:04,000 के आसपास हम इन तीरों पर यहाँ से यहाँ के लिए जा रहा है इनमें से एक ले जाने के लिए, 983 00:53:04,000 --> 00:53:08,000 और जिस तरह से मुझे लगता है कि तीर को परिभाषित किया गया था अगर मैं एक छोटा सा में ज़ूम, 984 00:53:08,000 --> 00:53:12,000 और अगर मैं इस दृश्य नियंत्रक पर आते हैं, 985 00:53:12,000 --> 00:53:16,000 और यहाँ एक सेल है, और मैं कहना चाहता हूँ कि जब आप एक सेल नल 986 00:53:16,000 --> 00:53:18,000 मैं तुम पर एक स्क्रीन को स्लाइड के लिए चाहते हैं. 987 00:53:18,000 --> 00:53:21,000 मैं बस नीचे नियंत्रण पकड़ कर सकते हैं, 988 00:53:21,000 --> 00:53:26,000 एक छोटा सा पर स्क्रॉल करें, नीचे नियंत्रण पकड़, इस सेल खींचें और चलते हैं. 989 00:53:26,000 --> 00:53:30,000 >> और हम यहाँ पर कहना है कि संक्रमण है कि आप उपयोग करना चाहते हैं क्या है? 990 00:53:30,000 --> 00:53:32,000 क्या आप कि स्लाइड बात यह है कि धक्का कहा जाता है का उपयोग करना चाहते हैं? 991 00:53:32,000 --> 00:53:34,000 क्या आप के लिए नीचे से ऊपर स्लाइड के लिए करना चाहते हैं? 992 00:53:34,000 --> 00:53:36,000 वह मॉडल कहा जाता है. 993 00:53:36,000 --> 00:53:40,000 और एक बार मैं इन में से एक क्लिक करें, यह मेरे लिए इस तीर को आकर्षित करने के लिए जा रहा है, 994 00:53:40,000 --> 00:53:44,000 और इसका मतलब है कि मैं वास्तव में संभाला है क्या होता है जब मैं इस बटन रेखांकन प्रेस. 995 00:53:44,000 --> 00:53:48,000 मैं किसी के लिए वास्तव में एक स्क्रीन से एक को अगले स्लाइड कोड नहीं लिखा था. 996 00:53:48,000 --> 00:53:51,000 मैं इस नेत्रहीन इंटरफ़ेस बिल्डर के अंदर परिभाषित किया. 997 00:53:51,000 --> 00:53:55,000 अगर मैं इस तीर पर क्लिक करें, हम देख सकते हैं कि मैं इस बात को एक नाम दिया. 998 00:53:55,000 --> 00:53:59,000 मैंने यह कहा जाता showDivisions, और यह है इतना है कि मैं पता कर सकते हैं 999 00:53:59,000 --> 00:54:03,000 क्या संक्रमण होने के बारे में है, और हम सिर्फ एक सेकंड में क्यों देखेंगे. 1000 00:54:03,000 --> 00:54:06,000 यही कारण है कि कैसे मैं अपने अनुप्रयोग में विभिन्न स्क्रीन वायर्ड है. 1001 00:54:06,000 --> 00:54:09,000 , यदि यह एक, उदाहरण के लिए बटन, बजाय एक तालिका दृश्य थे 1002 00:54:09,000 --> 00:54:11,000 मैं बटन पर क्लिक करें को नियंत्रित करने के लिए, अगले स्क्रीन पर खींच सकता है, 1003 00:54:11,000 --> 00:54:16,000 और है कि कैसे मैं नेविगेशन तरीका है कि कर सकते हैं. 1004 00:54:16,000 --> 00:54:19,000 >> वास्तव में, जल्दी से, अगर हम MasterViewController में आते हैं, 1005 00:54:19,000 --> 00:54:22,000 फिर, हम बस चीजों की एक सूची को परिभाषित करने के लिए जा रहे हैं 1006 00:54:22,000 --> 00:54:26,000 कि तालिका दृश्य में प्रदर्शित किया जाएगा. 1007 00:54:26,000 --> 00:54:29,000 यहाँ मैं कह रहा हूँ मैं आपको लगता है कि plist फ़ाइल लेने के लिए चाहते हैं, 1008 00:54:29,000 --> 00:54:32,000 और मैं इसे लोड करने के लिए एक शब्दकोश में चाहते हैं, 1009 00:54:32,000 --> 00:54:35,000 और एक बार आपको लगता है कि शब्दकोश है, मैं उन एक ही सवाल फिर से जवाब करने के लिए जा रहा हूँ. 1010 00:54:35,000 --> 00:54:37,000 यहाँ वर्गों की संख्या है. 1011 00:54:37,000 --> 00:54:41,000 एक, हर लीग के लिए एक पंक्ति, और प्रत्येक कोशिका का मूल पाठ इस प्रकार है 1012 00:54:41,000 --> 00:54:46,000 या तो पहले एक, 1 लीग, 2 लीग, और इतने पर होना चाहिए. 1013 00:54:46,000 --> 00:54:51,000 अंत में, मैं यह तरीका है कि हम सिर्फ prepareForSegue बुलाया देखा का उपयोग करने के लिए जा रहा हूँ, 1014 00:54:51,000 --> 00:54:54,000 और यह तरीका है कि निकाल दिया जा रहा है जब मैं क्लिक करें 1015 00:54:54,000 --> 00:54:57,000 उन पंक्तियों में से एक पर है और इसलिए है कि संक्रमण को सक्रिय 1016 00:54:57,000 --> 00:54:59,000 कि मैं तीर के साथ सेट. 1017 00:54:59,000 --> 00:55:02,000 यह कह रहा है कि मैं कई हो सकता है 1018 00:55:02,000 --> 00:55:05,000 एक स्क्रीन से दूसरे रिश्तों. 1019 00:55:05,000 --> 00:55:08,000 अगर मैं 2 बटन है और एक बटन आप एक अलग स्क्रीन के लिए ले जाता है 1020 00:55:08,000 --> 00:55:10,000 मैं प्रत्येक बटन के लिए 2 segues, 1 करने के लिए जा रहा हूँ. 1021 00:55:10,000 --> 00:55:14,000 लेकिन इस prepareForSegue है, फिर से, के लिए reused किया जा रहा 1022 00:55:14,000 --> 00:55:17,000 विभिन्न रिश्तों में से प्रत्येक के लिए है, तो इसका मतलब है कि मैं एक तरह की जरूरत है 1023 00:55:17,000 --> 00:55:21,000 पहचान अगर आप 1 बटन दबा सकते हैं, या आप 2 बटन दबाएँ. 1024 00:55:21,000 --> 00:55:25,000 >> याद है जब मुझे लगता है कि segue एक नाम है, इस showDivisions दिया, 1025 00:55:25,000 --> 00:55:29,000 है कि कैसे मैं अब जानते हैं कि इस segue कि सक्रिय किया गया है. 1026 00:55:29,000 --> 00:55:32,000 सभी मैं करना चाहता है मैं कहना चाहता हूँ 1027 00:55:32,000 --> 00:55:35,000 मुझे यह पता लगाने के लिए क्या मैं सिर्फ हिट करना चाहते हैं, 1028 00:55:35,000 --> 00:55:38,000 और ऐसा करने के लिए है कि मिल, मैं कह सकता हूँ मैं चयनित पंक्ति के लिए indexPath चाहते हैं, 1029 00:55:38,000 --> 00:55:42,000 indexPath याद बस का कहना है कि जहां मैं बस क्लिक किया, 1030 00:55:42,000 --> 00:55:47,000 और फिर मैं करने के लिए कहते हैं कि मुझे यह पता लगाने के लिए जहाँ मैं जा रहा हूँ चाहते चाहते हैं. 1031 00:55:47,000 --> 00:55:50,000 इस destinationViewController, कि segue की एक संपत्ति है. 1032 00:55:50,000 --> 00:55:53,000 कि स्क्रीन मैं जा रहा हूँ, 1033 00:55:53,000 --> 00:55:56,000 इसलिए मुझे पता है कि मैं जा रहा हूँ स्क्रीन DivisionsViewController कहा जाता है 1034 00:55:56,000 --> 00:55:59,000 क्योंकि मुझे लगता है कि वर्ग बनाया है, 1035 00:55:59,000 --> 00:56:02,000 और इसलिए अब अगर मैं d.divisions का कहना है 1036 00:56:02,000 --> 00:56:06,000 अब मैं मैं करने के लिए जाने के बारे में हूँ दृश्य नियंत्रक के एक संपत्ति की स्थापना कर रहा हूँ. 1037 00:56:06,000 --> 00:56:10,000 यह कैसे मैं एक स्क्रीन से डेटा एक स्क्रीन के लिए भेज रहा हूँ. 1038 00:56:10,000 --> 00:56:13,000 >> बस इस DivisionsViewController में तलाश 1039 00:56:13,000 --> 00:56:16,000 आप यहाँ देख सकते है कि ज. फ़ाइल में 1040 00:56:16,000 --> 00:56:20,000 वहाँ है कि संपत्ति डिवीजनों है, और है कि मैं क्या मूल रूप से populating रहा हूँ, 1041 00:56:20,000 --> 00:56:25,000 इतना है कि कैसे मैं जानता हूँ कि मैं करने के लिए इसी डिवीजनों प्रदर्शित कर रहा हूँ 1042 00:56:25,000 --> 00:56:28,000 लीग कि मैं क्लिक किया, और फिर, 1043 00:56:28,000 --> 00:56:31,000 वास्तविक तालिका दृश्य बहुत ही ज्यादा लग रहा है, सिर्फ उन का जवाब दे 1044 00:56:31,000 --> 00:56:34,000 3 सरल रूप में के रूप में अच्छी तरह से सवालों की पहचान 1045 00:56:34,000 --> 00:56:37,000 क्या होता है जब आप अगले स्क्रीन में जाने. 1046 00:56:37,000 --> 00:56:40,000 बस अन्य यहाँ चीजों की एक जोड़ी. 1047 00:56:40,000 --> 00:56:43,000 आप शीर्ष पर यहाँ नोटिस कि बजाय कह # शामिल 1048 00:56:43,000 --> 00:56:45,000 अब मैं कह रहा हूँ आयात. 1049 00:56:45,000 --> 00:56:47,000 यह सिर्फ एक उद्देश्य सी बात है. 1050 00:56:47,000 --> 00:56:52,000 आयात मूल रूप से शामिल की एक अच्छे संस्करण है, 1051 00:56:52,000 --> 00:56:57,000 उदाहरण के लिए, हम जानते हैं क्या है इस वर्ग की जरूरत है, 1052 00:56:57,000 --> 00:57:00,000 इसलिए मैं सिर्फ DivisionsViewController नहीं कह सकता. 1053 00:57:00,000 --> 00:57:05,000 यदि हम हमारे ग फ़ाइल के standardio.c अंदर नहीं hashtag किया 1054 00:57:05,000 --> 00:57:07,000 संकलक पता नहीं क्या printf था था. 1055 00:57:07,000 --> 00:57:12,000 इसी तरह, अगर मैं DivisionsViewController आयात नहीं करते 1056 00:57:12,000 --> 00:57:16,000 संकलक वास्तव में कोई विचार नहीं है एक DivisionsViewController क्या है. 1057 00:57:16,000 --> 00:57:19,000 बस यह सुनिश्चित करें कि अपने अलग मीटर फ़ाइलों के अंदर आप आयात करने के लिए सुनिश्चित कर लें 1058 00:57:19,000 --> 00:57:25,000 इसी ज फ़ाइलें इतना है कि संकलक जानता है कि क्या हो रहा है. 1059 00:57:25,000 --> 00:57:31,000 >> अंत में, क्या एप्पल अंततः कुछ एक वेब दृश्य का उपयोग कर डेटा प्रदर्शित करता है, 1060 00:57:31,000 --> 00:57:35,000 और इसलिए एक वेब दृश्य एक वस्तु है जिसमें आप एम्बेड कर सकते है 1061 00:57:35,000 --> 00:57:37,000 अपने अनुप्रयोग के अंदर एक छोटे से वेब ब्राउज़र. 1062 00:57:37,000 --> 00:57:40,000 तुम सब करने की जरूरत है अपने वेब ब्राउज़र URL की आपूर्ति है, 1063 00:57:40,000 --> 00:57:43,000 इसलिए मैं mlb.mlb.com करने के लिए जाना चाहते हैं, 1064 00:57:43,000 --> 00:57:46,000 और यह है कि मैं प्रत्येक टीम के लिए घर पृष्ठ का उपयोग कर सकते हैं, 1065 00:57:46,000 --> 00:57:49,000 और इसलिए इस URL में पारित 1066 00:57:49,000 --> 00:57:52,000 वेब दृश्य मेरे लिए यह प्रदर्शित करने के लिए, कर सकते हैं और मैं चारों ओर ब्राउज़ कर सकते हैं, 1067 00:57:52,000 --> 00:58:01,000 और सिम्युलेटर एक है कि प्रयोग में है. 1068 00:58:01,000 --> 00:58:03,000 अब यह मेरे plist से आया है. 1069 00:58:03,000 --> 00:58:07,000 यदि मैं इस पर क्लिक करें यह भी मेरे plist से आया है, और इस स्लाइडिंग संभाला था 1070 00:58:07,000 --> 00:58:09,000 उन segues को परिभाषित. 1071 00:58:09,000 --> 00:58:12,000 मैं इस पर क्लिक करें और एक अधिक, 1072 00:58:12,000 --> 00:58:15,000 और अब यहाँ मेरे UIWebView कि तरह है, तो बस 1073 00:58:15,000 --> 00:58:19,000 यहाँ यूआरएल के लिए वेबसाइट है कि मैं सिर्फ एम्बेडेड है, 1074 00:58:19,000 --> 00:58:21,000 और मैं पागल कुछ भी संभाल नहीं था. 1075 00:58:21,000 --> 00:58:24,000 यह कैसे एक वेब पेज प्रदर्शित करने के लिए है. 1076 00:58:24,000 --> 00:58:27,000 इस वापस बटन की तरह यहाँ हालात भी मुझे करने के लिए दिया जाता है 1077 00:58:27,000 --> 00:58:33,000 पूरी तरह से मुक्त करने के लिए क्योंकि मैं इन segues का उपयोग संबंधों को परिभाषित किया गया है. 1078 00:58:33,000 --> 00:58:37,000 >> कोई सवाल? हाँ. 1079 00:58:37,000 --> 00:58:40,000 [छात्र] तो जब आप alloc का उपयोग करें, कुछ भी मुफ्त के लिए आप कभी नहीं है? 1080 00:58:40,000 --> 00:58:43,000 वास्तव में, जब आप alloc और init कॉल आप इसे मुक्त नहीं है. 1081 00:58:43,000 --> 00:58:46,000 IOS कि आप के लिए संभाल करने के लिए जा रहा है. 1082 00:58:46,000 --> 00:58:51,000 यह अद्भुत है, और आप किसी भी नियम नहीं तोड़ रहे हैं. हाँ. 1083 00:58:51,000 --> 00:58:54,000 [छात्र] यदि आप अधिक टीमों कि स्क्रीन पर फिट कर सकते हैं शामिल थे, 1084 00:58:54,000 --> 00:58:58,000 यह स्वचालित रूप से एक पुस्तक विकल्प होता है, या आप जोड़ने की जरूरत है कि कुछ है? 1085 00:58:58,000 --> 00:59:01,000 वास्तव में, अगर मैं अधिक टीमों था, उदाहरण के लिए, यह स्वतः ही संभालना होगा 1086 00:59:01,000 --> 00:59:04,000 मेरे लिए स्क्रॉल, और सभी प्रदर्शन चिंताओं 1087 00:59:04,000 --> 00:59:08,000 बड़ी मेज के साथ भी मेरे लिए पूरी तरह से संभाला है. 1088 00:59:08,000 --> 00:59:11,000 >> अन्य प्रश्न? 1089 00:59:11,000 --> 00:59:13,000 इस कोड के सभी के लिए तैनात किया जा रहा है. 1090 00:59:13,000 --> 00:59:16,000 हम किस तरह का और अधिक छोटे विवरण का एक छोटा सा पर भुला, 1091 00:59:16,000 --> 00:59:19,000 लेकिन जैसे चीजें वेब देखने के लिए कुछ संपत्तियों की स्थापना 1092 00:59:19,000 --> 00:59:22,000 सिर्फ बातें कर रहे हैं कि आप एप्पल प्रलेखन ब्राउज़ द्वारा प्राप्त कर सकते हैं, 1093 00:59:22,000 --> 00:59:24,000 जो सच है, वास्तव में अच्छी तरह से बाहर रखी. 1094 00:59:24,000 --> 00:59:27,000 वे नमूना क्षुधा की एक बहुत कुछ और usages उदाहरण है 1095 00:59:27,000 --> 00:59:34,000 अलग APIs के, तो निश्चित रूप से अगर आप यह कर सकते हैं उन सोचना. 1096 00:59:34,000 --> 00:59:36,000 बस कुछ उपयोगी लिंक आप पर एक नज़र रखना चाहते हो सकता है. 1097 00:59:36,000 --> 00:59:38,000 कुछ काम प्रलेखन मार्गदर्शक हैं. 1098 00:59:38,000 --> 00:59:41,000 URLs बड़े पैमाने पर कर रहे हैं, ताकि वे छोटा कर रहे हैं. 1099 00:59:41,000 --> 00:59:44,000 यह पहली बार एक दस्तावेज की पूरी लाइब्रेरी है. 1100 00:59:44,000 --> 00:59:46,000 वहाँ थोड़ा खोज बार है, इसलिए यदि आप टाइपिंग प्रारंभ बटन 1101 00:59:46,000 --> 00:59:50,000 यह आप सभी चीजें आप एक बटन के साथ कर सकते हैं के बारे में सभी जानकारी देने के लिए शुरू कर देंगे. 1102 00:59:50,000 --> 00:59:53,000 मैं भी टेबल प्रोग्रामिंग गाइड शामिल है. 1103 00:59:53,000 --> 00:59:56,000 यह बहुत अधिक विस्तार में तालिका दृश्य संभालती है, 1104 00:59:56,000 --> 01:00:00,000 कैसे काम करने की तरह गतिशील कोशिकाओं या संपादित कोशिकाओं जोड़ सकते हैं या उन्हें हटा दें. 1105 01:00:00,000 --> 01:00:02,000 >> वहाँ एप्पल से नमूना क्षुधा की बहुत सारे है कि आप बताएंगे कि कैसे करना होगा, 1106 01:00:02,000 --> 01:00:05,000 और अंत में, यह पिछले एक मानव इंटरफ़ेस दिशानिर्देश है, 1107 01:00:05,000 --> 01:00:09,000 और यह मूल रूप से UI घटक की कुछ चर्चा है, 1108 01:00:09,000 --> 01:00:12,000 तरह बातें एक बटन है कि 4 पिक्सल द्वारा 4 पिक्सल नहीं बनाते हैं. 1109 01:00:12,000 --> 01:00:15,000 यह एक बुरा विचार है, और अन्य चीजें हैं जो एप्पल तुम्हें करने के लिए करना चाहता है 1110 01:00:15,000 --> 01:00:18,000 अच्छे डिजाइन को प्रोत्साहित करने के लिए. 1111 01:00:18,000 --> 01:00:23,000 >> इससे पहले कि हम खत्म करने के लिए कोई अंतिम सवाल? 1112 01:00:23,000 --> 01:00:27,000 सब ठीक है, निश्चित रूप से चर्चा पर विशेष लेबल किया जा रहा है हम करने के लिए स्वतंत्र महसूस हो रहा है. 1113 01:00:27,000 --> 01:00:30,000 हम एक एक iOS होगा, तो निश्चित है कि का उपयोग करने के लिए स्वतंत्र महसूस हो रहा है. 1114 01:00:30,000 --> 01:00:34,000 यदि आप के लिए परियोजनाओं पर अपने सहपाठियों के साथ काम करना चाहते हैं 1115 01:00:34,000 --> 01:00:37,000 मदद या बाहर कुछ यादृच्छिक iOS सामान आंकड़ा 1116 01:00:37,000 --> 01:00:40,000 मुझे ईमेल करने के लिए स्वतंत्र महसूस, और निश्चित रूप से सभी कोड ऑनलाइन क्योंकि सोचना 1117 01:00:40,000 --> 01:00:43,000 बस समय के हित में हम किस तरह से अधिक से अधिक भुला 1118 01:00:43,000 --> 01:00:45,000 चीजों के महीन grained विवरण. 1119 01:00:45,000 --> 01:00:47,000 लेकिन यदि नहीं, तो अपने iOS परियोजनाओं पर अच्छी किस्मत, और मैं आशा है कि हम 1120 01:00:47,000 --> 01:00:53,000 App स्टोर में क्षुधा की बड़ी बाढ़ है. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]