1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU LIU: مهلا، كيف ل هو يذهب الجميع؟ 3 00:00:13,590 --> 00:00:20,250 وهذا هو التطبيق دائرة الرقابة الداخلية برمجة موضوعية ج الندوة. 4 00:00:20,250 --> 00:00:21,520 واسمي تيانيو ليو. 5 00:00:21,520 --> 00:00:26,114 أنا الابن لويل في الوقت الراهن، التركيز في علوم الكمبيوتر. 6 00:00:26,114 --> 00:00:28,030 حتى في هذه الندوة أنا الذهاب ليعلمك الرجال 7 00:00:28,030 --> 00:00:30,770 قليلا عن كيفية جعل التطبيق. 8 00:00:30,770 --> 00:00:33,030 ياي، والحصول على متحمس لذلك. 9 00:00:33,030 --> 00:00:36,790 >> حتى قبل أن تبدأ حتى الغوص في الجانب البرمجة الفعلية، 10 00:00:36,790 --> 00:00:41,840 دعونا فقط حقا بسرعة الحديث عن لماذا قد ترغب في بناء تطبيق iOS؟ 11 00:00:41,840 --> 00:00:43,940 لماذا دائرة الرقابة الداخلية رهيبة جدا؟ 12 00:00:43,940 --> 00:00:47,250 وبالتالي فإن مشكلة الأولى، أول الشيء الذي هو رائع جدا بالنسبة لنا، 13 00:00:47,250 --> 00:00:51,190 خاصة أن CS50 طالب، هو أن دائرة الرقابة الداخلية 14 00:00:51,190 --> 00:00:55,860 يستخدم الهدف C. حسنا، هناك لغة جديدة تسمى سويفت، 15 00:00:55,860 --> 00:00:58,260 لكننا لن استخدام ذلك في هذه الندوة. 16 00:00:58,260 --> 00:01:01,540 إذا كنت مهتما في سويفت، هناك هو ندوة مستقلة عن ذلك. 17 00:01:01,540 --> 00:01:05,590 ولكن الهدف C هو في الأساس مجموعة شاملة من C. معنى 18 00:01:05,590 --> 00:01:10,230 أن كل شيء تستخدمها في C يمكن أن تترجم إلى الهدف C 19 00:01:10,230 --> 00:01:11,630 بسهولة جدا. 20 00:01:11,630 --> 00:01:15,730 >> كما قد نرى لاحقا، أن الواقع هناك بعض الجملة الأساسية جدا، هي 21 00:01:15,730 --> 00:01:19,790 في الأساس نفسه تماما، C والهدف C. لذا، 22 00:01:19,790 --> 00:01:22,860 منذ كنت قد اتخذت CS50 يصل إلى هذا الحد، وكنت بالفعل 23 00:01:22,860 --> 00:01:26,500 تعرف الهدف C، 40٪ على الأقل. 24 00:01:26,500 --> 00:01:30,720 أيضا، أبل لديها حقا API قوي لدائرة الرقابة الداخلية. 25 00:01:30,720 --> 00:01:33,750 هناك الكثير من الجنون حقا الأشياء التي يمكنك القيام به. 26 00:01:33,750 --> 00:01:36,760 واحد منها هو شخص خلقت في الواقع التطبيق دائرة الرقابة الداخلية 27 00:01:36,760 --> 00:01:40,600 للسيطرة على السيارات، والتي من المثير للاهتمام جدا. 28 00:01:40,600 --> 00:01:42,610 ربما طائرة هليكوبتر هي أكثر إثارة. 29 00:01:42,610 --> 00:01:47,020 ولكن هذه هي الطريقة قوية يمكن أن يكون API دائرة الرقابة الداخلية. 30 00:01:47,020 --> 00:01:49,340 >> وكما قد تكون لديكم أحسب الآن، 31 00:01:49,340 --> 00:01:53,000 الفائض المكدس هو على الارجح واحدة من الموارد على الانترنت أهم 32 00:01:53,000 --> 00:01:54,250 المتاحة لك. 33 00:01:54,250 --> 00:01:58,090 والخبر السار، على كل مشكلة واحدة يمكنك ربما 34 00:01:58,090 --> 00:02:01,840 التفكير في حين أن بناء الخاصة بك المشروع النهائي في الهدف C، 35 00:02:01,840 --> 00:02:05,910 ومن المرجح هناك إجابة كومة تجاوز. 36 00:02:05,910 --> 00:02:07,420 انها مجرد رهيبة. 37 00:02:07,420 --> 00:02:12,780 بالإضافة إلى ذلك، دائرة الرقابة الداخلية هو حقا منصة 38 00:02:12,780 --> 00:02:16,260 حيث يمكنك الوصول ضخمة الجمهور مع القليل من الجهد. 39 00:02:16,260 --> 00:02:20,170 انها ليست مثل الروبوت، حيث كل شيء على ما مجزأة جدا. 40 00:02:20,170 --> 00:02:22,540 >> كل شيء دائرة الرقابة الداخلية غير موحدة. 41 00:02:22,540 --> 00:02:25,920 وطالما أنك خلق التطبيق لاي فون، 42 00:02:25,920 --> 00:02:31,260 يمكنك بسهولة جدا المنفذ الذي لباد، آي باد ميني، أو أحجام مختلفة فون. 43 00:02:31,260 --> 00:02:33,050 وهذه كلها مريحة حقا. 44 00:02:33,050 --> 00:02:36,430 وانها مجرد جيدة حقا لإقناع أصدقائك. 45 00:02:36,430 --> 00:02:38,920 يمكنك مجرد عقد اي فون وتخبر صديقك مهلا، 46 00:02:38,920 --> 00:02:40,250 هذا هو التطبيق أجعل. 47 00:02:40,250 --> 00:02:43,860 يمكنك أن تفعل ذلك لأي تطبيقات سطح المكتب، التي هي لطيفة. 48 00:02:43,860 --> 00:02:48,870 >> كل الحق، الآن دعونا الحصول على الواقع إلى اللغة الهدف C. 49 00:02:48,870 --> 00:02:52,910 فلماذا لا نبدأ مع بعض الجملة الأساسية حقا. 50 00:02:52,910 --> 00:02:57,410 كما ذكرت من قبل الهدف C انها في الاساس مجموعة شاملة من C. 51 00:02:57,410 --> 00:03:01,860 لذلك الكثير من تركيب الأساسية هي في الواقع بالضبط نفس الشيء. 52 00:03:01,860 --> 00:03:06,150 إعلان متغير و اضافة الى اثنين من المتغيرات معا 53 00:03:06,150 --> 00:03:09,440 هو بالضبط كما فعلنا في ماريو. 54 00:03:09,440 --> 00:03:11,140 لا جديد هنا. 55 00:03:11,140 --> 00:03:17,370 >> وبالمثل، فإن مستأجر للحلقة والشرط هو أيضا نفس الشيء. 56 00:03:17,370 --> 00:03:22,370 يمكنك أن تفعل لحلقة تماما كما كنت وقد فعل في ماريو [غير مسموع]. 57 00:03:22,370 --> 00:03:26,280 ويمكنك أن تفعل الشروط تماما كما ما كنت 58 00:03:26,280 --> 00:03:29,240 وقد تم القيام في مجموعات بك ص السابقة. 59 00:03:29,240 --> 00:03:33,400 ومع ذلك، الهدف C ليس تماما C، 60 00:03:33,400 --> 00:03:36,640 وهناك شيء ما هو نوع من غريب حول هذا الموضوع. 61 00:03:36,640 --> 00:03:42,340 >> أولاهما أنه عندما كنت القيام البرمجة C، يمكنك استدعاء عادة 62 00:03:42,340 --> 00:03:46,310 تشمل وبعد ذلك اسم المكتبة. 63 00:03:46,310 --> 00:03:49,860 ولكن في الهدف C استدعاء أن الاستيراد. 64 00:03:49,860 --> 00:03:53,100 في الأساس قائلا ظائف، أسماء مختلفة تماما. 65 00:03:53,100 --> 00:03:55,940 وسلاسل هي في الواقع قليلا غريب. 66 00:03:55,940 --> 00:03:58,250 يمكنك أن ترى أن أول الشيء الذي هو نوع من غريب 67 00:03:58,250 --> 00:04:04,190 غير أن لديك weird-- جدا sorry-- لديك NS غريبة جدا 68 00:04:04,190 --> 00:04:04,960 توقيع أكثر من هنا. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 والشيء الثاني هذا النوع من غريب 71 00:04:09,160 --> 00:04:14,090 وكان لديك علامة قبل معلنا في الواقع السلسلة. 72 00:04:14,090 --> 00:04:19,209 لذلك في إشارة تعني في الأساس أن سلسلة ليست سوى سلسلة، 73 00:04:19,209 --> 00:04:20,880 هو في الواقع كائن. 74 00:04:20,880 --> 00:04:22,780 ونحن في طريقنا لشرح في وقت لاحق حتى لا 75 00:04:22,780 --> 00:04:25,800 الذعر إذا لم تفعل ذلك فهم ما يعنيه ذلك. 76 00:04:25,800 --> 00:04:29,980 والطباعة إلى وحدة التحكم هو قليلا يختلف لأنه في C نسميه printf، 77 00:04:29,980 --> 00:04:33,350 ولكن في الهدف C نسميه (غير مسموع). 78 00:04:33,350 --> 00:04:35,640 >> هل يمكن أن يتساءل ما هو هذا. 79 00:04:35,640 --> 00:04:38,070 وهذا هو الأساس printf، مجرد لغة مختلفة. 80 00:04:38,070 --> 00:04:41,370 بالضبط نفس الاستخدام، بالضبط نفس الوظيفة. 81 00:04:41,370 --> 00:04:44,060 كذلك اتضح أن موضوعي C الواقع 82 00:04:44,060 --> 00:04:50,040 لديه نانوثانية البادئة في تقريبا كل شيء، كل نوع البيانات الأساسية، 83 00:04:50,040 --> 00:04:52,690 nsstring، nsarray، nsdictionary. 84 00:04:52,690 --> 00:04:56,340 والسبب هو أن نانوثانية تقف فعلا للخطوة التالية، 85 00:04:56,340 --> 00:04:59,980 وهي الشركة التي ستيف جوبز قد تأسست، 86 00:04:59,980 --> 00:05:03,960 والتي هي شركة حيث ولدت اللغة الهدف C. 87 00:05:03,960 --> 00:05:06,140 لذلك هذا هو أساسا التقليد. 88 00:05:06,140 --> 00:05:09,010 وأنا أعلم أنه قليلا غريب، لكنه أبل. 89 00:05:09,010 --> 00:05:16,840 >> لذلك ما هو حتى أغرب من ذلك هو إعلان وظيفة. 90 00:05:16,840 --> 00:05:22,600 هذا يختلف جدا عما نحن نرى في C، لأنه هنا فعلا 91 00:05:22,600 --> 00:05:25,190 لا تبدو C بعد الآن. 92 00:05:25,190 --> 00:05:28,810 ما لديك here-- من قبل الطريقة هذه ليست النقطة، 93 00:05:28,810 --> 00:05:30,690 هذا هو علامة ناقص. 94 00:05:30,690 --> 00:05:36,440 لديك قوسين علامة الطرح الفراغ ثم اسم الدالة. 95 00:05:36,440 --> 00:05:38,450 دعنا نقول فقط إذا كنا يكون مرحبا العالم، ثم 96 00:05:38,450 --> 00:05:42,820 ان نوع العودة تكون باطلة لنعود شيئا. 97 00:05:42,820 --> 00:05:44,680 >> ما يحصل غريب حقا هو أنه عندما كنت 98 00:05:44,680 --> 00:05:49,580 وجود أكثر من معلمة يمر في وظيفة نفسها التي 99 00:05:49,580 --> 00:05:53,870 سيكون غريب حقا كما هو موضح هنا. 100 00:05:53,870 --> 00:05:58,230 لدينا اسم الأسلوب، دعا addInt ل[غير مسموع] 101 00:05:58,230 --> 00:06:00,370 ونحن تمرير معلمة واحدة. 102 00:06:00,370 --> 00:06:05,170 ولكن بعد ذلك، لدينا المزيد من اسم استدعاء الأسلوب مع. 103 00:06:05,170 --> 00:06:08,500 وبعد مع اننا يمر المعلمة الثانية. 104 00:06:08,500 --> 00:06:11,940 هذا هو في الواقع غريب قليلا، ولكن كل هذه التصريحات وظيفة 105 00:06:11,940 --> 00:06:14,770 اتبع نفس نمط هذا. 106 00:06:14,770 --> 00:06:17,450 >> لدينا علامة ناقص لتبدأ. 107 00:06:17,450 --> 00:06:21,550 علامة الطرح يمكن أن يكون علامة الجمع تستند أحيانا على أي نوع من طريقة 108 00:06:21,550 --> 00:06:22,340 هو عليه. 109 00:06:22,340 --> 00:06:25,000 الطريقة هي الأساس اسم آخر للوظيفة. 110 00:06:25,000 --> 00:06:26,760 ونحن في طريقنا ل شرح ذلك لاحقا عندما 111 00:06:26,760 --> 00:06:30,580 نحن نتحدث عن كائن البرمجة الموجهة. 112 00:06:30,580 --> 00:06:34,300 عليك أولا تحديد عودة اكتب بين قوسين في الداخل، 113 00:06:34,300 --> 00:06:37,450 وبعد ذلك يأتي اسم الأسلوب. 114 00:06:37,450 --> 00:06:40,310 كنت تمرير معلمة واحدة. 115 00:06:40,310 --> 00:06:44,750 وإذا كان لديك أكثر من المعلمات كنت بحاجة لتمديد اسم الأسلوب 116 00:06:44,750 --> 00:06:46,770 وأساسا أكتب شيئا أكثر هنا. 117 00:06:46,770 --> 00:06:48,090 >> يمكن أن يكون أي شيء تريده. 118 00:06:48,090 --> 00:06:50,140 في حالتنا انها مع. 119 00:06:50,140 --> 00:06:56,160 ولكن هل يمكن القول النهاية، أو، أو، أو اي بي سي شريط كامل، كل ما تريد. 120 00:06:56,160 --> 00:06:59,500 ثم بعد ذلك كنت يمر المعلمة ب. 121 00:06:59,500 --> 00:07:01,750 هذا هو غريب حقا اتفاقية لكننا 122 00:07:01,750 --> 00:07:05,800 سنرى ماذا يريد أبل للقيام بذلك بسرعة كبيرة. 123 00:07:05,800 --> 00:07:10,530 فكيف تسمون وظيفة؟ 124 00:07:10,530 --> 00:07:15,520 استدعاء دالة في الهدف C يختلف أيضا عن C. 125 00:07:15,520 --> 00:07:18,170 >> في الواقع، داعيا ل وظيفة في الهدف C 126 00:07:18,170 --> 00:07:21,030 هو أشبه كنت تتحدث إلى شخص ما. 127 00:07:21,030 --> 00:07:27,030 هنا لدينا المصير، الذي ويسمى كائن. 128 00:07:27,030 --> 00:07:33,830 كنت في الأساس نقول لل الاعتراض النفس لتقول "مرحبا العالم!" 129 00:07:33,830 --> 00:07:36,830 هذه هي الطريقة لاستدعاء الدالة. 130 00:07:36,830 --> 00:07:41,690 كائن واسم الأسلوب جنبا إلى جنب مع بعضها البعض. 131 00:07:41,690 --> 00:07:49,600 وهذا هو المكان تمديد غريب لاسم الأسلوب يأتي حقا في اللعب. 132 00:07:49,600 --> 00:07:52,150 >> دعونا ننظر في المثال الثاني. 133 00:07:52,150 --> 00:07:56,780 نحن فقط تعريف طريقة تسمى addInt مع بلاه بلاه بلاه. 134 00:07:56,780 --> 00:08:00,066 حتى في هذه الحالة عندما كنت تتصل أن [معين؟ الرسالة؟] انه سيكون 135 00:08:00,066 --> 00:08:02,035 لتبدو وكأنها addInt الذاتي: 10 مع: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 هذا يبدو وكأنه الإنجليزية. 138 00:08:08,070 --> 00:08:11,980 على الرغم من أن وظيفة وظيفة إعلان غريب، 139 00:08:11,980 --> 00:08:15,600 نقطة في C الهدف طريقة نمط الإعلان، 140 00:08:15,600 --> 00:08:18,830 هو أنه عندما كنت تتصل وظيفة أو طريقة 141 00:08:18,830 --> 00:08:21,980 وسوف تبدو مثل اللغة الإنجليزية الفعلية. 142 00:08:21,980 --> 00:08:25,270 لذلك فمن البديهي جدا تحصل مرة واحدة في ذلك. 143 00:08:25,270 --> 00:08:28,740 >> خاصة في هذه الحالة، حيث يمكنك الأساس 144 00:08:28,740 --> 00:08:33,010 نرى أن اسم الدالة هو نوع من توثيق نفسها. 145 00:08:33,010 --> 00:08:35,390 أنت لا تحتاج إلى أي مزيد من التوضيح لمعرفة 146 00:08:35,390 --> 00:08:42,770 بالضبط ما يحدث، ما بالضبط معلمة واحدة تفعل. 147 00:08:42,770 --> 00:08:48,470 الذهاب أبعد من ذلك، دعونا نتحدث قليلا الشيء عن وجوه المنحى البرمجة. 148 00:08:48,470 --> 00:08:52,160 البرمجة الموجهة الكائن هو واحدة من البرمجة الأساسية 149 00:08:52,160 --> 00:08:57,110 تقنيات أو الأنماط التي هي التي يستخدمها الهدف C. الهدف C 150 00:08:57,110 --> 00:09:03,110 ويسمى الهدف C، وليس C، لسبب وجيه حقا. 151 00:09:03,110 --> 00:09:07,560 >> حتى قبل أن نصل إلى C تركيب موضوعي، 152 00:09:07,560 --> 00:09:11,670 دعونا ننظر حقا بسرعة في بالضبط ما هو كائن. 153 00:09:11,670 --> 00:09:15,480 ربما فعلناه شيء مثل الكائن قبل، والتي 154 00:09:15,480 --> 00:09:19,780 ويسمى البنية عندما كنت تنفيذ شجرة أو قائمة مرتبطة 155 00:09:19,780 --> 00:09:25,730 أو [؟ محاولة. ؟] لذا، فإنه من في الأساس مثل البنية، 156 00:09:25,730 --> 00:09:28,560 ولكن من أقوى بكثير من ذلك. 157 00:09:28,560 --> 00:09:33,150 كائن له خصائص وأساليب. 158 00:09:33,150 --> 00:09:35,310 طرق هي في الأساس الوظائف. 159 00:09:35,310 --> 00:09:39,480 يعمل أساسا أن محددة لكائن معين. 160 00:09:39,480 --> 00:09:45,440 >> والخصائص هي الأساس الحقل الذي يحدد في البنية. 161 00:09:45,440 --> 00:09:48,500 لذلك على كل كائن واحد لدينا بعض الممتلكات 162 00:09:48,500 --> 00:09:53,160 أن لديه بعض المتغيرات التي هي محددة لالكائن. 163 00:09:53,160 --> 00:09:57,170 ولدينا بعض الوظائف التي هي أيضا محددة إلى الكائن. 164 00:09:57,170 --> 00:10:01,180 وتسمى وظائف الطرق وتسمى المتغيرات خصائص. 165 00:10:01,180 --> 00:10:03,190 انها مجرد اسم نزوة. 166 00:10:03,190 --> 00:10:10,440 بينما كنت الواقع، كل عرض واحد تشاهد أثناء فتح التطبيق دائرة الرقابة الداخلية، 167 00:10:10,440 --> 00:10:17,720 دعنا نقول فقط تويتر أو الفيسبوك، كل عرض واحد تراه هو كائن. 168 00:10:17,720 --> 00:10:22,110 وحتى التطبيق كله كائن لتبدأ. 169 00:10:22,110 --> 00:10:25,340 مفهوم مثير للاهتمام للغاية. 170 00:10:25,340 --> 00:10:28,480 >> وماذا نريد وجوه البرمجة الموجهة؟ 171 00:10:28,480 --> 00:10:33,530 لذلك يمكنك أن تتخيل أنه عند برنامج يحصل معقدة جدا. 172 00:10:33,530 --> 00:10:36,400 دعنا نقول فقط عندما كنت تنفيذ رقعة الشطرنج، 173 00:10:36,400 --> 00:10:40,020 المنطق هو الذهاب الى يكون معقدا حقا. 174 00:10:40,020 --> 00:10:43,280 لديك 36 مختلفة قطعة، بحيث إذا كان ل 175 00:10:43,280 --> 00:10:48,370 تريد أن تكتب المنطق للجميع 36 قطعة مختلفة في لعبة الشطرنج، 176 00:10:48,370 --> 00:10:52,150 وهذا ما سوف يكون هناك الكثير من وظائف والمتغيرات المختلفة. 177 00:10:52,150 --> 00:10:54,070 انها الكثير من المتاعب. 178 00:10:54,070 --> 00:10:58,980 وربما كنت تريد الذهاب لإرسال بريد طريقة مختلفة أو وظيفة مختلفة 179 00:10:58,980 --> 00:11:03,950 لكل من قطعة ل التحكم تماما ما يفعلونه. 180 00:11:03,950 --> 00:11:08,830 >> ولكن إذا كنت تفعل وجوه المنحى البرمجة، كل من هذه القطع 181 00:11:08,830 --> 00:11:12,440 يمكن أن تستخرج في كائن واحد واحد. 182 00:11:12,440 --> 00:11:16,111 وسيكون موضوع بعض القواسم المشتركة خصائص، مثل أي نوع من قطعة 183 00:11:16,111 --> 00:11:16,610 هو؟ 184 00:11:16,610 --> 00:11:17,740 ما لون هو؟ 185 00:11:17,740 --> 00:11:19,480 كيف يمكن أن تتحرك؟ 186 00:11:19,480 --> 00:11:24,660 وبهذه الطريقة يكون لديك بشكل كبير تبسيط المنطق منه. 187 00:11:24,660 --> 00:11:28,480 حتى انها مجرد وسيلة جيدة حقا لجعل برامج معقدة، 188 00:11:28,480 --> 00:11:33,700 وعلاقة هرمية ضمن البرنامج، في غاية البساطة. 189 00:11:33,700 --> 00:11:36,800 ونحن ذاهبون لرؤية لماذا بسرعة كبيرة عندما 190 00:11:36,800 --> 00:11:39,660 نقوم به في الواقع programming-- عندما نكون في الواقع 191 00:11:39,660 --> 00:11:42,830 القيام رمز S جلسة البرمجة في وقت لاحق. 192 00:11:42,830 --> 00:11:48,120 >> حسنا بالإضافة إلى ذلك، البرمجة الموجهة الكائن 193 00:11:48,120 --> 00:11:50,030 هو مجرد الكثير من المرح. 194 00:11:50,030 --> 00:11:51,990 كنت حصلت على تصميم الكائن الخاص بك. 195 00:11:51,990 --> 00:11:56,080 كنت حصلت على تصميم ما يفعل تبدو وكأنها من قبل نفسك. 196 00:11:56,080 --> 00:11:58,250 لا توجد إجابة الصحيحة لذلك. 197 00:11:58,250 --> 00:12:02,940 وانها مثيرة للاهتمام تماما. 198 00:12:02,940 --> 00:12:07,270 حتى في وجوه المنحى البرمجة، مفهومين أساسيين 199 00:12:07,270 --> 00:12:10,130 ستكون الفئة و المثيل. 200 00:12:10,130 --> 00:12:13,570 وهناك فئة هي في الأساس قالب لكائن. 201 00:12:13,570 --> 00:12:18,070 ومثيل هو في الأساس كائن واحد محدد. 202 00:12:18,070 --> 00:12:21,090 >> دعنا نقول فقط كنت صنع الكعكة. 203 00:12:21,090 --> 00:12:24,800 في هذه الحالة، كل واحد الكوكي كنت فعلا في نهاية المطاف مع 204 00:12:24,800 --> 00:12:27,310 سيكون كائن. 205 00:12:27,310 --> 00:12:35,830 ولكن لوحة الكعكة التي تستخدمها لخبز سوف كافة ملفات تعريف الارتباط يكون فئة. 206 00:12:35,830 --> 00:12:37,880 وهناك فئة هي في الأساس قالب. 207 00:12:37,880 --> 00:12:46,170 والمثال ستكون محددة واحدة إنشاء أي كائن من تلك الفئة. 208 00:12:46,170 --> 00:12:49,970 >> وسيتم إنشاء مثيل بناء على تعريف فئة، 209 00:12:49,970 --> 00:12:56,760 كما سنرى في الشرائح في وقت لاحق. 210 00:12:56,760 --> 00:13:00,010 لذلك دعونا فعلا حقا مثال سريع (غير مسموع). 211 00:13:00,010 --> 00:13:04,280 دعونا نقول اننا إعلان كائن لقطة. 212 00:13:04,280 --> 00:13:07,930 الكائن يجب have-- الطبقة القط وينبغي أن 213 00:13:07,930 --> 00:13:11,260 لدينا بعض الخصائص والأساليب. 214 00:13:11,260 --> 00:13:17,300 أي نوع من خصائص ينبغي لل الطبقة have-- ينبغي أن يكون القط؟ 215 00:13:17,300 --> 00:13:20,580 >> على سبيل المثال، اللون، العمر والسلالة، وتلك 216 00:13:20,580 --> 00:13:24,440 سوف تكون المتغيرات التي خاصة بكل القط. 217 00:13:24,440 --> 00:13:27,790 وتلك هي بعض الأشياء التي نستخدمها لوصف القط. 218 00:13:27,790 --> 00:13:31,880 ما هو نوع من طريقة، أو ما يمكن أن القط تفعل؟ 219 00:13:31,880 --> 00:13:37,160 ان بعض الأمثلة السريعة يكون مطاردة الماوس، وتناول الأسماك أو مجرد مواء. 220 00:13:37,160 --> 00:13:40,900 هذا هو حقا سريعة مثال على الطبقة القط. 221 00:13:40,900 --> 00:13:46,920 وتحديدا حقا سوف الكائن القط يكون القط 222 00:13:46,920 --> 00:13:50,930 حيث أننا تحديد اللون، والعمر والسلالة. 223 00:13:50,930 --> 00:13:53,790 >> في هذه الحالة، وجوه لدينا هو لم تعد فئة بعد الآن. 224 00:13:53,790 --> 00:14:00,010 نحن نسخ القالب من الطبقة و نحدده نحن كل معلومات محددة 225 00:14:00,010 --> 00:14:04,510 إلى ذلك كائن معين لجعلها مستقلة. 226 00:14:04,510 --> 00:14:09,350 وعندما كنت تتصل طريقة داخل كائن، 227 00:14:09,350 --> 00:14:16,640 كنت مجرد دعوة مواء على الكائن، الذي هو القط الذي قمت بإنشائه. 228 00:14:16,640 --> 00:14:19,020 >> ربما كنت سوف طباعة شيء من هذا القبيل "مرحبا العالم! 229 00:14:19,020 --> 00:14:20,000 مواء. " 230 00:14:20,000 --> 00:14:22,110 لطيف جدا. 231 00:14:22,110 --> 00:14:24,500 كل الحق، دعونا فقط ندخل في بعض التفاصيل 232 00:14:24,500 --> 00:14:30,650 وانظر ما تفعله بالضبط ترجمة الى حيز الوجود البرمجة دائرة الرقابة الداخلية. 233 00:14:30,650 --> 00:14:36,500 حتى في دائرة الرقابة الداخلية برمجة كل واحد وسيتم تنفيذ فئة في ملفين. 234 00:14:36,500 --> 00:14:41,420 ملف واحد هو هنا، والتي ويسمى واجهة. 235 00:14:41,420 --> 00:14:45,300 ملف آخر هو هنا، والتي ويسمى التنفيذ. 236 00:14:45,300 --> 00:14:48,890 >> عادة واجهة سوف يكون extension.h 237 00:14:48,890 --> 00:14:51,740 كما رأينا في المكتبات C. 238 00:14:51,740 --> 00:14:56,340 وملف التنفيذ ستكون لدينا extension.n. 239 00:14:56,340 --> 00:14:57,260 انها نوع من غريب. 240 00:14:57,260 --> 00:15:01,270 ولكن .N يعني في الواقع .C، وليس هناك الفرق الأساسي بين تلك 241 00:15:01,270 --> 00:15:02,100 اثنين. 242 00:15:02,100 --> 00:15:06,650 حتى في هذه الحالة، يمكننا أن نرى أننا أعلن واجهة، القط: الكائن. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 الذي يسمى الميراث. 245 00:15:13,760 --> 00:15:19,170 نحن في الأساس وراثة الطبقة القط من فئة الكائن. 246 00:15:19,170 --> 00:15:24,790 لذلك كل الممتلكات والطريقة التي كان المحددة سابقا في فئة الكائن 247 00:15:24,790 --> 00:15:28,560 وسيتم تحديد تلقائيا في فئة القط أيضا. 248 00:15:28,560 --> 00:15:35,900 >> بالإضافة إلى ذلك، نحدد اللون، تولد، والعمر، وثلاثة متغيرات. 249 00:15:35,900 --> 00:15:39,360 التي تبدو فعلا مثل شيء كنت قد فعلت من قبل. 250 00:15:39,360 --> 00:15:41,770 يبدو البنية. 251 00:15:41,770 --> 00:15:44,950 وهذا هو الأساس في بناء الجملة للإعلان البنية، 252 00:15:44,950 --> 00:15:47,710 وهذا هو الصحيح تماما. 253 00:15:47,710 --> 00:15:51,825 ومنذ ذكرتها من قبل، الفرق البنية 254 00:15:51,825 --> 00:15:53,960 وكائن، واحدة من الاختلافات الجوهرية 255 00:15:53,960 --> 00:15:59,080 غير أن الجسم لديه طريقة، في حين أن البنية ديه المتغيرات فقط. 256 00:15:59,080 --> 00:16:03,450 وذلك بالإضافة إلى خصائص أو المتغيرات انشأنا لكائن، 257 00:16:03,450 --> 00:16:05,700 نحن تحديد بعض الأسلوب. 258 00:16:05,700 --> 00:16:09,720 >> دعنا نقول فقط لدينا هنا طريقتين، واحد هو مواء، 259 00:16:09,720 --> 00:16:12,460 آخر واحد هو مطاردة الفأر. 260 00:16:12,460 --> 00:16:18,600 أننا ربما تريد أن يمر المعلمة القائمة على أسلوبنا السابق 261 00:16:18,600 --> 00:16:20,440 نمط الإعلان. 262 00:16:20,440 --> 00:16:22,160 وربما كنت تريد أن تكون تمرير الماوس. 263 00:16:22,160 --> 00:16:25,180 وسوف تحتاج على الأرجح لإرجاع التبيين منطقي 264 00:16:25,180 --> 00:16:30,010 إذا القط لديه بنجاح القبض على الماوس أو لا. 265 00:16:30,010 --> 00:16:33,170 >> هذا هو واجهة، ولكن ما نستطيع أرى أن واجهة الواقع 266 00:16:33,170 --> 00:16:35,150 لا تفعل أي شيء. 267 00:16:35,150 --> 00:16:40,800 ويحكي مجرد برنامج ما exists-- ما هو موجود في فئة القط. 268 00:16:40,800 --> 00:16:43,640 وذلك من أجل ل برنامج لتفعل شيئا، 269 00:16:43,640 --> 00:16:46,680 نحن بحاجة إلى ملفات التنفيذ. 270 00:16:46,680 --> 00:16:51,940 حتى هنا، فإن أول شيء نقوم به هو من الواضح أننا نقوم باستيراد واجهة. 271 00:16:51,940 --> 00:16:56,470 بعد نستورد واجهة، نحدد الأسلوب. 272 00:16:56,470 --> 00:17:00,150 >> دعنا نقول فقط هنا مواء سوف طباعة للتو 273 00:17:00,150 --> 00:17:01,740 "مرحبا بالعالم!" إلى وحدة التحكم. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 وبعد تنفيذ ملف، سننتهي من ذلك بكثير جدا. 276 00:17:08,460 --> 00:17:14,530 هذا هو الأساس فئة إعلان عن فئة واحدة. 277 00:17:14,530 --> 00:17:19,970 وحتى الآن يصبح السؤال، كيف تقوم بتعريف متغير؟ 278 00:17:19,970 --> 00:17:26,880 طريقة استخدام فئة لخلق هو مكتوب الكائن في الهدف C هنا. 279 00:17:26,880 --> 00:17:30,730 >> عليك أولا تحديد أن هذا هو مؤشر القط، 280 00:17:30,730 --> 00:17:38,700 لأن كل كائن في الهدف C ويتم تنفيذ أخيرا كمؤشر. 281 00:17:38,700 --> 00:17:46,210 واستدعاء الطبقة، ودعوة لهم كما الوك، الذي هو في الأساس malloc، 282 00:17:46,210 --> 00:17:51,220 نقول للنظام التشغيل الذي تحتاج الى بعض مساحة الذاكرة لهذا الكائن. 283 00:17:51,220 --> 00:17:55,780 بعد أن لديك كائن بالفعل وكنت للتو تمهيدها. 284 00:17:55,780 --> 00:17:56,780 هذا هو اتفاقية عادلة. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 وأنا أعلم أنه هو غريب قليلا، ولكن هذا هو في الواقع كيف أبل يفعل الاشياء. 287 00:18:04,410 --> 00:18:07,130 >> تعيين خصائص و في الواقع بسيط جدا. 288 00:18:07,130 --> 00:18:09,250 انها تشبه الى حد بعيد ما تفعلونه عندما 289 00:18:09,250 --> 00:18:13,780 كنت تعيين بعض محددة المجال داخل البنية. 290 00:18:13,780 --> 00:18:16,830 لديك فقط المتغير اسم، اسم الخاصية، 291 00:18:16,830 --> 00:18:20,140 وتعيين قيمة محددة لذلك. 292 00:18:20,140 --> 00:18:24,120 واستدعاء أسلوب مشابه جدا. 293 00:18:24,120 --> 00:18:29,080 في استدعاء الأسلوب هو أساسا ما أتحدث عن 294 00:18:29,080 --> 00:18:32,390 لاستدعاء أي طريقة في الهدف C. 295 00:18:32,390 --> 00:18:36,660 >> كنت تمرير كائن، في هذه الحالة انها ستكون myCat، 296 00:18:36,660 --> 00:18:42,490 وكنت تمرير اسم الأسلوب. 297 00:18:42,490 --> 00:18:47,130 كما لو كنت تتحدث إلى الكائن، myCat، التي يجب أن مواء. 298 00:18:47,130 --> 00:18:48,570 من المثير للاهتمام جدا. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 بعد ذلك، هناك واحد نمط تصميم أكثر أساسي 301 00:18:55,680 --> 00:18:59,940 أننا في حاجة إلى الحديث عن قبل الحصول إلى رمز S الفعلي. 302 00:18:59,940 --> 00:19:03,300 ويسمى هذا النمط تصميم الحدث مدفوعة البرمجة. 303 00:19:03,300 --> 00:19:09,660 وهذا أيضا هو على الارجح واحدة من أكثر الأفكار الأساسية في البرمجة دائرة الرقابة الداخلية. 304 00:19:09,660 --> 00:19:14,410 >> لذلك ربما كنت لا أعرف بالضبط ما هي البرمجة الحدث مدفوعة، 305 00:19:14,410 --> 00:19:16,990 ولكنها ليست حقا أن مخيفة. 306 00:19:16,990 --> 00:19:20,400 حسنا في الواقع، لديك فعلت ذلك من قبل. 307 00:19:20,400 --> 00:19:24,894 هذا هو واحد من خطوط قمت ربما كتبت بالفعل في الماضي (غير مسموع) 308 00:19:24,894 --> 00:19:26,810 من CS50، google.maps.event.addListener (علامة، 309 00:19:26,810 --> 00:19:27,810 "فوق"، وظيفة () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 من خلال الدعوة هذا الخط كنت يقول أساسا الكمبيوتر 312 00:19:37,620 --> 00:19:42,650 انه كلما كان الحدث تسمى "فوق" يحدث على علامة، 313 00:19:42,650 --> 00:19:43,630 استخدام تلك الوظيفة. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> وهذا يختلف تماما عن ما تفعله في mario.c. 316 00:19:50,950 --> 00:19:56,670 في mario.c كنت مجرد تشغيل البرنامج مرة واحدة، وأنه يعطي لك الإخراج، 317 00:19:56,670 --> 00:19:58,590 وكنت أنت القيام به. 318 00:19:58,590 --> 00:20:02,590 وهذه هي نوع من مثل احد برامج رصاصة واحدة. 319 00:20:02,590 --> 00:20:05,830 الحدث مدفوعة برامج هم جدا، مختلفة جدا. 320 00:20:05,830 --> 00:20:10,230 دعونا نتصور، إذا الفيسبوك هو واحد برنامج النار انها ليست جيدة حقا. 321 00:20:10,230 --> 00:20:13,750 كنت مجرد الذهاب الى الفيسبوك مرة واحدة وانها فعلت. 322 00:20:13,750 --> 00:20:16,700 فهو يوفر لك بعض الانتاج وأبدا كنت حصلت عليه مرة أخرى. 323 00:20:16,700 --> 00:20:19,380 أنت لم يحصل على أي شيء أكثر من ذلك. 324 00:20:19,380 --> 00:20:23,880 >> حتى هنا، وخاصة النمط الذي نستعمله هو 325 00:20:23,880 --> 00:20:26,940 الحدث مدفوعة، بحيث كل وظيفة سوف 326 00:20:26,940 --> 00:20:31,480 يتم القبض على أساس ما حدث الحدث. 327 00:20:31,480 --> 00:20:34,670 على سبيل المثال، إذا كان لدينا زر ونحدده نحن 328 00:20:34,670 --> 00:20:39,870 أنه كلما يتم النقر على هذا الزر، استدعاء الدالة تسمى "مرحبا العالم!" 329 00:20:39,870 --> 00:20:47,810 وبهذه الطريقة نستطيع حقا إدارة وظيفة المنطق 330 00:20:47,810 --> 00:20:50,560 تدفق بطريقة مرنة للغاية. 331 00:20:50,560 --> 00:20:55,840 يمكن للمستخدم القيام به أو استدعاء وظيفة الذي سبق أن دعا. 332 00:20:55,840 --> 00:20:59,900 انها تستند تماما على ما يقوم به المستخدمين. 333 00:20:59,900 --> 00:21:04,080 >> حتى يمكننا أن نرى أن هذا هو في الواقع أفضل بكثير من mario.c. 334 00:21:04,080 --> 00:21:07,190 والخبر السار هو أنه في الواقع ليس مفهوما جديدا. 335 00:21:07,190 --> 00:21:12,140 يا رفاق فعلت أنه في المشكلة الأخيرة تعيين. 336 00:21:12,140 --> 00:21:16,640 حتى في الهدف C هناك ثلاثة مخططات مختلفة 337 00:21:16,640 --> 00:21:19,030 لهذا الحدث مدفوعة البرمجة. 338 00:21:19,030 --> 00:21:21,970 الرسم البياني الأول هو دعا العمل المستهدفة، 339 00:21:21,970 --> 00:21:26,990 حيث يمكنك ربط زر الصحافة مع بعض من وظيفة. 340 00:21:26,990 --> 00:21:31,590 دعنا نقول فقط، عند النقر فوق بعض زر، يمكنك استدعاء بعض من وظيفة. 341 00:21:31,590 --> 00:21:33,620 هذا هو العمل الهدف بسيط جدا. 342 00:21:33,620 --> 00:21:35,580 >> والثاني هو في الواقع أصعب واحدة، 343 00:21:35,580 --> 00:21:38,450 انه دعا الوفد على البروتوكول. 344 00:21:38,450 --> 00:21:41,800 ونحن في طريقنا لشرح أن بقدر كبير من التفصيل لاحقا. 345 00:21:41,800 --> 00:21:44,420 والطريقة الثالثة هي الاخطار. 346 00:21:44,420 --> 00:21:46,770 هذا هو في الواقع لا مهم جدا بقدر 347 00:21:46,770 --> 00:21:50,920 ونحن قلقون، لأن فرصة ان كنت تنوي استخدام الإخطار 348 00:21:50,920 --> 00:21:53,310 في المشروع النهائي الخاص بك منخفضة جدا. 349 00:21:53,310 --> 00:21:56,440 لذلك نحن ذاهبون لتخطي هذا الجزء. 350 00:21:56,440 --> 00:21:59,460 >> ونحن في طريقنا للغوص إلى الوفد على البروتوكول. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 ذلك بالضبط ما هو بروتوكول؟ 353 00:22:04,470 --> 00:22:06,450 أو ما هو بالضبط وفدا؟ 354 00:22:06,450 --> 00:22:09,670 دعونا نتحدث عن بروتوكول لتبدأ. 355 00:22:09,670 --> 00:22:13,360 البروتوكولات ليست سوى الأحداث. 356 00:22:13,360 --> 00:22:19,230 ولكن يتم إعطاء هذه الأحداث ل كنت من قبل شركة آبل لتبدأ. 357 00:22:19,230 --> 00:22:22,640 على سبيل المثال، وأنا لست تأكد تماما كم منكم 358 00:22:22,640 --> 00:22:27,930 الرجال استخدام الأصلي أبل التطبيق الإلكتروني أو الاتصال، 359 00:22:27,930 --> 00:22:32,180 ولكن في كل مرة كنت انتقل لل الجدول واضغط على خلية معينة 360 00:22:32,180 --> 00:22:36,130 على الطاولة، وهذا هو الحدث. 361 00:22:36,130 --> 00:22:38,330 >> وإذا كنت تريد أن تفعل هذا الحدث من قبل نفسك، 362 00:22:38,330 --> 00:22:40,410 انها في الواقع من الصعب قليلا. 363 00:22:40,410 --> 00:22:44,880 لذلك أعطت أبل أنه حتى لك بحيث يمكنك فقط استخدام مباشرة 364 00:22:44,880 --> 00:22:49,610 الحدث أن تفعل شيئا بنفسك. 365 00:22:49,610 --> 00:22:52,980 البروتوكولات هي في الواقع حقا، حقا تستخدم على نطاق واسع 366 00:22:52,980 --> 00:22:58,320 في الهدف C. حسنا في الواقع، كل واحد التطبيق 367 00:22:58,320 --> 00:23:00,870 لديه شيء اشتعلت التطبيق مندوب. 368 00:23:00,870 --> 00:23:06,330 داخل حساسة هو كل من بروتوكولات لتحميل التطبيق. 369 00:23:06,330 --> 00:23:12,470 >> دعنا نقول فقط هناك حدث عن التطبيق لم الحمولة. 370 00:23:12,470 --> 00:23:18,200 وذلك ما يجب أن يحدث بعد أن كنت قد خلقت التطبيق، بعد فتح التطبيق، 371 00:23:18,200 --> 00:23:22,630 بعد إغلاق التطبيق، أو بعد يمكنك وضع اي فون الى النوم. 372 00:23:22,630 --> 00:23:27,480 وهذه كلها الأحداث التي لديها بالفعل أعطيت لك. 373 00:23:27,480 --> 00:23:34,730 وأصلا داخل هذه الجسيمات لن يكون هناك تنفيذ. 374 00:23:34,730 --> 00:23:39,750 التفاح فقط قلت لك أن هذه الوظيفة سيحدث عندما يحدث بعض الأحداث، 375 00:23:39,750 --> 00:23:44,380 ولكن ما تفعله مع أن الوظيفة هي تماما متروك لكم. 376 00:23:44,380 --> 00:23:49,290 >> وفد هو في الأساس يقول الطبقة 377 00:23:49,290 --> 00:23:53,060 التي يجب التعامل مع هذه البروتوكولات. 378 00:23:53,060 --> 00:23:55,340 انها قليلا مربكة، ولكن سيكون من 379 00:23:55,340 --> 00:23:59,380 أكثر وضوحا عندما نفعل رموز الصورة في العمل. 380 00:23:59,380 --> 00:24:04,760 وفد على البروتوكول هو في الواقع آلية قوية للغاية بمعنى 381 00:24:04,760 --> 00:24:08,160 أنه إذا نقوم به الوفد لفئة معينة، 382 00:24:08,160 --> 00:24:12,400 يمكننا التعامل مع الأساس جميع أنواع الأحداث 383 00:24:12,400 --> 00:24:17,040 باستخدام أي فئة لدينا، أداة مريحة للغاية. 384 00:24:17,040 --> 00:24:21,530 >> حتى واحد مثال سريع ل وفد على بروتوكول 385 00:24:21,530 --> 00:24:24,120 سوف يكون ما أنا فقط تحدثت عنه. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 هذا البروتوكول على وجه التحديد ما يسمى tableview [غير مسموع] دور حدد 388 00:24:30,890 --> 00:24:35,480 في [؟ مؤشر؟] [؟ الماضي. ؟] لذلك هذا ل الحدث التي من شأنها أن تكون اشتعلت عند 389 00:24:35,480 --> 00:24:39,710 الاستفادة فعليا على محددة خلية في tableview الخاص بك، 390 00:24:39,710 --> 00:24:43,570 دعنا نقول فقط في البريد الخاص بك أو في جهات الاتصال الخاصة بك التطبيق. 391 00:24:43,570 --> 00:24:48,180 >> داخل دالة كان هناك لا تفعل شيئا أصلا. 392 00:24:48,180 --> 00:24:51,950 وظيفة لا فعل أي شيء افتراضيا. 393 00:24:51,950 --> 00:24:55,540 ولكن يمكنك تحديد ما تقوم به وظيفة، 394 00:24:55,540 --> 00:24:59,610 بالنظر إلى ما تريد من التطبيق الخاص بك. 395 00:24:59,610 --> 00:25:01,610 أداة مريحة للغاية. 396 00:25:01,610 --> 00:25:06,840 ومع كل ذلك يقال، وأنا أساسا 397 00:25:06,840 --> 00:25:11,430 تغطية بعض الجملة الأساسية جدا و المفهوم الأساسي للهدف C 398 00:25:11,430 --> 00:25:15,860 البرمجة، ونتمكن من القيام ببعض شفرة. 399 00:25:15,860 --> 00:25:17,980 أكثر من ذلك بكثير مثيرة. 400 00:25:17,980 --> 00:25:21,070 حتى شفرة هو في الواقع الساحقة قليلا 401 00:25:21,070 --> 00:25:23,330 عند فتحه للمرة الأولى. 402 00:25:23,330 --> 00:25:26,640 >> واحد ملاحظة سريعة، حتى إذا كنت تريد أن تفعل تطوير دائرة الرقابة الداخلية، 403 00:25:26,640 --> 00:25:29,630 أنا أوصي لديك ماك. 404 00:25:29,630 --> 00:25:33,930 لأن القيام تطوير دائرة الرقابة الداخلية على ويندوز هو حقا، من الصعب حقا. 405 00:25:33,930 --> 00:25:37,560 انها قابلة للتنفيذ، ولكن من الصعب حقا. 406 00:25:37,560 --> 00:25:40,610 وأنت تفعل بالتأكيد لا تريد استخدام ز تحرير. 407 00:25:40,610 --> 00:25:47,950 حتى في شفرة لدينا عدة مجالات مختلفة. 408 00:25:47,950 --> 00:25:53,050 عند فتح أولا شفرة سترى منطقة الملاحة، 409 00:25:53,050 --> 00:25:57,470 والذي يظهر أساسا لك كل الملفات التي هي في المشروع الحالي. 410 00:25:57,470 --> 00:26:03,590 >> لديك مساحة شريط الأدوات، التي يدير أساسا جهات النظر، 411 00:26:03,590 --> 00:26:08,570 أو سريعة بعض الشيء أدوات حول الصورة القانون نفسه. 412 00:26:08,570 --> 00:26:11,140 وهذا هو المجال محرر الفعلية. 413 00:26:11,140 --> 00:26:15,900 هذه المنطقة هي مشابهة جدا ز تحرير، ولكن أفضل بكثير من ز تحرير. 414 00:26:15,900 --> 00:26:21,150 وفي هذا المجال اليمنى، هو تسمى منطقة فائدة. 415 00:26:21,150 --> 00:26:27,170 تصبح منطقة سهل حقا عندما كنت تقوم بإنشاء واجهة أو تحديد 416 00:26:27,170 --> 00:26:30,070 بعض الاجهزة سريعة للتطبيق الخاص بك. 417 00:26:30,070 --> 00:26:34,570 >> والمجال الأخير هو التصحيح. 418 00:26:34,570 --> 00:26:37,970 تحتوي هذه المنطقة وحدة التحكم. 419 00:26:37,970 --> 00:26:43,170 لذلك كلما كنت أقول printf، أو nslog في حالتنا، 420 00:26:43,170 --> 00:26:47,330 جميع النتائج الخاصة بك الذهاب لتتم طباعتها هنا. 421 00:26:47,330 --> 00:26:48,260 حسنا؟ 422 00:26:48,260 --> 00:26:52,090 وأعتقد أننا يمكن حقا بسرعة مثال للبرمجة دائرة الرقابة الداخلية. 423 00:26:52,090 --> 00:26:54,220 ودعونا فعلا فتح كود تصل الصورة. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 وذلك في كل مرة يتم فيها فتح كود تصل الصورة، انها سوف تظهر شيئا من هذا القبيل. 426 00:27:01,346 --> 00:27:03,220 انها سوف أطلب منكم ماذا تريد أن تفعل؟ 427 00:27:03,220 --> 00:27:06,830 هل تريد أن تبدأ شيئا عشوائي، وملعب، في الأساس كنت 428 00:27:06,830 --> 00:27:11,250 يمكن اختبار فقط دون كود ارتكاب فعلا إلى أي التطبيق. 429 00:27:11,250 --> 00:27:13,020 >> هل ترغب في إنشاء مشروع جديد؟ 430 00:27:13,020 --> 00:27:16,660 أو هل ترغب في الاستمرار العاملين في المشروع الحالي؟ 431 00:27:16,660 --> 00:27:20,270 في حالتنا نحن ذاهبون لإنشاء مشروع جديد. 432 00:27:20,270 --> 00:27:22,980 لذلك من الجميل حقا، ق كود ديه في الواقع بالفعل 433 00:27:22,980 --> 00:27:26,820 قدمت لكم بعض القوالب لخلق الكائنات. 434 00:27:26,820 --> 00:27:32,680 إذا كنت تريد أن تفعل لعبة، ق كود في الواقع قالب عبة بالنسبة لك، 435 00:27:32,680 --> 00:27:36,890 لديها صفحة التطبيقات القائمة، تطبيق المستندة التبويب. 436 00:27:36,890 --> 00:27:39,280 في هذه الحالة، نحن ذاهبون أن تفعل شيئا بسيط جدا، 437 00:27:39,280 --> 00:27:43,230 ونحن في طريقنا للاستخدام تطبيق عرض واحد. 438 00:27:43,230 --> 00:27:48,270 >> بعد ذلك فقط ما الذي تريد الاتصال به المنتج الخاص بك، وما هو اسمك، 439 00:27:48,270 --> 00:27:52,760 ما هو المعرف الخاص بك، و ما هي اللغة التي تستخدمها. 440 00:27:52,760 --> 00:27:57,060 نحن هنا لا نريد أن تحقق باستخدام البيانات الأساسية. 441 00:27:57,060 --> 00:28:00,170 البيانات الأساسية هو في الأساس databasing دائرة الرقابة الداخلية. 442 00:28:00,170 --> 00:28:05,360 إذا كنت تفعل البيانات الأساسية، ق كود سوف تحدد 443 00:28:05,360 --> 00:28:07,710 الكثير الطبقات أكثر تعقيدا بالنسبة لك. 444 00:28:07,710 --> 00:28:12,740 لذلك للحفاظ على كل شيء بسيط، ونحن مجرد الذهاب الى الاستغناء عن البيانات الأساسية 445 00:28:12,740 --> 00:28:15,290 الآن. 446 00:28:15,290 --> 00:28:18,030 >> المشكلة نحن في طريقنا لتكون باستخدام هو that-- المشكلة 447 00:28:18,030 --> 00:28:23,770 ونحن في طريقنا إلى أن خلق هو أننا تريد أساسا لاستيراد ماريو من C 448 00:28:23,770 --> 00:28:25,437 إلى التطبيق دائرة الرقابة الداخلية. 449 00:28:25,437 --> 00:28:26,645 لذلك دعونا نسمي ذلك ماريو-دائرة الرقابة الداخلية. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 بالطبع يمكنك تحديد ما كنت نريد أن نضع في المشروع. 452 00:28:34,880 --> 00:28:37,870 وهناك نذهب. 453 00:28:37,870 --> 00:28:41,390 >> لذلك هذا هو قليلا الساحقة، ولكن هذا هو الواقع 454 00:28:41,390 --> 00:28:43,540 ما رأيناه فقط على الشرائح. 455 00:28:43,540 --> 00:28:49,710 والمنطقة الأولى ونحن نرى الآن هو في الأساس تكوين المشروع. 456 00:28:49,710 --> 00:28:53,390 لذلك كل شيء تريد القيام به المشروع، أي نوع من الجهاز، 457 00:28:53,390 --> 00:28:58,810 دعنا نقول فقط ما هو نوع من جهاز هل تريد التطبيق الخاص بك لتظهر على؟ 458 00:28:58,810 --> 00:29:01,280 هل من اي فون، آي باد أو عالمية؟ 459 00:29:01,280 --> 00:29:04,660 لذلك التوجه الجهاز، كل هذه الأشياء. 460 00:29:04,660 --> 00:29:08,490 ليس مهما جدا، ولكن يمكن أن يكون، ولكن هذا 461 00:29:08,490 --> 00:29:11,050 هو المكان الذي قمت بإعداد المشروع الخاص بك إذا كنت في الواقع 462 00:29:11,050 --> 00:29:15,180 ترغب في نشر لمتجر أبل. 463 00:29:15,180 --> 00:29:20,420 >> كل الحق، دعونا ننظر في ما هو داخل نظامنا. 464 00:29:20,420 --> 00:29:22,360 دعنا نذهب من خلال الملاح الملف. 465 00:29:22,360 --> 00:29:30,140 وهذه هي كافة الملفات التي بالفعل جاء مع القالب، لطيفة جدا. 466 00:29:30,140 --> 00:29:35,980 حتى عندما وبنقرة واحدة منهم هذا ما يبدو. 467 00:29:35,980 --> 00:29:38,530 تشبه الى حد بعيد ز تحرير. 468 00:29:38,530 --> 00:29:41,340 لكن يمكنك أن ترى أن تسليط الضوء على تركيب هو على الارجح 469 00:29:41,340 --> 00:29:42,780 أجمل قليلا. 470 00:29:42,780 --> 00:29:45,610 وانها في الواقع أكثر من ذلك بكثير قوة من ز التحرير. 471 00:29:45,610 --> 00:29:49,970 ويمكنك استكمال السيارات الكثير من الامور بالنسبة لك، 472 00:29:49,970 --> 00:29:52,370 كما سنرى بسرعة كبيرة. 473 00:29:52,370 --> 00:29:54,100 >> دعونا فتح منطقة التصحيح أيضا. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 كل الحق، كما يمكننا أن نرى، وحدة موجودة هنا. 476 00:30:07,000 --> 00:30:13,840 هذا هو ما كنت تريد الذهاب لرؤية أين كنت في printf أو nsloging شيء. 477 00:30:13,840 --> 00:30:17,155 ذلك دون مزيد من اللغط، دعونا الواقع تجميع التطبيق ونرى ما سيحدث. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 واحدة سمة أساسية ل شفرة، هو أن شفرة 480 00:30:23,410 --> 00:30:25,850 يأتي مع جهاز محاكاة اي فون. 481 00:30:25,850 --> 00:30:29,820 لذلك أنت لا تحتاج أن يكون لها اي فون في محاولة مشروعك، 482 00:30:29,820 --> 00:30:34,440 شفرة يمكن محاكاة ذلك ل لكم، كما نرى الآن. 483 00:30:34,440 --> 00:30:36,406 >> انها لطيفة جدا. 484 00:30:36,406 --> 00:30:38,640 انه أخذ قليلا قليلا من الوقت لتجميع 485 00:30:38,640 --> 00:30:43,040 وأساسا لدينا تطبيق فارغ، 486 00:30:43,040 --> 00:30:44,640 والتي في الواقع لا يفعل شيئا. 487 00:30:44,640 --> 00:30:46,175 ولكنه يجمع. 488 00:30:46,175 --> 00:30:47,380 انها رهيبة جدا. 489 00:30:47,380 --> 00:30:50,200 إنها أفضل بكثير من C، هاه؟ 490 00:30:50,200 --> 00:30:52,130 كل الحق، ثم دعونا محاولة لإضافة شيء. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 ملف واحد هو أن قليلا غريب هنا يسمى القصة المصورة. 493 00:31:02,650 --> 00:31:08,020 هذا هو في الواقع كبيرة، ميزة رهيبة للشفرة. 494 00:31:08,020 --> 00:31:14,170 لأنه في الصورة رمز، يمكنك فعلا السحب وإسقاط العناصر على واجهة 495 00:31:14,170 --> 00:31:17,430 وسوف تظهر مباشرة تصل. 496 00:31:17,430 --> 00:31:18,055 دعونا نحاول ذلك. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> نحن إسقاط التسمية هنا، "مرحبا العالم!" 499 00:31:27,236 --> 00:31:29,740 يمكننا أن المركز الذي. 500 00:31:29,740 --> 00:31:30,970 بارد جدا. 501 00:31:30,970 --> 00:31:33,915 الآن دعونا تشغيل هذه المحاكاة توقف. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 هنا لدينا "مرحبا العالم!" 504 00:31:38,700 --> 00:31:40,810 ونحن حتى لم تفعل أي ترميز بعد. 505 00:31:40,810 --> 00:31:42,750 ما هيك يحدث؟ 506 00:31:42,750 --> 00:31:45,880 هذه هي الطريقة قوية بناء واجهة يمكن أن يكون. 507 00:31:45,880 --> 00:31:48,030 حتى قال أحدهم أن ربما يمكنك فقط 508 00:31:48,030 --> 00:31:52,800 استكمال التطبيق دون الكتابة ربما ألف الأسطر من التعليمات البرمجية 509 00:31:52,800 --> 00:31:54,820 فقط باستخدام منشئ واجهة. 510 00:31:54,820 --> 00:31:59,680 ولكن هذا ربما لا أفضل طريقة للقيام بذلك. 511 00:31:59,680 --> 00:32:01,670 >> الآن دعونا فعلا ننكب على الترميز. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 وبالتالي فإن هيكل لملف هو في الواقع مثيرة للاهتمام حقا 514 00:32:08,330 --> 00:32:15,610 لأنه، كما قد ترى، هناك لم المهمة الرئيسية في أي مكان. 515 00:32:15,610 --> 00:32:17,466 ترى؟ 516 00:32:17,466 --> 00:32:19,340 كما ذكرنا من قبل، يمكنك أن ترى أن هذا 517 00:32:19,340 --> 00:32:22,830 هو ملف التنفيذ لفئة محددة. 518 00:32:22,830 --> 00:32:25,690 ولكن لا يوجد في أي مكان الرئيسي. 519 00:32:25,690 --> 00:32:27,490 فأين هو أهم؟ 520 00:32:27,490 --> 00:32:31,970 في الواقع، هناك الرئيسي، ولكن مخفيا الرئيسي الواقع منك. 521 00:32:31,970 --> 00:32:34,560 الرئيسية هنا. 522 00:32:34,560 --> 00:32:37,120 التي تبدو مألوفة. 523 00:32:37,120 --> 00:32:41,000 >> وذلك أساسا ما دائرة الرقابة الداخلية تقوم به داخل الرئيسي 524 00:32:41,000 --> 00:32:43,540 غير أنه كلما الرئيسي هو ودعا، الذي هو في الأساس 525 00:32:43,540 --> 00:32:49,000 كلما يتم تنفيذ التطبيق، فإنه بإنشاء كائن يسمى AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 وكما ذكرت من قبل، كامل التطبيق هو في الواقع كائن في حد ذاته. 528 00:32:57,350 --> 00:33:02,270 حتى في هذه الطريقة، في الأساس دائرة الرقابة الداخلية التطبيق هو قول المترجم 529 00:33:02,270 --> 00:33:05,540 أن OK، انا ذاهب الى خلق منتج يسمى AppDelegate، 530 00:33:05,540 --> 00:33:07,620 والتي ستكون بلدي التطبيق. 531 00:33:07,620 --> 00:33:09,640 لذلك كنت بحاجة للذهاب من خلال هذا AppDelegate 532 00:33:09,640 --> 00:33:12,040 ونرى ما يفعله هذا الرجل. 533 00:33:12,040 --> 00:33:14,850 ويتم ظيفتي بالنسبة لي. 534 00:33:14,850 --> 00:33:22,070 >> وAppDelegate يمكنك أن ترى أن هناك بعض وظائف غريبة حقا، 535 00:33:22,070 --> 00:33:25,290 كذلك فعلا الأساليب، التي أعطت أبل بالفعل لك. 536 00:33:25,290 --> 00:33:27,464 ما هي هذه؟ 537 00:33:27,464 --> 00:33:31,010 هذه هي في الواقع بروتوكولات فقط أن كنت أتحدث عنه. 538 00:33:31,010 --> 00:33:35,670 لذلك هذه هي الأحداث التي أبل قد أعطاكم لتبدأ. 539 00:33:35,670 --> 00:33:38,050 لا يوجد شيء في بعض وظائف في الوقت الراهن، 540 00:33:38,050 --> 00:33:40,820 ولكن إذا كنا نريد أن تهيئة شيء من أجل التطبيق لدينا 541 00:33:40,820 --> 00:33:46,140 قبل الدخول في عرض أي رأي، ونحن نفعل ذلك هنا. 542 00:33:46,140 --> 00:33:51,150 >> يمكنك أن تقرأ فقط اسم واعتقد هذا الحدث هو فعلا واضحا حقا. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 وحتى الآن الرئيسي خلقت كائن لAppDelegate. 545 00:33:58,350 --> 00:34:05,220 وما AppDelegate سيفعل في الواقع لا يخفى أيضا منك. 546 00:34:05,220 --> 00:34:09,250 وAppDelegate سوف تبدأ تحميل الأسهم ViewController. 547 00:34:09,250 --> 00:34:13,170 حتى انها في الأساس سنبدأ تحميل ما يصل جميع وجهات النظر التي لديك 548 00:34:13,170 --> 00:34:17,500 ومجرد تقديم وجهة نظر على أساس التسلسل الهرمي. 549 00:34:17,500 --> 00:34:21,280 >> حتى في هذه الحالة لدينا فقط رأي واحد، والتي هي هنا. 550 00:34:21,280 --> 00:34:25,060 لذلك هذا هو الرأي الوحيد ما يجري ليتم استدعاؤها. 551 00:34:25,060 --> 00:34:28,159 منطق ViewController هو الحق هنا. 552 00:34:28,159 --> 00:34:32,159 هذه هي الشفرة التي في الواقع تسيطر على الرأي رأينا فقط. 553 00:34:32,159 --> 00:34:33,679 كل الحق، دعونا نفعل شيئا هنا. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 حتى viewDidLoad يبدو وكأنه حدث، في حين أن هذا هو أيضا مندوب، 556 00:34:50,560 --> 00:34:52,500 وهذا هو أيضا البروتوكول. 557 00:34:52,500 --> 00:34:56,350 >> وبغض النظر عن تحميل الرأي، كل شيء داخل وظيفة 558 00:34:56,350 --> 00:34:57,920 وسوف يطلق. 559 00:34:57,920 --> 00:35:02,840 في هذه الحالة يجب أن نرى "مرحبا تيانيو! "إذا كنا تشغيل البرنامج. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 انها تحصل على بطيئة قليلا تجميع ملفات القصة المصورة. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 حسنا في الواقع، نحن لا نرى الناتج عن ذلك. 564 00:35:18,190 --> 00:35:20,720 انها باردة جدا. 565 00:35:20,720 --> 00:35:22,000 الآن دعونا فعلا ماريو. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 انا ذاهب الى تعريف تعمل بسرعة كبيرة. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: نتائج (الباحث) المستوى. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> كل الحق، وهذا هو في الواقع رهيبة سمة من سمات شفرة السيارات على الانتهاء. 572 00:36:06,410 --> 00:36:10,680 لذلك عندما كنت أكتب لواكتب تدخل، وقد أعطى ذلك بالفعل القالب 573 00:36:10,680 --> 00:36:12,325 بالنسبة لك، وهو بارد جدا. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 يجب أن ننظر حقا مألوفة ليا رفاق. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 عذرا، هذا خطأي. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 كل الحق، بارد. 580 00:37:18,120 --> 00:37:22,710 هذا المنطق ينبغي أن ننظر مألوف حقا ليا رفاق، وخاصة ماريو فقط. 581 00:37:22,710 --> 00:37:26,140 >> ولكن نحن سوف طباعة الآن إلى وحدة التحكم في كل مرة واحدة، 582 00:37:26,140 --> 00:37:29,280 لأننا نريد أن يحافظ بطريقة ما تتبع ما نحن الطباعة. 583 00:37:29,280 --> 00:37:31,810 ونحن في طريقنا لاستخدام يؤدي بطريقة ما في وقت لاحق، 584 00:37:31,810 --> 00:37:35,010 لعرض الطباعة من ينتج للمستخدم. 585 00:37:35,010 --> 00:37:37,730 وذلك بدلا نحن فقط nslogging كل شيء، 586 00:37:37,730 --> 00:37:42,410 التي نحن تخزين كل شيء إلى نتيجة استدعاء دالة، 587 00:37:42,410 --> 00:37:44,070 ولكن المنطق هو نفسه تماما. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 بعد أن ننتهي، ونحن مجرد طباعة نتائجنا. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> وهنا بدلا من طباعة خارج بلدي اسم، ونحن في طريقنا إلى استدعاء دالة. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 دعونا نرى ما سيحدث. 594 00:38:18,090 --> 00:38:21,240 عفوا، ومن الواضح. 595 00:38:21,240 --> 00:38:24,320 لدينا لطيفة الهرم قليلا من هنا. 596 00:38:24,320 --> 00:38:28,370 هذا هو الأساس C، نحن فقط التلاعب فيها استدعاء وظيفة 597 00:38:28,370 --> 00:38:30,010 وكيف لا وظيفة تبدو. 598 00:38:30,010 --> 00:38:31,560 لا يوجد شيء مختلف. 599 00:38:31,560 --> 00:38:34,040 ولكن هذا هو الواقع ليس مثيرا للغاية هنا، 600 00:38:34,040 --> 00:38:37,500 لأننا لا نرى أي شيء من التطبيق فون. 601 00:38:37,500 --> 00:38:42,120 >> حتى إذا كان لديك بالفعل اي فون app-- إذا كان لديك بالفعل ماريو دائرة الرقابة الداخلية الحق 602 00:38:42,120 --> 00:38:45,080 الآن، وأنت لن لمعرفة أي شيء 603 00:38:45,080 --> 00:38:49,450 لديها أي علاقة مع ماريو ل كل هذه النواتج إلى وحدة التحكم 604 00:38:49,450 --> 00:38:51,620 وكلها من المستخدمين. 605 00:38:51,620 --> 00:38:53,850 هذا هو ما تراه، الذي هو "مرحبا العالم!" 606 00:38:53,850 --> 00:38:55,720 ليس جيدا. 607 00:38:55,720 --> 00:39:03,090 الآن دعونا نحاول أن نجعل للمستخدم رؤية بالضبط ما نحن طبع. 608 00:39:03,090 --> 00:39:06,000 لذلك نحن لسنا في حاجة لتسمية بعد الآن. 609 00:39:06,000 --> 00:39:09,800 دعونا نحاول ومعرفة شيء آخر والتي قد تكون مفيدة. 610 00:39:09,800 --> 00:39:12,140 >> هناك في الواقع واحدة العنصر الذي يسمى 611 00:39:12,140 --> 00:39:16,460 حقل النص، والتي يمكن أن تكون مفيدة جدا بالنسبة لنا. 612 00:39:16,460 --> 00:39:19,880 فإنه يعرض أساسا المنطقة النص التي يمكن تحريرها. 613 00:39:19,880 --> 00:39:22,320 بحيث تبدو مفيدة حقا. 614 00:39:22,320 --> 00:39:23,810 الآن دعونا اسحبه وأسقطه. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 نجاح باهر، لدينا عرض النص في رأينا، يتوهم حقا. 617 00:39:32,670 --> 00:39:35,430 هذا هو قليلا كبير جدا. 618 00:39:35,430 --> 00:39:38,150 دعونا جعله أصغر. 619 00:39:38,150 --> 00:39:40,290 وضعه في المركز. 620 00:39:40,290 --> 00:39:43,760 جعله أصغر كذلك. 621 00:39:43,760 --> 00:39:50,110 >> الآن لدينا عرض النص، وهو ما يمكن يتم استخدامها لعرض النتيجة النهائية لدينا. 622 00:39:50,110 --> 00:39:52,860 ولكن الآن حان بالتأكيد ليست الذهاب الى العمل 623 00:39:52,860 --> 00:39:56,970 لأن هناك no-- لل ViewController نحن فقط 624 00:39:56,970 --> 00:40:03,010 يعرف لا يعرف أن هناك نسخة النص هناك. 625 00:40:03,010 --> 00:40:06,550 لذلك نحن بحاجة إلى حد ما ربط عرض النص نحن فقط 626 00:40:06,550 --> 00:40:11,660 تم إنشاؤها باستخدام الفئة التي قد حان بالفعل معنا. 627 00:40:11,660 --> 00:40:14,860 >> الطريقة التي نؤدي بها ذلك هي في الواقع سحري حقا. 628 00:40:14,860 --> 00:40:18,190 حتى فتح القصة المصورة. 629 00:40:18,190 --> 00:40:22,220 هناك خاص (غير مسموع) دعا [؟ مساعد؟] [غير مسموع]. 630 00:40:22,220 --> 00:40:25,190 عند النقر فوق ذلك، انها الذهاب لفتح ملفين. 631 00:40:25,190 --> 00:40:29,425 واحدة هي فئة والآخر نسخة المقابلة لذلك. 632 00:40:29,425 --> 00:40:31,920 انها جدا، ومفيدة للغاية. 633 00:40:31,920 --> 00:40:35,950 ودعونا يذهب فقط من خلال ملف .H. 634 00:40:35,950 --> 00:40:39,110 السيطرة، وهذا هو [غير مسموع] المنطق. 635 00:40:39,110 --> 00:40:47,280 الرقابة على المطبوعات واسحب عرض النص في الإعلان. 636 00:40:47,280 --> 00:40:48,780 ونحن في طريقنا للدعوة التي outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 الاتصال. 639 00:40:53,670 --> 00:40:59,420 حتى هنا أعلنا جديدة الملكية لفئة ViewController لدينا. 640 00:40:59,420 --> 00:41:02,300 والخاصية الجديدة هو مجرد عرض النص 641 00:41:02,300 --> 00:41:05,000 انشأنا في بناء الواجهة. 642 00:41:05,000 --> 00:41:07,990 لذلك بهذه الطريقة نستطيع وصول جميع البيانات 643 00:41:07,990 --> 00:41:13,630 وتلاعب كل ما هو داخل وجهة الإخراج، الذي هو رائع. 644 00:41:13,630 --> 00:41:19,260 >> حتى في الرمز الفعلي لدينا، دعونا نفعل شيئا معها. 645 00:41:19,260 --> 00:41:23,810 حتى هذا الوقت عندما نكون مثل الطباعة من النتيجة النهائية للماريو، 646 00:41:23,810 --> 00:41:28,020 نحن في عدم تسجيل أي شيء. 647 00:41:28,020 --> 00:41:30,080 أعني أننا يمكن أن تبقي البيان قطع الأشجار. 648 00:41:30,080 --> 00:41:41,490 وبالإضافة إلى ذلك، ونحن إرسال قراءات نحن فقط 649 00:41:41,490 --> 00:41:47,622 أنشئت لوجهة نظر الإخراج، الذي هو UI textview أنشأنا فقط. 650 00:41:47,622 --> 00:41:48,746 الآن دعونا نرى ما سيحدث. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 نجاح باهر. 653 00:41:56,620 --> 00:41:59,130 لدينا الهرم في التطبيق في الوقت الحالي. 654 00:41:59,130 --> 00:42:06,720 >> بحيث يمكن للمستخدم رؤية انتاجنا ل قمنا نسخ الإخراج من رمز لنا 655 00:42:06,720 --> 00:42:08,045 إلى واجهة لدينا. 656 00:42:08,045 --> 00:42:10,950 انها جيدة جدا. 657 00:42:10,950 --> 00:42:14,990 انها في الواقع لا أن مثيرة لأننا can-- 658 00:42:14,990 --> 00:42:18,250 كل التطبيق يقوم به هو يظهر الهرم لكم، 659 00:42:18,250 --> 00:42:20,520 وليس هناك شيء يمكنك القيام به حيال ذلك. 660 00:42:20,520 --> 00:42:22,330 انها ليست مثيرة للغاية. 661 00:42:22,330 --> 00:42:27,840 حتى الآن دعونا جعل زر التي من شأنها أن مسح وجهات النظر. 662 00:42:27,840 --> 00:42:30,290 يبدو أن زر سوف تكون مفيدة. 663 00:42:30,290 --> 00:42:33,270 سحب وإسقاط. 664 00:42:33,270 --> 00:42:33,900 زر واحد. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 زر اثنين. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> حتى عندما وانقر على اليسار زر، ينبغي أن رؤية واضحة. 669 00:42:52,052 --> 00:42:53,635 ينبغي أن يكون هناك أي شيء على الشاشة. 670 00:42:53,635 --> 00:42:56,970 وعندما كنا انقر على الزر الأيمن، ماريو، 671 00:42:56,970 --> 00:42:59,740 وجهة النظر سوف تظهر مرة أخرى. 672 00:42:59,740 --> 00:43:05,510 لذلك هذا الطريقة التي نؤدي بها أيضا الاشياء السحرية والسيطرة عليها والسحب 673 00:43:05,510 --> 00:43:08,740 لتعريف فئة في director-- مساعد 674 00:43:08,740 --> 00:43:11,600 في العارض مساعد. 675 00:43:11,600 --> 00:43:18,620 في هذه الحالة نحن يتم تعيين أن هذا ينبغي أن يكون هذا العمل. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> حتى هنا أنشأنا بالفعل إجراء يسمى clearMario، 679 00:43:26,830 --> 00:43:34,210 وهو الأسلوب الذي سيطلق عليها كلما نضغط على زر واضحة. 680 00:43:34,210 --> 00:43:41,030 لذلك لدينا في الواقع رمز، دعونا فقط وضع النص الإخراج وعرض الانتاج 681 00:43:41,030 --> 00:43:44,620 إلى لا شيء، وبهذه الطريقة وسوف تظهر لتكون واضحة. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 وبالإضافة إلى ذلك، دعونا خلق طريقة أخرى تسمى runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 أوه آسف، لا ينبغي أن يكون العقار. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 كل الحق، وهذا ينبغي أن يكون العمل كذلك. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> وعند ذاك هي وظيفة ودعا، نحن فقط تشغيل ماريو عشرة. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 نأمل أن يكون على ما يرام. 692 00:44:39,780 --> 00:44:41,120 هل تجميع؟ 693 00:44:41,120 --> 00:44:43,920 نعم. 694 00:44:43,920 --> 00:44:45,090 الآن لدينا وجهة نظر. 695 00:44:45,090 --> 00:44:46,560 لدينا الانتاج. 696 00:44:46,560 --> 00:44:50,040 ودعونا نرى ما سيحدث. 697 00:44:50,040 --> 00:44:52,590 وهذا ما ذهب. 698 00:44:52,590 --> 00:44:54,500 انها مرة أخرى. 699 00:44:54,500 --> 00:44:57,620 حتى هنا قمنا محدد أي نوع من ظيفة 700 00:44:57,620 --> 00:45:00,400 سوف يتم استدعاؤها عند نحن اكتب في شيء، 701 00:45:00,400 --> 00:45:03,160 عندما نضغط على زر معين. 702 00:45:03,160 --> 00:45:07,890 وهذا هو الأساس خطة العمل المستهدفة 703 00:45:07,890 --> 00:45:12,510 لهذا الحدث مدفوعة البرمجة في الهدف C. 704 00:45:12,510 --> 00:45:15,030 >> بالإضافة إلى ذلك، انها ليست مثيرة للغاية 705 00:45:15,030 --> 00:45:19,810 لأننا لا نستطيع تغيير الواقع مدى ارتفاع الهرم ستكون، 706 00:45:19,810 --> 00:45:23,640 ولذا فإننا ربما تريد بطريقة أو بأخرى الحصول على مدخلات من المستخدم 707 00:45:23,640 --> 00:45:29,490 وتغيير ذروة الهرم بناء على ما الانتاج. 708 00:45:29,490 --> 00:45:32,900 لذلك نحن ذاهبون للقيام بذلك. 709 00:45:32,900 --> 00:45:38,720 حتى هذا الوقت عندما ندعو runMario، نحن لا مجرد دعوة ماريو مباشرة. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 عنوان هذا واحد. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> مندوب. 714 00:46:23,700 --> 00:46:25,160 هذا مثير للاهتمام للغاية. 715 00:46:25,160 --> 00:46:26,720 ما هو مندوب؟ 716 00:46:26,720 --> 00:46:28,950 انا ذاهب الى وضع الذات هنا. 717 00:46:28,950 --> 00:46:31,038 ونحن في طريقنا لرؤية ماذا يعني ذلك في وقت لاحق. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 حتى هنا أنشأنا الأساس المثال معين يسمى حالة تأهب UI 720 00:46:51,120 --> 00:46:52,210 الرأي. 721 00:46:52,210 --> 00:46:54,440 وجهة نظر في حالة تأهب UI هو أساسا ما شئت 722 00:46:54,440 --> 00:46:58,940 نرى في كل مرة الملوثات العضوية الثابتة شيئا صعودا ويسألك عن المدخلات، 723 00:46:58,940 --> 00:47:03,080 مثل ماذا سيحدث عندما كنت في محاولة لشراء شيء على المتجر. 724 00:47:03,080 --> 00:47:14,250 >> بالإضافة إلى ذلك، بعد إنشائه، وتبين لنا مجرد حالة تأهب. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 كل الحق، دعونا بسرعة فقط سيتم اختبار هذا العمل أم لا. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 هذا بارد جدا. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 الآن دعونا فعلا خلق حقل الإدخال للتنبيه UI. 731 00:47:59,120 --> 00:48:01,170 هذا هو كيف نفعل ذلك. 732 00:48:01,170 --> 00:48:07,490 وينبغي أن يكون لدينا عرض المدخلات للتنبيه. 733 00:48:07,490 --> 00:48:09,020 رائع جدا. 734 00:48:09,020 --> 00:48:12,330 دعنا نقول فقط 10. 735 00:48:12,330 --> 00:48:14,900 >> انها لا تفعل شيئا الحق الآن لأن الدعوة في الواقع 736 00:48:14,900 --> 00:48:17,770 لم تتغير لتنفيذ ماريو. 737 00:48:17,770 --> 00:48:23,470 لذلك أصبح هذا قليلا غريب بعض الشيء لأنه كلما 738 00:48:23,470 --> 00:48:30,790 نضغط على زر أسفل، كلما كنا اضغط على زر في وجهة النظر في حالة تأهب، 739 00:48:30,790 --> 00:48:35,560 شيء يجب أن يحدث، ولكن ذلك لا يحدث. 740 00:48:35,560 --> 00:48:37,220 كيف يمكننا اللحاق ذلك؟ 741 00:48:37,220 --> 00:48:41,280 كيف نعرف أن المستخدم ورفضت وجهة نظر في حالة تأهب 742 00:48:41,280 --> 00:48:45,630 ودخل بالفعل عددا، ل الآن لا شيء يحدث في الواقع. 743 00:48:45,630 --> 00:48:50,450 >> حسنا، ربما كنت قد خمنت من الصواب، الوفد. 744 00:48:50,450 --> 00:48:55,440 وذلك بالإضافة إلى جميع هذه الإعلانات، 745 00:48:55,440 --> 00:49:03,190 نحن بحاجة إلى إضافة وفد جديد ل وصفته UI التنبيه View مندوب. 746 00:49:03,190 --> 00:49:06,440 بحيث ان كل واحد تفاعل أو الحدث 747 00:49:06,440 --> 00:49:10,190 اننا ستكون لدينا مع عرض تنبيه UI 748 00:49:10,190 --> 00:49:14,100 سوف يتم التعامل معها من طبقتنا كذلك. 749 00:49:14,100 --> 00:49:26,297 >> وذلك بالإضافة إلى ذلك، سوف يكون حالة تأهب زر منظر انقر على المؤشر. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 الوصول إلى هذا. 752 00:49:37,730 --> 00:49:42,020 حتى في هذه الحالة لدينا already-- لذلك لدينا 753 00:49:42,020 --> 00:49:46,210 تبين البروتوكول الذي سيتم التعامل مع الحدث عندما 754 00:49:46,210 --> 00:49:51,320 نحن انقر على زر حرر على وجهة النظر في حالة تأهب. 755 00:49:51,320 --> 00:49:55,976 وذلك في كل مرة ونحن استبعاد عرض في حالة تأهب، وهذا يجب أن يحدث. 756 00:49:55,976 --> 00:49:57,350 اسمحوا لي أن اختبار فقط بسرعة جدا. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 حسنا في الواقع، لقد وصلنا هنا. 759 00:50:19,300 --> 00:50:22,210 >> حتى هنا، ما أننا لن في الواقع الحصول على هو في الواقع 760 00:50:22,210 --> 00:50:43,120 الحصول على the-- لذلك نحن نريد أن نخرج النص الذي لدينا في السابق 761 00:50:43,120 --> 00:50:45,350 دخلت في وجهة النظر في حالة تأهب. 762 00:50:45,350 --> 00:50:48,505 وبناء على نص، ونحن الذهاب لعرضه ماريو. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 هذا يتحول بسرعة كبيرة خارج اذا كان يعمل في الواقع أم لا. 765 00:50:55,480 --> 00:50:59,476 حتى في هذه الحالة، إذا كنا المدخلات، دعنا نقول، 10، نحن يجب أن نرى 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> جيد جدا، لدينا عدد هنا. 768 00:51:05,210 --> 00:51:06,470 انها جيدة جدا. 769 00:51:06,470 --> 00:51:16,840 الآن الخطوة الأخيرة سوف be-- لذلك الخطوة الأخيرة يتعين علينا القيام به الآن 770 00:51:16,840 --> 00:51:21,100 هو مجرد مكالمة مع ماريو المستوى على أساس المدخلات 771 00:51:21,100 --> 00:51:23,270 أن وضعنا في طريقة العرض في حالة تأهب. 772 00:51:23,270 --> 00:51:26,920 لذلك نحن بحاجة إلى تحويل هذه السلسلة إلى دائرة الرقابة الداخلية. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 تجاوز ثابت رائع جدا. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 وبعد ذلك نحن مجرد دعوة النفس قيمة marioWithLevels. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 دعونا نرى أن إرادة العمل فعلا أم لا. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> نحن بالفعل نظرا الهرم. 781 00:52:01,550 --> 00:52:04,785 دعونا نحاول تغيير الارتفاع. 782 00:52:04,785 --> 00:52:06,530 أن يعمل فعلا. 783 00:52:06,530 --> 00:52:07,610 انها باردة جدا. 784 00:52:07,610 --> 00:52:10,420 بحيث يمكنك الآن فقط إدخال أي القيمة التي تريدها. 785 00:52:10,420 --> 00:52:12,440 دعنا نقول فقط أربعة. 786 00:52:12,440 --> 00:52:14,260 هذا رائع جدا. 787 00:52:14,260 --> 00:52:17,090 لذلك هذا هو الأساس مثال سريع حقا 788 00:52:17,090 --> 00:52:23,170 لكيفية إنشاء مشروع في شفرة وكيف سلك بسرعة حقا 789 00:52:23,170 --> 00:52:26,220 بعض الأحداث وظائف بسيطة حقا. 790 00:52:26,220 --> 00:52:28,840 >> لذلك المصدر هو ذاهب أن يكون وضعت على الانترنت في وقت لاحق. 791 00:52:28,840 --> 00:52:33,400 حتى إذا كنت مهتما في كيفية عمل دائرة الرقابة الداخلية ماريو، 792 00:52:33,400 --> 00:52:38,360 انا ذاهب الى وضع نفسه تماما مشاريع على موقع CS50 في وقت لاحق. 793 00:52:38,360 --> 00:52:41,260 نحن القيام به أساسا مع الصيف، وقبل ان ننتهي 794 00:52:41,260 --> 00:52:45,190 أريد فقط أن أشير يا رفاق ل بعض الموارد رهيبة حقا أن 795 00:52:45,190 --> 00:52:47,550 متوفرة على الانترنت. 796 00:52:47,550 --> 00:52:52,270 >> من الواضح أن وثائق أبل سوف تكون مفيدة جدا. 797 00:52:52,270 --> 00:52:57,630 ولكن بالإضافة إلى ذلك، أنا لا سيما يوصي أربعة مصادر، المدرسة رمز، 798 00:52:57,630 --> 00:53:02,120 منزل شجرة، AppCoda وWWDC أشرطة الفيديو. 799 00:53:02,120 --> 00:53:07,270 المدرسة رمز ومنزل الشجرة هي اثنين من المواقع تثقيف على الانترنت، 800 00:53:07,270 --> 00:53:10,210 والتي تركز على وجه التحديد على هندسة البرمجيات. 801 00:53:10,210 --> 00:53:16,930 خاصة بالنسبة للمدرسة الرمز، هم لدينا تعليمي جيد حقا على دائرة الرقابة الداخلية. 802 00:53:16,930 --> 00:53:19,550 >> هذا هو مثال سريع حقا لذلك. 803 00:53:19,550 --> 00:53:22,980 أنها فعلا إنشاء cute-- حقا ننظر في ذلك اي فون لطيف قليلا 804 00:53:22,980 --> 00:53:24,920 المتأنق هناك، انها رهيبة جدا. 805 00:53:24,920 --> 00:53:31,010 والطريقة التي تفسر الهدف جملة C واضح تماما. 806 00:53:31,010 --> 00:53:32,230 منزل الشجرة هو نفسه. 807 00:53:32,230 --> 00:53:34,660 وAppCoda هو منتدى. 808 00:53:34,660 --> 00:53:38,130 انها في الواقع بلوق التي تم تشغيلها قبل الهدف C شهدت حقا 809 00:53:38,130 --> 00:53:39,120 مبرمج. 810 00:53:39,120 --> 00:53:43,950 وجميع تلك الدروس في AppCoda هي باختصار جميلة وسهلة التنفيذ، 811 00:53:43,950 --> 00:53:45,390 موصى به للغاية. 812 00:53:45,390 --> 00:53:47,700 >> وإذا كنت مطورا، بالتأكيد تذهب للتحقق 813 00:53:47,700 --> 00:53:55,660 كيف الفيديو WWDC حيث يمكنك تعرف على أحدث البرمجة دائرة الرقابة الداخلية 814 00:53:55,660 --> 00:53:58,250 التقنيات، واجهات برمجة التطبيقات والمكتبات. 815 00:53:58,250 --> 00:54:02,850 لذلك هذا هو الى حد كبير كان للحلقة الدراسية. 816 00:54:02,850 --> 00:54:03,820 شكرا جزيلا. 817 00:54:03,820 --> 00:54:08,040 وأتمنى لكم وقتا ممتعا خلق الخاصة بك دائرة الرقابة الداخلية التطبيق الخاص. 818 00:54:08,040 --> 00:54:09,302