1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [ندوة] [دائرة الرقابة الداخلية: كتابة تطبيقات مثل بوس] 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 >> كل الحق، والجميع، مرحبا بكم في دائرة الرقابة الداخلية: كتابة تطبيقات مثل بوس. 5 00:00:12,000 --> 00:00:16,000 هذه الندوة سوف تركز على الكتابة تطبيقات لفون 6 00:00:16,000 --> 00:00:19,000 وبدوره كتابة تطبيقات لتطلب الشركة، وهكذا نحن في طريقنا أساسا على المشي من خلال 7 00:00:19,000 --> 00:00:23,000 بضعة أمثلة مختلفة لكيفية جعل التطبيق، لعبة بسيطة مثل التشنج اللاإرادي تاك تو، 8 00:00:23,000 --> 00:00:26,000 أو إذا كنت أكثر اهتماما في صنع التطبيق مثل بعض النوع من قراءة الأخبار 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 بلغة تسمى الهدف-C، 12 00:00:36,000 --> 00:00:39,000 وهكذا هذا هو قليلا مماثلة لC ولكن ليس حقا مطلقا، 13 00:00:39,000 --> 00:00:41,000 لذلك سنتحدث قليلا عن اللغة نفسها 14 00:00:41,000 --> 00:00:45,000 ثم كيف لبناء تطبيقات آي فون باستخدام هذا البرنامج التطبيق دعا كسكودي، 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 وينبغي أن تكون حرة في المتجر، لذلك عليك أن يكون لديك جهاز ماكنتوش 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 لدينا أجهزة ماكينتوش في مركز العلوم متوفرة للاستخدام الخاص 21 00:01:02,000 --> 00:01:05,000 مع كسكودي المثبتة، ولذا لا تتردد في استخدام هذه من أجل التنمية. 22 00:01:05,000 --> 00:01:07,000 إذا كنت تريد أن تجعل التطبيق ولكن لم يكن لديك جهاز ماكنتوش، لا تقلق. 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 الهدف-C من الناحية التقنية ما يسمى مجموعة من السوبر C. 26 00:01:19,000 --> 00:01:24,000 وهذا يعني أن أي رمز C هو أيضا صالح الهدف-C التعليمات البرمجية. 27 00:01:24,000 --> 00:01:29,000 وهذا يعني أننا نوع من القناة سجلت على بعض الميزات الإضافية لC. 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 يكره لكم عن C، وانها نوع من ذهب في C-الهدف. 31 00:01:40,000 --> 00:01:43,000 >> الآن، الهدف-C ويحتوي أيضا على مكتبة القياسية أكبر من ذلك بكثير، 32 00:01:43,000 --> 00:01:47,000 ولذلك لا يوجد وظائف أكثر بكثير لتحصل على الهدف داخل خالية من-C. 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 نفس الشيء يحدث في دائرة الرقابة الداخلية. 36 00:01:56,000 --> 00:01:59,000 هناك أشياء لأشياء مثل التقويم البوذي، وحقا أي شيء 37 00:01:59,000 --> 00:02:05,000 ربما يمكنك أن تفكر من يحتمل وجودها بالفعل في تنفيذ الهدف-C ل. 38 00:02:05,000 --> 00:02:08,000 الجزء الهدف من الهدف-C يتم الرجوع شيء 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 ويتم تمجيد حقا هذه الفئات البنيات. 45 00:02:26,000 --> 00:02:30,000 من داخل البنية قلنا في الأساس هنا هو شيء، 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 ومعا هذا المؤشر والقيمة التي تتألف هذه الحالة واحدة من البنية. 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 عندما كنا أعلنت البنية، فإننا لا يمكن إلا أن أقول ن الباحث أو عقدة * المقبل. 53 00:02:54,000 --> 00:02:57,000 >> الآن مع الهدف C-نستطيع فعلا وضع الوظائف 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 وهي تنفيذ التطبيق. 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 أنه يؤدي إلى تغليف البيانات. 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 مع الطبقات يمكننا أن نبدأ التغليف المعلومات داخل كائن. 72 00:03:55,000 --> 00:03:58,000 اذا كان لدينا شاشة واحدة على التطبيق لدينا، ونحن لسنا في حاجة حقا أن يكون أي من البيانات 73 00:03:58,000 --> 00:04:01,000 شاشة أخرى في داخل التطبيق لدينا من ذلك، 74 00:04:01,000 --> 00:04:04,000 وذلك عن طريق التغليف الأمور داخل صفوف هذا يؤدي في الواقع 75 00:04:04,000 --> 00:04:08,000 لتصميم رمز أفضل بكثير، وهذا ممكن مع بعض من ميزات إضافية 76 00:04:08,000 --> 00:04:11,000 من C-الهدف. 77 00:04:11,000 --> 00:04:15,000 إنذار مسبق، بناء الجملة من أجل الهدف-C هو الموز. 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 تماما كما في C لدينا. ملفات ح وقال في الأساس هنا هي بعض الأشياء التي من شأنها أن توجد. 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 في وقت لاحق من داخل م. لدينا الملفات، لأن الهدف متر لل-C 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 وأخيرا، من داخل البنية يمكن أن نقول داخل تلك الأقواس المتعرجة 100 00:05:22,000 --> 00:05:25,000 الباحث، ن أو عقدة المقبلة * 101 00:05:25,000 --> 00:05:28,000 والهدف في C-ونحن في طريقنا إلى استخدام الكلمة @ الممتلكات، 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 >> استدعاء دالات في الهدف C هو أيضا الموز. 105 00:05:40,000 --> 00:05:43,000 عندما أعلنا في وظائف C قلنا شيء من هذا القبيل فو الباحث 106 00:05:43,000 --> 00:05:46,000 وأعطى مفتوحة PAREN وبعد ذلك قائمة من الحجج. 107 00:05:46,000 --> 00:05:51,000 هذا ما يعلن أساليب أو وظائف تبدو في C-الهدف. 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 هنا ل-I لا أعرف. 115 00:06:11,000 --> 00:06:14,000 القادم سيكون اسم مهامي، 116 00:06:14,000 --> 00:06:17,000 ثم أخيرا لدينا فاصلة منقوطة تماما مثل كان لدينا في C. 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 >> بعد أن أعلن لدينا البنيات قلنا ربما شيء من هذا القبيل 121 00:06:29,000 --> 00:06:32,000 ن البنية عقدة، والتي خلقت الواقع 122 00:06:32,000 --> 00:06:35,000 أو مثيل واحد من هذه البنيات كي أتمكن من بدء العمل فعليا 123 00:06:35,000 --> 00:06:38,000 مع ما هو داخل منه، لذلك هذا يعني أن اندفاعة لدينا 124 00:06:38,000 --> 00:06:41,000 إنشاء مثيل فئة فقط وكأننا مثيل أن البنية 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 نوع حجتها هو الباحث، واسم هذه الحجة 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 صفائف النقابي 143 00:07:34,000 --> 00:07:37,000 جعل الهدف-C القرار أن أقول، حسنا، مجرد أن ذلك كان واضحا حقا 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 إذا كان الأمر كذلك لدي كائن، وأنا يعرف طريقة تسمى فو، 153 00:08:04,000 --> 00:08:09,000 وأريد أن يطلق عليه، بدلا من القول فو فتح / إغلاق 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 أو شيء من هذا القبيل، وهكذا هذه الطريقة الأولية هو الذي يخلق الواقع الكائن. 169 00:08:57,000 --> 00:08:59,000 نحن تخصيص مساحة 1، مثلما فعلنا في C، 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 ولكن لا تقلق، مؤشرات ليست كبيرة الى اتفاق في الهدف C-بعد الآن. 174 00:09:12,000 --> 00:09:15,000 >> الآن لقد كنا مثيل هذه الفئة تسمى NSObject، 175 00:09:15,000 --> 00:09:19,000 وهذا هو مجرد عشوائية طبقية أن أبل لديها. 176 00:09:19,000 --> 00:09:22,000 لقد اتخذنا هذا مثيل، والآن لدي مثيل من هذه الفئة 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 وهنا هو الباز: 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 >> حسنا، دعونا نتحدث عن عدد قليل من الأشياء التي هي في صلب الهدف-C 186 00:09:54,000 --> 00:09:56,000 وليس ذلك بالضرورة إلى بناء C. 187 00:09:56,000 --> 00:09:59,000 نحن في C نوع من كان عليها أن تتعامل مع السلاسل والمصفوفات هذه الحرف غبي، 188 00:09:59,000 --> 00:10:01,000 وحصلت عليه مزعج حقا. 189 00:10:01,000 --> 00:10:04,000 الهدف-C لديه تلك التي بنيت في جميع بالنسبة لنا، والذي بني في 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 وهذا هو مجرد بناء الجملة من أجل إعلان السلاسل في C-الهدف. 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، وهو ما يعني أنني مثيل فئة 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 في C. 204 00:10:45,000 --> 00:10:47,000 وهذه العودة 4. 205 00:10:47,000 --> 00:10:51,000 >> وبالمثل، I طريقة أخرى قد ترغب في يهتمون هو هذا 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 لدينا أيضا حجم متغير صفائف بنيت فيها 213 00:11:11,000 --> 00:11:13,000 تذكر عندما كنا في C أعلنت مجموعة 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 يمكننا أن نفعل نفس الشيء في C-الهدف. 218 00:11:22,000 --> 00:11:26,000 بدلا من إنشاء مجموعة في الطريقة العادية C 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 وهذا يحدث أساسا لتغليف بعض الصفيف. 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 أريد أن أضيف كائن إلى مجموعة A، وأريد أن أضيف سلسلة 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 وNS تقف فعلا للخطوة التالية، والتي كانت واحدة من الشركات ستيف وظائف 1، 236 00:12:21,000 --> 00:12:24,000 وهذا حقا حيث بدأ الكتابة الكثير من التعليمات البرمجية 237 00:12:24,000 --> 00:12:27,000 كما نوع من الأساس لنظام التشغيل Mac OS X وجميع الأشياء الأخرى، 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 دعونا نلقي نظرة على سبيل المثال أكثر شمولية الهدف-C. 242 00:12:41,000 --> 00:12:44,000 أنا هنا داخل كسكودي. 243 00:12:44,000 --> 00:12:47,000 للوصول الى هنا، لقد قمت بتحميل 1 كسكودي من المتجر، 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 ولكن فقط على سبيل المثال هذا، لأننا في الواقع لن يكون لأحد التطبيقات حتى الآن، 249 00:13:03,000 --> 00:13:06,000 جئت إلى هنا، وقلت اداة سطر الاوامر، 250 00:13:06,000 --> 00:13:09,000 وهذا هو أحد التطبيقات التي سبق أن تشغيل في سطر الأوامر 251 00:13:09,000 --> 00:13:12,000 مثلما كنا يمتد من C. 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 لدي اسم الباحث. هناك 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 >> دعونا ننظر في هذه المجموعة الأولى هنا. 260 00:13:39,000 --> 00:13:46,000 هذا السطر الأول، إذا قلت طالب * أليس = [[alloc الطلاب] التهيئة] ما هذا تفعل؟ 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 وهذا يعني تلميذي، إذا كان هذا البنية، فإن هذه الأمور 2 يكون 284 00:15:08,000 --> 00:15:11,000 داخل البنية بلدي، لذلك كل طالب له اسم 285 00:15:11,000 --> 00:15:14,000 هذا هو سلسلة، وطالب أيضا الصف، 286 00:15:14,000 --> 00:15:17,000 وهو الباحث. 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 وهذه الحجة هي سلسلة، ويطلق عليه اسم I. 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 وحتى هذا قليلا خفي، ولكن هذا النوع من المتداول 298 00:15:56,000 --> 00:15:58,000 التي تريد أن تدرج في المنشئات الخاصة بك. 299 00:15:58,000 --> 00:16:02,000 هذه الوظيفة التهيئة هنا، 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 أول شيء أريد القيام به هو أريد أن أدعو الحرف الأول على هذا الشيء عظمى. 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 ثم إذا كان ذلك تهيئة بشكل صحيح هذا هو تماما مثل قوله إذا 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 في C-الهدف ونحن نسمي هذا المصير. 316 00:17:00,000 --> 00:17:04,000 عندما أقول self.name، وهذا يعني أن الكائن 317 00:17:04,000 --> 00:17:07,000 أنا خلقت للتو عندما قلت alloc الطالب الحرف الأول، 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 مثلما هو الحال في C، ونحن مع هذا الوصول أعضاء نقطة، 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 حسنا، لذلك هذا المصير = سوبر الحرف الأول، 327 00:17:34,000 --> 00:17:37,000 إذا كنت لا تفهم تماما الاشياء الميراث لا تقلق. 328 00:17:37,000 --> 00:17:40,000 نعرف فقط أنه إذا كنت تريد من أي وقت مضى لجعل طريقة التهيئة الخاصة فقط 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 الطالب الحرف الأول أنا لا تستخدم هذه الطريقة التي كتبت للتو، 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، ومن ثم بدلا من القول الحرف الأول 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 أي أسئلة حول الهدف-C قبل أن نبدأ في بناء الجملة الانتقال إلى بعض أكثر 362 00:19:26,000 --> 00:19:30,000 مثيرة للاهتمام الاشياء التنمية التطبيقات؟ 363 00:19:30,000 --> 00:19:34,000 >> حسنا، لذلك دعونا تجعل في الواقع التطبيق فون. 364 00:19:34,000 --> 00:19:39,000 وتسمى الطبقات الأساسية التي سوف تستخدم داخل التطبيق الخاص بك iPhone وحدات تحكم عرض، 365 00:19:39,000 --> 00:19:42,000 ويمثل وحدة تحكم عرض في الأساس شاشة واحدة 366 00:19:42,000 --> 00:19:46,000 من داخل التطبيق الخاص بك، حتى إذا أنا على تطبيق الموسيقى، على سبيل المثال، 367 00:19:46,000 --> 00:19:50,000 يمكن للمرء مشاهدة تحكم تمثل وجهة نظر التي يمكنني عرض جميع الأغاني على اي فون بلدي. 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 لبناء الواجهات في دائرة الرقابة الداخلية هو في الواقع حقا، من السهل حقا. 379 00:20:29,000 --> 00:20:32,000 لديهم هذا السحب لطيفة واجهة واجهة انخفاض دعا باني، 380 00:20:32,000 --> 00:20:37,000 والمفاهيم الأساسية 2 أن يصل الأسلاك C-هدفكم لبناء واجهة 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 وتريد وصل الأمر إلى شيء في واجهة المستخدم الخاص بك الفعلية، 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 دعونا نلقي نظرة على مثال بسيط حقا دائرة الرقابة الداخلية. 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 هنا أنا ذاهب إلى أسفل أن أقول أن هذا هو التطبيق فون. 404 00:21:41,000 --> 00:21:44,000 يمكنك إنشاء التطبيق باد، أو إذا كنت ترغب في إنشاء واحدة من تلك التطبيقات 405 00:21:44,000 --> 00:21:47,000 يدعم كلا الجهازين يمكنك أن تفعل ذلك أيضا. 406 00:21:47,000 --> 00:21:49,000 هذه هي علامة في مربع ما تريد الخاص بك لتبدو وكأنها. 407 00:21:49,000 --> 00:21:51,000 >> كنت ترغب في استخدام القصص المصورة، والتي سنرى في وقت لاحق، 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 وبالتالي فإن الشاشة الأولى داخل بلدي التطبيق. 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 هذا هو رمز المتداول أن أبل يعطيني مجانا. 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 هذا يمثل الشاشة الأولى على بلدي التطبيق. 434 00:23:14,000 --> 00:23:17,000 إذا كنت ترغب في إضافة زر، في HTML واضطررت الى إنشاء علامة زر. 435 00:23:17,000 --> 00:23:20,000 في الروبوت لديك لإنشاء علامة زر، 436 00:23:20,000 --> 00:23:23,000 ولكن في دائرة الرقابة الداخلية إذا وصلت للتو الى اسفل هنا إلى أسفل اليمين 437 00:23:23,000 --> 00:23:27,000 وإذا كنت انقر على هذا أحد 3rd هنا حيث تقول كائنات، 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 واضاف لقد فقط على زر لهذه الشاشة على بلدي التطبيق. 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 حتى لتشغيله I انقر فوق زر التشغيل في أعلى اليسار، وهناك بلدي التطبيق. 445 00:23:54,000 --> 00:23:58,000 أنا لم أفعل أي شيء، وأنا حصلت على الحلو التطبيق فون يبحث. 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 وهذا في إشارة إلى القول بأن كسكودي 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 إشعار كسكودي لطيف و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 في الواقع أنه في مكان ما تعريف الوسم ليكون باطلا، 472 00:25:19,000 --> 00:25:22,000 ومرة أخرى، وهذا هو مجرد تلميح إلى أن يقول كسكودي 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 يمكن للرسالة أن تكون هذه المنبثق "هذه هي دائرة الرقابة الداخلية". 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 ومرة أخرى، كان الإكمال التلقائي سوبر لطيفة. 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 الآن إنشاء هذا الإطار المنبثق I جديد. 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 هذه كلها من تلك الأساليب I أعلن في ملف ح بصفتي IBActions. 513 00:27:28,000 --> 00:27:31,000 هذه هي الطريقة التي ينبغي أن يعرف ما كسكودي تظهر في هذه القائمة قليلا، 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 في C-الهدف كان حقا بهذه السهولة. 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 حتى إذا كنت تريد واحدة من تلك لI أو زر الاتصال الوظيفة 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 من هوياتهم، وهناك فكرة مشابهة في دائرة الرقابة الداخلية تسمى به. 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 لقد قمت بإنشاء هذه الأزرار UI 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 سترى I ضبط الخط هنا، لذلك أنا جعلت الخط أكبر قليلا، 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 >> الآن، إذا كنت انقر فوق زر آخر، مثل هذا ثانية واحدة هنا، 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 أول واحد وآخر ذاهب لتمثيل الدولة في مجلس بلدي. 576 00:30:49,000 --> 00:30:53,000 أساسا هذا واحد الأول هو مجموعة تمثل فيها 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 ويمكن أن تقوم به مختلف العفاريت أشياء مختلفة في نفس الوقت. 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 إلى C-الهدف. 592 00:31:46,000 --> 00:31:49,000 هذا يقول لا تحاول أن تفعل أي شيء يتوهم مع مؤشرات هنا. 593 00:31:49,000 --> 00:31:51,000 انها قشارة العادية القديمة. 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 أنا لا أذهب إلى تخصيص فعلا أو الحرف الأول هذا بنفسي. 597 00:32:00,000 --> 00:32:04,000 منشئ واجهة، عند تشغيل التطبيق، سوف تعامل مع كل ما التهيئة. 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 بعض الأشياء التي يمكننا القيام به داخل دائرة الرقابة الداخلية. 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 هذه هي طريقة لطيفة على صفائف قابلة للتغيير. 618 00:33:01,000 --> 00:33:03,000 هذا هو الذهاب الى القول انها الآن بدوره X ل، 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 أو OS أكثر من أستطيع أن أفعل ذلك. 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 مثلما يمكن أن يلقي رجات ليطفو والعكس بالعكس 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 الآن لدينا بعض التشنج اللاإرادي تاك تو المنطق هنا. 648 00:34:33,000 --> 00:34:36,000 نحن معرفة من عليه الدور، 649 00:34:36,000 --> 00:34:39,000 وبناء على ذلك وضعنا إما X أو O و، 650 00:34:39,000 --> 00:34:43,000 ولكن نلاحظ اننا إعادة استخدام هذا المعالج نفس الحدث 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 ومرة أخرى، لقد مسبوكة I فقط لUIButton. 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 بعد ذلك يمكنني أن مجرد مجموعة إما X أو O، ويمكن أن الوجه المقابل، 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 تيك تو للمنطق تاك، ولكن الآن يمكنك أن ترى أن حقا 678 00:36:06,000 --> 00:36:09,000 كل ما نقوم به هو أننا على حلقات هذه المجموعة، 679 00:36:09,000 --> 00:36:13,000 لذلك لدينا بضع لحلقات هنا، ونحن فقط لرؤية مقارنة 680 00:36:13,000 --> 00:36:18,000 هل لدينا مباراة في جميع الصفوف، مباراة في عمود أو أي شيء من هذا القبيل. 681 00:36:18,000 --> 00:36:21,000 لتشغيل هذا التطبيق في الواقع، إذا كنت اضغط على أحد هذه الأزرار 682 00:36:21,000 --> 00:36:24,000 وقد أطلقت هذه الطريقة المسرحية، وهذا يعني أنني مجرد مجموعة 683 00:36:24,000 --> 00:36:31,000 على الزر ليكون X، وحتى الآن وسوف يكون هذا الزر O، وهلم جرا، 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 وكان ومثيرة كما تيك تاك تو، والكثير من التطبيقات داخل دائرة الرقابة الداخلية 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 إذا كان نوع الإرجاع هي باطلة، أطلقت عليها فو. 694 00:37:05,000 --> 00:37:07,000 فإنه يأخذ بدون وسائط. لدي طريقة أخرى. 695 00:37:07,000 --> 00:37:11,000 تقوم بإرجاع عدد صحيح. دعوت عليه بار، ويستغرق وسيطة واحدة. 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 وقال أنا لم داخل هذا البروتوكول ما يفعل فو. 699 00:37:22,000 --> 00:37:26,000 بدلا من ذلك، أنا فقط أقول لك يمكن تحديد فو إذا كنت تريد. 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 من وجهة النظر هذه الطبقة تحكم سيكون لي تعريفات لكلا فو وبار. 705 00:37:50,000 --> 00:37:52,000 >> لماذا هو أن فائدة؟ 706 00:37:52,000 --> 00:37:55,000 وهناك الكثير من مكونات داخل دائرة الرقابة الداخلية الاستفادة من هذا 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 >> إذا جئت هنا في الملف. م بلدي، نفذت I أسلوب واحد من هذا القبيل. 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 I توصيل مندوب، وكلما أطلقت هذا الحدث 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 من وحدة تحكم عرض I اسحب فوق إلى مربع النص. 756 00:40:42,000 --> 00:40:46,000 اسمحوا لي ان اذهب، وأستطيع أن أرى هنا أنني يمكن أن تجعل هذا المجال نص الخاصية 757 00:40:46,000 --> 00:40:49,000 منذ أكثر من هنا في وحدة تحكم عرض تعريف I لقد خاصية 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 إلى حقل النص في واجهة المستخدم الخاصة بي. 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 مكونات مختلفة دائرة الرقابة الداخلية تسجيل الأحداث بطرق مختلفة. 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 في صلب دائرة الرقابة الداخلية بالنسبة لك، 774 00:41:41,000 --> 00:41:46,000 ذلك على سبيل المثال، والطريقة التي يتم لي أن أقول في أسفل اليمين 775 00:41:46,000 --> 00:41:48,000 يتم تحديد هذا المجال I النص. 776 00:41:48,000 --> 00:41:50,000 جئت إلى هنا. 777 00:41:50,000 --> 00:41:53,000 I تمريره أسفل قليلا ليعود الرئيسية، 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 >> استكشاف بالتأكيد كل هذه الخيارات المختلفة في دائرة الرقابة الداخلية. 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 طريقة عرض جدول هو في الأساس أن قائمة العناصر التي هي في كل مكان في دائرة الرقابة الداخلية. 788 00:42:26,000 --> 00:42:29,000 عندما كنت التقليب من خلال جميع جهات الاتصال الخاصة بك، كنت تبحث في 789 00:42:29,000 --> 00:42:34,000 ويطلق على الصفحة تحديد، وهذا النوع من الأشياء من قائمة طريقة عرض جدول. 790 00:42:34,000 --> 00:42:37,000 تنفيذ طريقة عرض جدول في دائرة الرقابة الداخلية هو بسيط جدا. 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 عندما كنت التقليب من خلال التطبيق جهات الاتصال الخاصة بك ستلاحظ أنه نوع من 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 دعا tableView: numberOfSectionsInTableView. 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 والسؤال الثاني الذي يحتاج إلى معرفة دائرة الرقابة الداخلية هو عدد الصفوف التي لديك؟ 808 00:43:33,000 --> 00:43:36,000 على سبيل المثال، كنت التقليب من خلال طريقة عرض جدول. 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 وهكذا هذه هي الطريقة دائرة الرقابة الداخلية يدري كم من الخلايا لعرضه. 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 وأخيرا، دائرة الرقابة الداخلية يحتاج إلى معرفة ما يشبه كل خلية، 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 >> الهدف هو في الواقع-C معروف جدا لطول المضحكة من أسماء طريقتهم، 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 مجرد شيء دائرة الرقابة الداخلية. 829 00:44:39,000 --> 00:44:41,000 إذا كان لديك شيء من هذا القبيل 100،000 الأغاني على أجهزة أي بود الخاص بك 830 00:44:41,000 --> 00:44:45,000 ما دائرة الرقابة الداخلية لا تريد القيام به هو تخصيص 100،000 الخلايا، 831 00:44:45,000 --> 00:44:48,000 لأنه إذا كنت في أعلى القائمة الخاصة بك، هل حقا بحاجة الى تخصيص الذاكرة 832 00:44:48,000 --> 00:44:51,000 للخلية وهذا 99000 الصفوف أسفل؟ 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 لسيد التفاصيل التطبيق، وذلك أساسا هذا يتوافق مع التطبيق الإلكتروني 853 00:45:57,000 --> 00:46:01,000 على الآي باد مع طريقة عرض جدول على اليسار ومن ثم محتويات على اليمين. 854 00:46:01,000 --> 00:46:07,000 على أجهزة أي بود، أو فون هذا هو الذهاب الى تتوافق مع طريقة عرض جدول واحد. 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 التي يمكن إدراج I الفاكهة. 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 الحرف الأول، إنشاء مجموعة بلدي الفاكهة، 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 عندما خلق هذا التطبيق تم بالفعل كل هذا بالنسبة لي. 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 أريد أن تعيين النص من الخلية باستخدام هذه الخاصية textLabel 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 >> مرة أخرى، هذا شيء تقوم به دائرة الرقابة الداخلية بالنسبة لي. 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 دعونا نبني قليلا أكثر تعقيدا من التطبيق، 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 انه سيكون أيضا لمساعدتنا ربط التطبيق معا بأكمله، 922 00:49:38,000 --> 00:49:42,000 وبالتالي فإن التطبيق النهائي سنكون المبنى هذا لطيف أخبار الرياضة القارئ، 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 ويمكنني تصغير وانظر بلدي التطبيق من مستوى عال. 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  الشاشة الأولى والشاشة الثانية. 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 من شاشة إلى أخرى دائرة الرقابة الداخلية هو لطيف بما يكفي لاستدعاء هذا الأسلوب 949 00:51:08,000 --> 00:51:11,000 دعا prepareForSegue، وهذا هو المكان الذي يمكن أن تبدأ 950 00:51:11,000 --> 00:51:14,000 إرسال البيانات من التطبيق إلى آخر. 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 >> وأخيرا، مجرد نقطة عشوائية على دائرة الرقابة الداخلية. 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 ولكن دائرة الرقابة الداخلية كما يدعم هذه الأشياء حقا بارد يسمى قوائم الممتلكات، 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 I تعريف هذا داخل بصريا من بناء واجهة. 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 يجب أن يكون إما أول واحد، والدوري للمرة الأولى، الدوري الثاني، وهلم جرا. 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، مرة أخرى، سوف يتم إعادة استخدامها 1022 00:55:14,000 --> 00:55:17,000 لكل من علاقات مختلفة، بحيث يعني أنني بحاجة إلى وسيلة 1023 00:55:17,000 --> 00:55:21,000 تحديد إذا قمت بالضغط على الزر الأول أو تضغط على الزر الثاني. 1024 00:55:21,000 --> 00:55:25,000 >> أتذكر عندما أعطى أن يواصل. اسم، وهذا showDivisions، 1025 00:55:25,000 --> 00:55:29,000 هذه هي الطريقة وأنا أعلم الآن أن هذا هو يواصل. أن تم تفعيل. 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، وهذا هو ملك لليواصل.. 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 هناك هو أن الانقسامات الممتلكات، وهذا ما أنا ملء أساسا، 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 هذا هو مجرد شيء الهدف-C. 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 من الملفات لدينا ج. 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 I فوق هذا وأكثر واحد، 1072 00:58:12,000 --> 00:58:15,000 والآن هو هنا UIWebView بلدي، فقط حتى من هذا القبيل 1073 00:58:15,000 --> 00:58:19,000 وهنا موقع لأنني جزءا لا يتجزأ من URL فقط، 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 تماما مجانا لأنهم تعريف هذه العلاقات باستخدام I 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 والحرف الأول لم يكن لديك لاطلاق سراحه. 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 لديهم الكثير من تطبيقات نموذج ومثال الأعراف 1095 00:59:27,000 --> 00:59:34,000 واجهات برمجة التطبيقات المختلفة، وذلك بالتأكيد اطلاع تلك إذا كنت تستطيع. 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 محددات مواقع المعلومات هائلة، لذلك كنت تقصير فيها. 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 وهذا هو في الأساس مناقشة بعض مكونات واجهة مستخدم، 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 حسنا، بالتأكيد يشعر حرة إلى we're ستكون لدينا علامات خاصة على مناقشتها. 1113 01:00:27,000 --> 01:00:30,000 سيتعين علينا أن ننتظر لدائرة الرقابة الداخلية واحدة، بحيث يشعر بالتأكيد مجانا للاستفادة من ذلك. 1114 01:00:30,000 --> 01:00:34,000 إذا كنت ترغب في العمل مع زملائك في مشاريع 1115 01:00:34,000 --> 01:00:37,000 أو مساعدة معرفة بعض الاشياء عشوائي دائرة الرقابة الداخلية 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 التفاصيل الدقيقة الحبيبات من الأشياء. 1119 01:00:45,000 --> 01:00:47,000 ولكن إذا لم يكن كذلك، ثم حظا سعيدا في مشاريع دائرة الرقابة الداخلية الخاصة بك، وآمل أن يكون 1120 01:00:47,000 --> 01:00:53,000 تدفق كبير من التطبيقات في المتجر. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]