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 И това е IOS App програмиране на обективни в семинар. 4 00:00:20,250 --> 00:00:21,520 И моето име е Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Аз съм Lowell младши точно сега, концентриране по компютърни науки. 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 Защо е IOS толкова страхотно? 12 00:00:43,940 --> 00:00:47,250 Така че първият проблем, първата нещо, което е доста страхотно за нас, 13 00:00:47,250 --> 00:00:51,190 особено като CS50 студент, е, че IOS 14 00:00:51,190 --> 00:00:55,860 приложения Цел C. Е, има нов език, наречен Swift, 15 00:00:55,860 --> 00:00:58,260 но ние няма да използвате, че в този семинар. 16 00:00:58,260 --> 00:01:01,540 Ако сте заинтересувани от Swift, има е независима семинар за това. 17 00:01:01,540 --> 00:01:05,590 Но Objective C е в общи линии надмножество на C. Значение 18 00:01:05,590 --> 00:01:10,230 че всичко, което се използва в C може да се преведе на Objective 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 знаете Objective C, най-малко 40%. 24 00:01:26,500 --> 00:01:30,720 Също така, Apple има наистина стабилна API за IOS. 25 00:01:30,720 --> 00:01:33,750 Има много наистина луд неща, които можете да правите с него. 26 00:01:33,750 --> 00:01:36,760 Един от които е някой, всъщност създаде IOS ап 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 IOS може да бъде. 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 мисля, докато изграждането на вашия окончателен проект в Objective 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 В допълнение към това, IOS е наистина платформа 38 00:02:12,780 --> 00:02:16,260 където можете да стигнете до огромен аудитория с малко усилия. 39 00:02:16,260 --> 00:02:20,170 Това не е като Android, където всичко е доста фрагментиран. 40 00:02:20,170 --> 00:02:22,540 >> Всичко IOS е единна. 41 00:02:22,540 --> 00:02:25,920 И толкова дълго, колкото можете да създадете ап за iPhone, 42 00:02:25,920 --> 00:02:31,260 Можете много лесно порт, който да IPAD, IPAD мини, или различни размери iPhone. 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 Можете просто да притежават iPhone и кажете на приятеля си, хей, 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 >> Добре, сега нека да се получи в действителност на езика Цел В. 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 е точно така, както сме правили в Mario. 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 Можете да направите за линия, точно както са направили в Mario [недоловим]. 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 Въпреки това, Objective 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 Но в Objective 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, което наричаме ФОРМАТ, 77 00:04:29,980 --> 00:04:33,350 но в Objective C, което наричаме [недоловим]. 78 00:04:33,350 --> 00:04:35,640 >> Може би се чудите какво е това. 79 00:04:35,640 --> 00:04:38,070 Това е в общи линии ФОРМАТ, Просто различен език. 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 Причината е, че NS всъщност означава Next Step, 85 00:04:56,340 --> 00:04:59,980 която е компания, която Стив Джобс е създадена, 86 00:04:59,980 --> 00:05:03,960 която е компания, в която език Objective C е роден. 87 00:05:03,960 --> 00:05:06,140 Така че това е в общи линии традиция. 88 00:05:06,140 --> 00:05:09,010 Знам, че е малко по- странно, но това е Apple. 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 Но може да се каже край, или, или, или ABC пълен бар, каквото си искате. 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 Ще видите защо Apple иска да направи това много бързо. 123 00:07:05,800 --> 00:07:10,530 Е, как да ти се обадя функция? 124 00:07:10,530 --> 00:07:15,520 Извикването на функциите в Цел С също е различно от С. 125 00:07:15,520 --> 00:07:18,170 >> Всъщност, наричайки функция в Objective 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 Вие сте в основата Разказвайки възразят самостоятелно да се каже "Hello World!" 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 точката на Objective 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, за една наистина добра причина. 151 00:09:03,110 --> 00:09:07,560 >> Така че, преди да навлезем в Синтаксис Objective 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 Докато сте всъщност, всеки един изглед виждате, докато отворите IOS ап, 167 00:10:10,440 --> 00:10:17,720 нека просто кажем, Twitter или Facebook, всеки един изглед, което виждате е обект. 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 A клас е основно шаблон за обект. 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 A клас е в основата на шаблон. 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 >> Вероятно ще отпечата нещо като "Hello World! 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 и да видим какво точно означава, че превежда в съществуване IOS програмиране. 233 00:14:30,650 --> 00:14:36,500 Така че в IOS програмиране всеки един клас ще се реализира на два файла. 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 Така че в този случай, ние можем да видим, че сме обявяване интерфейс, Cat: обект. 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 "Hello World!" към конзолата. 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 Начинът на използване на един клас да се създаде обект в Objective C е написано тук. 279 00:17:26,880 --> 00:17:30,730 >> Трябва първо да уточни, че това е една котка показалеца, 280 00:17:30,730 --> 00:17:38,700 защото всеки обект в Objective C накрая се прилага като указател. 281 00:17:38,700 --> 00:17:46,210 И ти се обадя класа, ги наричаме като Alloc, който е основно изчистване, 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 Знам, че е е малко странно, но това е всъщност как Apple прави неща. 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 The извикване на метод Основно това, което аз говоря за 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 Това също е вероятно една от най- основните идеи в IOS програмиране. 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 Нека си представим, ако Facebook е една Ударът програма това не е наистина добра. 321 00:20:10,230 --> 00:20:13,750 Просто отидете на Facebook веднъж и това е направено. 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 че всеки път, когато този бутон се натисне, извикаме функцията, наречена "Hello World!" 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 Но тези събития са дадени за ви от Apple да се започне с. 357 00:22:19,230 --> 00:22:22,640 Например, аз не съм напълно сигурен колко от вас 358 00:22:22,640 --> 00:22:27,930 момчета използват оригинален на Apple ап поща или контакт, 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 Така че Apple е дал, че дори и да сте така че можете директно да използвате 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 след като затворите приложението, или след поставите iPhone да спи. 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 Apple току-що ви казах, че тази функция ще се случи, когато дадено събитие се случва, 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 много по-ясно, когато правим кодовете на S в действие. 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 >> Inside функция е имало първоначално да не правиш нищо. 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 покриване на някои много основни синтаксис и основно понятие за Objective 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 >> Една бърза бележка, така че ако искам да направя развитие IOS, 403 00:25:26,640 --> 00:25:29,630 Аз силно препоръчвам имате Mac. 404 00:25:29,630 --> 00:25:33,930 Поради това развитие IOS на Windows е много, много трудно. 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 Така че в S код имаме няколко различни области. 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 >> Имате Toolbar площ, която груб управление възгледи, 411 00:26:03,590 --> 00:26:08,570 или някое малко бърз инструменти за S самия код. 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 Така че когато кажете ФОРМАТ, или 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 Предполагам, че ние можем да направим много бързо пример за IOS програмиране. 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 Така че това е много хубаво, S Код всъщност има вече 433 00:27:22,980 --> 00:27:26,820 ви даде някои шаблони за създаване на обекти. 434 00:27:26,820 --> 00:27:32,680 Ако искате да направите една игра, S код всъщност има шаблон игра за вас, 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 IOS. 442 00:28:00,170 --> 00:28:05,360 Ако го направите основни данни, S код ще определи 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 до IOS ап. 449 00:28:25,437 --> 00:28:26,645 Така че нека да се обади, че Марио-IOS. 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 Дали е iPhone, IPAD или универсална? 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 Искам да разположи до магазина Apple. 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 Това е това, което ще видите, когато вие сте в ФОРМАТ или 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 Една от основните характеристики на S код, е, че е код 480 00:30:23,410 --> 00:30:25,850 идва с iPhone тренажор. 481 00:30:25,850 --> 00:30:29,820 Така че не е нужно да има iPhone да опитам вашия проект, 482 00:30:29,820 --> 00:30:34,440 S код може да симулира, че за вие, както можем да видим точно сега. 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 Това всъщност е голяма, страхотно функция за S код. 494 00:31:08,020 --> 00:31:14,170 Защото в S код, всъщност можете да влачите и пускате елементи върху интерфейса 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 >> Пускаме етикет тук, "Hello World !!!" 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 Тук имаме "Hello World !!!" 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 Това е колко мощен Interface Builder може да бъде. 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 само с помощта на Interface Builder. 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 >> Така че основно това, което IOS се прави вътре основна 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 Така че по този начин, в общи линии IOS ап казва на компилатора 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 и всъщност методи, които Apple вече ви е дал. 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 Така че това са събития, които Apple ви е дал да се започне с. 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 The 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 В този случай ние трябва да видим "Hello Tianyu! ", Ако можем да стартирате програмата. 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: резултати (INT) ниво. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Добре, това е всъщност най-страхотно функция на S код автоматично завършване. 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 Тази логика трябва да изглежда наистина запознат до вас, момчета, особено що Mario. 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 защото ние не виждаме нищо от iPhone ап. 601 00:38:37,500 --> 00:38:42,120 >> Така че, ако наистина имате iPhone app-- ако действително има Mario IOS полето 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 Това е това, което виждате, която е "Hello World !!!" 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 Control, това е [недоловим] логика. 635 00:40:39,110 --> 00:40:47,280 Натиснете Control и плъзнете тексов в декларацията. 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 Така че този път, когато ние сме като печат от крайния резултат за Mario, 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 Wow. 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 All ап прави се показвайки пирамида, за да сте, 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 Button един. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Button две. 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 И когато ние щракнете върху бутона десния бутон, Mario, 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 >> И когато тази функция е нарича, ние просто стартирате Mario десет. 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, Ние не просто се обадете директно Mario. 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 сигнал оглед делегат. 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 И въз основа на текст, ние сме Ще се покаже Mario. 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 е само покана Mario с ниво на базата на входа 771 00:51:21,100 --> 00:51:23,270 че ние сме вложили в сигнал изглед. 772 00:51:23,270 --> 00:51:26,920 Така че ние трябва да конвертирате този низ в IOS. 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 за това как да се създаде проект в S код и как да се наистина бързо с връзването 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 Така че, ако проявявате интерес в това как работи IOS Mario, 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 >> Очевидно документацията Apple ще бъде много полезно. 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 Специално за код на училище, те има наистина добър урок за IOS. 802 00:53:16,930 --> 00:53:19,550 >> Това е наистина бърз пример за това. 803 00:53:19,550 --> 00:53:22,980 Те всъщност се създаде наистина cute-- Посетете това малко сладко iPhone 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 Tree House е един и същ. 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 видеоклипове, където можете да се запознаят с най-новите програмиране IOS 814 00:53:55,660 --> 00:53:58,250 техники, APIs и библиотеки. 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 И аз се надявам да се забавляват създаването на своя собствена IOS ап. 818 00:54:08,040 --> 00:54:09,302