1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu ЛИУ: Эй, как это происходит все? 3 00:00:13,590 --> 00:00:20,250 И это IOS App программирование Objective C семинаре. 4 00:00:20,250 --> 00:00:21,520 И меня зовут Tianyu Лю. 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 Почему 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 использует Objective C. Ну, есть Новый язык называется Свифт, 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, в основном расширенный Ч. Значение 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 и Objective 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 >> Ладно, теперь давайте на самом деле получить в языковой Objective C. 49 00:02:48,870 --> 00:02:52,910 Так почему бы нам не начать с некоторые действительно основной синтаксис. 50 00:02:52,910 --> 00:02:57,410 Как я уже говорил Цель 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 Тем не менее, Objective C не полностью C, 60 00:03:33,400 --> 00:03:36,640 и есть то, что немного странно об этом. 61 00:03:36,640 --> 00:03:42,340 >> Первый в том, что когда вы делать программированию на языке С, вы, как правило, называют 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 мы называем Printf, 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 Это в основном Printf, просто другой язык. 80 00:04:38,070 --> 00:04:41,370 Точно так же, использование, точно те же функции. 81 00:04:41,370 --> 00:04:44,060 Ну и получается, что Objective 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 что компания, в которой язык 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 Это очень отличается от того, что мы см в Си, так вот это на самом деле 91 00:05:22,600 --> 00:05:25,190 не похож С больше. 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 Вызов функции в Objective С также отличается от C. 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 методы или модели, которые является используется Objective C. Objective-C 150 00:08:57,110 --> 00:09:03,110 называется Objective 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 Пока вы самом деле, каждый вид Вы видите, когда вы открываете приложение 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 Класс в основном шаблон для объекта. 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 >> Возможно, вы будете печатать что-то вроде "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 "Привет, Мир!" на консоль. 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 Вызов метода в основном то, что я говорю о 294 00:18:29,080 --> 00:18:32,390 для вызова любого метода в Objective 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 Таким образом, в Objective-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 ребята используют оригинал от 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 Так Яблоко, учитывая, что даже для вас так что вы можете просто использовать непосредственно 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 в Objective 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 >> Внутри функции было Первоначально, ничего не делая. 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 на Окна, действительно, очень трудно. 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 Я думаю, мы можем очень быстро сделать Пример для программирования 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 Так что это действительно хорошая, с код на самом деле уже 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 Если вы основных данных, втор Код будет определять 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 Это то, что вы будете видеть, где Вы находитесь в 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 поставляется с iPhone симуляторе. 481 00:30:25,850 --> 00:30:29,820 Таким образом, вы не должны иметь iPhone, чтобы попытаться ваш проект, 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 Это гораздо лучше, чем С, а? 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 >> Мы бросаем метку здесь, "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 что хорошо, я собираюсь создать Продукт под названием 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 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 >> Ладно, это на самом деле здорово Особенностью лет код авто завершения. 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 потому что мы не видим что-нибудь из приложения iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Так что, если вы на самом деле есть iPhone app-- Если у вас действительно есть право Марио 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 Контроль, это [неразборчиво] логика. 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 Так что это время, когда мы, как печати из конечного результата для Марио, 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 для управляемых событиями, программирование в Objective 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 Посмотреть предупреждение пользовательский интерфейс в основном то, что вы будете 722 00:46:54,440 --> 00:46:58,940 см каждый раз, когда что-то треск и запрашивает ввод, 723 00:46:58,940 --> 00:47:03,080 Нравится то, что произойдет, когда вы пытаетесь купить что-то на App Store. 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 Теперь давайте на самом деле создать Поле для ввода начеку пользовательского интерфейса. 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 Alert Посмотреть делегата. 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 Таким образом, мы должны преобразовать Эта строка в 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 о том, как создать проект в ы кода и как на самом деле быстро соединять 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 Марио работает, 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 Специально для кода школе, они есть действительно хороший учебник по МО. 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 Дерево Дом же. 807 00:53:32,230 --> 00:53:34,660 И AppCoda является форум. 808 00:53:34,660 --> 00:53:38,130 Это на самом деле блог, который был запущен на самом деле испытывал Objective 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 методы, API и библиотеки. 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