1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: Добро пожаловать см. CS50 семинар - 3 00:00:09,800 --> 00:00:11,630 Введение в МО. 4 00:00:11,630 --> 00:00:13,290 Спасибо всем, что пришли. 5 00:00:13,290 --> 00:00:16,610 Надеюсь, ты так же рады как я собираюсь прошивкой. 6 00:00:16,610 --> 00:00:22,300 В прошлом году, я взял CS50 как студент-второкурсник, и я в основном узнал IOS для моего 7 00:00:22,300 --> 00:00:23,490 Окончательный проект. 8 00:00:23,490 --> 00:00:26,350 И это было довольно - 9 00:00:26,350 --> 00:00:30,530 ну, это было не просто, но есть много поддержки учебники онлайн. 10 00:00:30,530 --> 00:00:33,760 И я очень надеюсь, что с этим Семинар, я дам вам, ребята голове 11 00:00:33,760 --> 00:00:36,750 начать на развитие IOS 12 00:00:36,750 --> 00:00:40,490 >> Так, с точки зрения развития IOS, Есть две основные вещи, мы 13 00:00:40,490 --> 00:00:42,090 хотите, чтобы покрыть сегодня. 14 00:00:42,090 --> 00:00:43,290 Во-первых, язык - 15 00:00:43,290 --> 00:00:46,650 язык будет в Objective-C. Мы на самом деле услышать 16 00:00:46,650 --> 00:00:47,750 что-то действительно захватывающее. 17 00:00:47,750 --> 00:00:51,500 Таким образом, вы можете присоединиться к целое яблоко сообщество разработчиков и построить некоторые 18 00:00:51,500 --> 00:00:52,940 действительно удивительный приложений. 19 00:00:52,940 --> 00:00:58,670 >> Кроме того, IOS 7 красиво, мы надеемся, для некоторых из вас. 20 00:00:58,670 --> 00:01:01,130 Но это спорно, я знаю. 21 00:01:01,130 --> 00:01:05,349 И в основном, то, что я хочу сделать, это руководство Вы через Objective-C, а также 22 00:01:05,349 --> 00:01:10,650 Xcode, которая является интегрированной среда разработки, что вы будете 23 00:01:10,650 --> 00:01:13,460 работает в течение прошивкой. 24 00:01:13,460 --> 00:01:19,140 >> И так, просто слово на Objective-C. В основном, это то же самое как C, 25 00:01:19,140 --> 00:01:22,790 но с большим количеством других вещей. 26 00:01:22,790 --> 00:01:27,710 Так вот, более строго, это на самом деле супер-набор C. Поэтому все, что вы 27 00:01:27,710 --> 00:01:32,280 можно сделать в C прямо сейчас, что в основном нравится PSET 0 до 6, вы 28 00:01:32,280 --> 00:01:34,170 может сделать в Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Так что, не бояться об этом новом язык, который вы собираетесь учиться. 30 00:01:38,620 --> 00:01:42,120 Вы уже рассмотрели много его, потому что вы все сделали C это прошлое 31 00:01:42,120 --> 00:01:45,880 семестр, за исключением теперь вы собираетесь иметь намного больше работать. 32 00:01:45,880 --> 00:01:49,270 И я просто хочу провести вас через Несколько примеров, чтобы выделить некоторые 33 00:01:49,270 --> 00:01:53,920 из ключевых отличий, которые я нашел, были очень важно, когда я узнал, 34 00:01:53,920 --> 00:01:57,180 Objective-C в прошлом году. 35 00:01:57,180 --> 00:02:00,910 >> Ну на самом деле, так, с другой точки есть, Objective-C, очевидно, 36 00:02:00,910 --> 00:02:02,200 объектно-ориентированный. 37 00:02:02,200 --> 00:02:06,340 И мы обсудим немного о том, что это означает, что позже. 38 00:02:06,340 --> 00:02:11,340 В принципе, это все равно, как вы работали с Структуры в этом прошлом PSet, с 39 00:02:11,340 --> 00:02:13,360 узлы и аналогичные другие такие вещи, как, что. 40 00:02:13,360 --> 00:02:17,110 Кроме этого, в Objective-C, все объект, и вы собираетесь быть 41 00:02:17,110 --> 00:02:20,720 проходящей вокруг указатели на объекты а не сами значения. 42 00:02:20,720 --> 00:02:25,050 Так, это просто что-то важное иметь в виду. 43 00:02:25,050 --> 00:02:29,140 >> Итак, почему бы нам не начать с несколькими различия в синтаксисе между С и 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Я хочу, чтобы выделить # включить, вы знаю, стандартный io.h в С и С + +, с 46 00:02:38,310 --> 00:02:44,030 Objective-C версия, что, что является # импорт, а затем своего рода 47 00:02:44,030 --> 00:02:44,790 Файл заголовка. 48 00:02:44,790 --> 00:02:48,165 В этом случае, было бы UIKit, Вы знаете, слэш UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Это также может быть, вы знаете, MKMapview Вам сократить MKMapview.h, если вы хотите 50 00:02:53,560 --> 00:02:56,370 чтобы сделать, как, карту внутри вашего приложения. 51 00:02:56,370 --> 00:02:57,110 Подобные вещи, как, что. 52 00:02:57,110 --> 00:03:01,250 >> Таким образом, главное, включают Теперь ситуация изменилась импортировать. 53 00:03:01,250 --> 00:03:04,340 Но идея все еще остается. 54 00:03:04,340 --> 00:03:10,460 Вы собираетесь импортировать какую-то из файла заголовка в вашей программе. 55 00:03:10,460 --> 00:03:14,550 >> Я также хочу, чтобы выделить разницу между Printf и NSLog. 56 00:03:14,550 --> 00:03:19,760 Однако, как мы уже говорили ранее, Objective-C является строгим супер-набор 57 00:03:19,760 --> 00:03:22,800 С, что означает, что Е существует в Objective-C, тоже. 58 00:03:22,800 --> 00:03:24,340 Но, большинство людей не использовать это. 59 00:03:24,340 --> 00:03:28,245 Большинство людей используют эту NSLog, потому что это дает отметку времени, и мы увидим, 60 00:03:28,245 --> 00:03:29,780 это в действии позже. 61 00:03:29,780 --> 00:03:33,560 Но, обычно, более полезным способ распечатать переменные. 62 00:03:33,560 --> 00:03:38,220 >> И я также хочу подчеркнуть, что NSLog занимает в точно такой же 63 00:03:38,220 --> 00:03:41,650 значения заполнителей как Е делает - 64 00:03:41,650 --> 00:03:45,900 так% г является для INT, % Е для поплавка. 65 00:03:45,900 --> 00:03:49,750 Тем не менее, я хочу, чтобы выделить это самый последний - 66 00:03:49,750 --> 00:03:52,960 NSLog% на знак - 67 00:03:52,960 --> 00:03:55,390 что является прототипом для объекта. 68 00:03:55,390 --> 00:04:01,160 И, как я уже говорил ранее, Objective-C сделок в значительной степени в основном в объекты, 69 00:04:01,160 --> 00:04:05,020 и так это придет в использовании, когда вы хотите распечатать, пожалуй, может быть, 70 00:04:05,020 --> 00:04:08,390 NSArray или NSDictionary, или NSString. 71 00:04:08,390 --> 00:04:13,750 >> Так, также, отметить, что, на наш NSLog заявление, у нас есть на знак перед 72 00:04:13,750 --> 00:04:15,380 цитаты - 73 00:04:15,380 --> 00:04:20,769 то есть, чтобы показать, что строки, в настоящее время, в Objective-C являются объектами. 74 00:04:20,769 --> 00:04:23,310 Они больше не являются просто символьные звезды. 75 00:04:23,310 --> 00:04:25,530 Они объектов и рассматриваться как таковые. 76 00:04:25,530 --> 00:04:28,690 >> Таким образом, это очень важно, что, когда Вы используете NSLog она занимает в NS 77 00:04:28,690 --> 00:04:32,580 строка, что означает, что вы будете иметь включить, по меньшей перед вашим 78 00:04:32,580 --> 00:04:34,270 кавычки. 79 00:04:34,270 --> 00:04:38,290 И именно поэтому вы видите, здесь, во всех моя функция вызывает к этому NSLog, я 80 00:04:38,290 --> 00:04:42,400 есть, по меньшей перед кавычек, даже хотя% г и% е являются 81 00:04:42,400 --> 00:04:45,200 все равно из С. 82 00:04:45,200 --> 00:04:47,930 >> Любые вопросы до сих пор? 83 00:04:47,930 --> 00:04:50,920 Я постараюсь, чтобы пройти через это быстро, так что мы можем иметь больше времени для работы 84 00:04:50,920 --> 00:04:55,210 с Xcode и Objective-C, так что что вы, ребята могут получить более 85 00:04:55,210 --> 00:04:57,630 знакомы с ней. 86 00:04:57,630 --> 00:05:01,900 >> Далее, я хочу, чтобы выделить что-то концептуально важно. 87 00:05:01,900 --> 00:05:05,130 Так, в С, большинство вещей функции. 88 00:05:05,130 --> 00:05:06,280 Мы делаем вызов функции. 89 00:05:06,280 --> 00:05:10,190 Мы заявляем функций этот путь, с возвращение введите, а затем 90 00:05:10,190 --> 00:05:13,570 Имя функции, скобки, а затем каковы бы ни были аргументы и тип 91 00:05:13,570 --> 00:05:15,590 эти аргументы, которые мы хотим передать дюйма 92 00:05:15,590 --> 00:05:19,970 И Objective-C, потому что все является объект или класс - 93 00:05:19,970 --> 00:05:23,970 так как класс и объект два термина, которые в основном синонимами друг с другом, 94 00:05:23,970 --> 00:05:28,270 так что я может использовать их как взаимозаменяемые в течение семинара. 95 00:05:28,270 --> 00:05:34,090 >> Но, вы увидите, что у нас есть методы в Функции Objective-C, а не. 96 00:05:34,090 --> 00:05:36,390 И методы принадлежат к объектам. 97 00:05:36,390 --> 00:05:38,950 Так же, как, может быть, принять Например, узел - 98 00:05:38,950 --> 00:05:40,250 наш тип [неразборчиво] 99 00:05:40,250 --> 00:05:44,390 узел из PSet 6 или 5 - 100 00:05:44,390 --> 00:05:49,590 у нас есть слово, имущества, или следующий указатель узла. 101 00:05:49,590 --> 00:05:53,880 Методы же просто функции внутри из своего рода структуры. 102 00:05:53,880 --> 00:05:57,510 >> Таким образом, в этом случае структура будет объект, а затем метод 103 00:05:57,510 --> 00:05:59,260 то, что принадлежит к объекту. 104 00:05:59,260 --> 00:06:02,650 И это, как вы бы объявить, рода, метод. 105 00:06:02,650 --> 00:06:07,990 Вы бы начать с, опять же, возвращение тип - это так, я попытался цвета 106 00:06:07,990 --> 00:06:12,990 кодировать ключевые слова здесь, так что вы, ребята, можно увидеть, по крайней мере, форматирование 107 00:06:12,990 --> 00:06:17,650 Сходство между функцией декларации и объявления методов. 108 00:06:17,650 --> 00:06:21,990 Таким образом, вы начинаете с, вы знаете, возвращение тип - в данном случае это массив или 109 00:06:21,990 --> 00:06:23,910 NSArray указатель - 110 00:06:23,910 --> 00:06:26,710 а затем вы должны этот метод. 111 00:06:26,710 --> 00:06:30,900 И потом, что интересно здесь что вместо того, скобки, мы 112 00:06:30,900 --> 00:06:32,900 есть эти двоеточия. 113 00:06:32,900 --> 00:06:38,450 А потом, перед нашими аргументами, мы говоря, опять же, в скобках тип 114 00:06:38,450 --> 00:06:39,370 нашего аргумента. 115 00:06:39,370 --> 00:06:43,160 >> Так, сейчас я пытаюсь сделать сравнение, вы знаете, п и 116 00:06:43,160 --> 00:06:45,450 число, потому что они оба, как целые. 117 00:06:45,450 --> 00:06:49,580 А потом, другой это тип NSUInteger. 118 00:06:49,580 --> 00:06:56,390 А потом, с Objective-C, когда вам хотите иметь несколько аргументов в 119 00:06:56,390 --> 00:07:00,030 ваша статья метод, вы, вроде, разделить их вроде как это - 120 00:07:00,030 --> 00:07:03,790 Я не совсем уверен, как описать его, но это хороший пример того, как вы 121 00:07:03,790 --> 00:07:06,530 может иметь несколько аргументов в там. 122 00:07:06,530 --> 00:07:10,360 >> Можно, конечно, просто полностью игнорировать двоеточие andArray NSArray 123 00:07:10,360 --> 00:07:13,240 Массив, если вы хотели просто метод , который принимает в один аргумент. 124 00:07:13,240 --> 00:07:13,677 Да, вопрос. 125 00:07:13,677 --> 00:07:18,701 >> АУДИТОРИЯ: Являются ли оба NSUInteger и NSArray аргументы, которые могут быть приняты в 126 00:07:18,701 --> 00:07:21,530 в NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: Да. 128 00:07:22,060 --> 00:07:23,400 Итак, позвольте мне объяснить. 129 00:07:23,400 --> 00:07:23,790 Так что, да. 130 00:07:23,790 --> 00:07:30,260 Таким образом, вопрос был в NSUInteger и NSArray * типы аргументов, 131 00:07:30,260 --> 00:07:31,570 и это правильно. 132 00:07:31,570 --> 00:07:35,700 Таким образом, вы всегда хотите указать, что тип вашей аргументации. 133 00:07:35,700 --> 00:07:41,570 И здесь, я пытаюсь представить вас к некоторым из синтаксиса и Vocab из 134 00:07:41,570 --> 00:07:45,910 Objective-C, так что те фактические типы что вы будете иметь дело с. 135 00:07:45,910 --> 00:07:48,970 >> И как вы заметите, массивы больше не, вроде, 136 00:07:48,970 --> 00:07:50,780 простые кронштейн вещи. 137 00:07:50,780 --> 00:07:52,060 Они объектов. 138 00:07:52,060 --> 00:07:56,700 Хотя, если мы идем к следующему слайд, мы видим, что мы можем 139 00:07:56,700 --> 00:08:02,510 жестко закодировать NSArray в Objective-C с просто символ в перед 140 00:08:02,510 --> 00:08:04,190 скобки. 141 00:08:04,190 --> 00:08:08,650 Я не, на самом деле, совсем уверен ли Я синтаксически жестко массив 142 00:08:08,650 --> 00:08:16,020 правильно для версии C, но это должен быть в массиве C. 143 00:08:16,020 --> 00:08:19,760 >> Таким образом, это, как бы вы, вы знаете, возможно, использовать функции или 144 00:08:19,760 --> 00:08:21,990 методы, которые мы создали ранее. 145 00:08:21,990 --> 00:08:22,250 Не так ли? 146 00:08:22,250 --> 00:08:25,340 Таким образом, это то, где мы заявляем о своей Функция и наш метод. 147 00:08:25,340 --> 00:08:28,020 А теперь мы хотим использовать их в наша программа, и это 148 00:08:28,020 --> 00:08:29,450 как мы будем это делать. 149 00:08:29,450 --> 00:08:32,400 Так, в C, вам придется, вы знаете, пожалуй, BOOL б, и вы установите его в 150 00:08:32,400 --> 00:08:36,549 равняться функцию, а затем Вы передаете в аргументах. 151 00:08:36,549 --> 00:08:39,190 >> В Objective-C, это довольно почти то же самое. 152 00:08:39,190 --> 00:08:43,370 У вас есть NSArray * my_array, и это собирается равняться - сейчас, только 153 00:08:43,370 --> 00:08:47,460 Отличие здесь в том, что этот объект, который я выделены желтым цветом, и 154 00:08:47,460 --> 00:08:51,180 как вы можете видеть, в С, есть никакой другой желтый слово. 155 00:08:51,180 --> 00:08:54,170 И это потому, что методы принадлежат с определенным объектом. 156 00:08:54,170 --> 00:08:59,800 Так вот почему мне нужно иметь объект что, вроде, вызывает этот метод на 157 00:08:59,800 --> 00:09:04,360 число ноль, а затем NSArray а, б, в, г. 158 00:09:04,360 --> 00:09:05,350 Есть вопросы по этому поводу? 159 00:09:05,350 --> 00:09:12,190 >> Мы увидим, эти понятия в действии довольно скоро, когда мы идем в демо. 160 00:09:12,190 --> 00:09:13,400 ОК. 161 00:09:13,400 --> 00:09:17,170 Теперь, я хочу поговорить немного кратко о Xcode 5, который 162 00:09:17,170 --> 00:09:21,160 интегрированная среда разработки что вы будете работать с. 163 00:09:21,160 --> 00:09:26,160 Я знаю, многие из вас, или некоторые из вас, не имеют Mac, что является проблемой 164 00:09:26,160 --> 00:09:30,490 потому Xcode не доступна для ОС Windows и ПК. 165 00:09:30,490 --> 00:09:32,785 Не спрашивайте меня, почему, но, вероятно, - 166 00:09:32,785 --> 00:09:33,730 да, корпоративные. 167 00:09:33,730 --> 00:09:35,290 Какая разница. 168 00:09:35,290 --> 00:09:39,360 Но в любом случае, так что, я прошу прощения, если некоторые из вы должны скачать какую-то 169 00:09:39,360 --> 00:09:43,000 виртуальная машина для Mac в Для того чтобы запустить Xcode 5. 170 00:09:43,000 --> 00:09:46,460 Но это довольно изящный программное обеспечение для использования. 171 00:09:46,460 --> 00:09:51,280 >> Так вот, прежде чем мы углубимся в какой-либо демо, я просто хочу показать вам, в 172 00:09:51,280 --> 00:09:55,700 картина того, что Xcode выглядит в вашем окна, а затем также говорить о 173 00:09:55,700 --> 00:09:57,670 что вся это пространство. 174 00:09:57,670 --> 00:10:01,600 Таким образом, это вроде как научиться использовать Microsoft Word, за исключением вы хотите 175 00:10:01,600 --> 00:10:04,675 ознакомиться со всеми разные вещи, которые 176 00:10:04,675 --> 00:10:06,250 собираются здесь. 177 00:10:06,250 --> 00:10:11,160 >> Итак, сначала я хочу указать вам на панель инструментов в верхней части. 178 00:10:11,160 --> 00:10:14,450 Вы увидите, что, на самом верху, вы будете иметь имя файла - 179 00:10:14,450 --> 00:10:18,100 или, на самом деле, имя вашего проекта а затем имя вашего файла. 180 00:10:18,100 --> 00:10:20,940 Принять к сведению пьесы и запорные кнопки. 181 00:10:20,940 --> 00:10:24,210 Это те, что вы будете используя для запуска приложения на 182 00:10:24,210 --> 00:10:25,600 Симулятор - 183 00:10:25,600 --> 00:10:26,550 симулятор IOS. 184 00:10:26,550 --> 00:10:29,940 Это автоматически поставляется с Xcode 5, так что вам не придется беспокоиться о 185 00:10:29,940 --> 00:10:32,070 загрузив какую-то симуляторе. 186 00:10:32,070 --> 00:10:34,700 Вы просто нажмите кнопку воспроизведения и затем он работает ваше приложение. 187 00:10:34,700 --> 00:10:39,230 И вы можете поиграть с вами, и вы увидите, как это работает позже. 188 00:10:39,230 --> 00:10:42,690 >> А потом, в центре, конечно, где все ваши красивой код 189 00:10:42,690 --> 00:10:44,240 собираюсь идти. 190 00:10:44,240 --> 00:10:48,340 А потом, на левой стороне, вы будете есть это, своего рода, папка - 191 00:10:48,340 --> 00:10:50,340 навигация - 192 00:10:50,340 --> 00:10:53,970 а затем, вы также увидите, что наряду со значком папки означает, что 193 00:10:53,970 --> 00:10:57,680 куча других икон там, что будет полезным в дальнейшем. 194 00:10:57,680 --> 00:11:04,710 >> А потом, на правой стороне это утилита область, где вы можете работать с 195 00:11:04,710 --> 00:11:09,620 некоторые объекты и укажите, вам знаю, что цвет должен быть, то, что 196 00:11:09,620 --> 00:11:12,040 шрифт текста должно быть, и так далее. 197 00:11:12,040 --> 00:11:15,890 Хотя, все, что вы делаете в области коммунального хозяйства, вы можете 198 00:11:15,890 --> 00:11:17,480 сделать в коде, а также. 199 00:11:17,480 --> 00:11:21,630 И так, я буду идти через две примеры не используя, просто, нет кода в 200 00:11:21,630 --> 00:11:23,730 все - или очень минимально необходимый код - 201 00:11:23,730 --> 00:11:28,290 стихи всего кода, просто так, что вы, ребята, знаю, что вы можете и не можете сделать в 202 00:11:28,290 --> 00:11:29,260 Xcode и Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> И вот, наконец, на дне, у вас есть отладки область. 204 00:11:32,770 --> 00:11:37,270 Таким образом, вы больше не придется отлаживать, и так далее, в ваших программах. 205 00:11:37,270 --> 00:11:39,180 Она автоматически сделает это за вас. 206 00:11:39,180 --> 00:11:42,880 И вы можете также распечатать материал к этой области. 207 00:11:42,880 --> 00:11:46,790 Таким образом, фактически, позже, мы пройдем mario.c, если вы, ребята до сих пор помню 208 00:11:46,790 --> 00:11:49,000 , что в Xcode. 209 00:11:49,000 --> 00:11:50,360 Так что должно быть весело. 210 00:11:50,360 --> 00:11:55,870 >> А потом, чтобы вернуть его к Objective-C, я хочу выделить то, что 211 00:11:55,870 --> 00:11:57,440 вы можете сделать с если заявления. 212 00:11:57,440 --> 00:12:03,160 Итак, вы знаете, потому что Objective-C является расширенный набор C, все, что вы сделать, это, 213 00:12:03,160 --> 00:12:06,890 буквально, так же, как С. Вы просто имеют незначительные различия. 214 00:12:06,890 --> 00:12:10,810 Так, вы заметите, форму для если заявление является все тот же - у вас есть 215 00:12:10,810 --> 00:12:14,280 если, и тогда вы должны скобки с состояние внутри, он, а затем 216 00:12:14,280 --> 00:12:17,150 фигурные скобки для все, что вы хочу сделать внутри там. 217 00:12:17,150 --> 00:12:21,680 >> Тем не менее, я хотел поставить этот слайд вверх здесь, просто чтобы проиллюстрировать, что, 218 00:12:21,680 --> 00:12:25,680 потому что мы имеем дело с объектами сейчас, мы должны будем использовать эти вещи 219 00:12:25,680 --> 00:12:31,240 называется так, равна строке, которая является, по совпадению, метод 220 00:12:31,240 --> 00:12:33,710 строка или объект NSString. 221 00:12:33,710 --> 00:12:38,600 Так, слово, в данном случае, является NSString объект, и это имеет метод является 222 00:12:38,600 --> 00:12:44,150 равна строки, а затем мы передаем в жестко запрограммированной строки, чтобы увидеть 223 00:12:44,150 --> 00:12:48,110 ли те равны друг к другу. 224 00:12:48,110 --> 00:12:51,580 >> Любые вопросы до сих пор? 225 00:12:51,580 --> 00:12:52,440 ОК. 226 00:12:52,440 --> 00:12:56,190 И я хочу, чтобы перейти для постановки также. 227 00:12:56,190 --> 00:13:01,420 >> Так, например, если мы хотим, чтобы петли по длине строки в C, это 228 00:13:01,420 --> 00:13:03,710 должны быть вам знакомы. 229 00:13:03,710 --> 00:13:07,840 И, в Objective-C, я хочу чтобы подчеркнуть это, своего рода, 230 00:13:07,840 --> 00:13:09,235 Метод называется граф. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Ну, на самом деле, пусть мне просто взять свои слова обратно. 233 00:13:15,550 --> 00:13:17,200 Количество это метод массива. 234 00:13:17,200 --> 00:13:21,070 Однако, это более конкретно свойство массива, поэтому вы 235 00:13:21,070 --> 00:13:22,380 можно использовать точечную нотацию. 236 00:13:22,380 --> 00:13:25,870 Но я не хочу, чтобы попасть в слишком много эта концептуальная материал, я просто хочу, 237 00:13:25,870 --> 00:13:30,140 чтобы показать вам, как все будет выглядеть как в Objective-C по сравнению с C. 238 00:13:30,140 --> 00:13:35,400 >> А также, я хочу отметить, что хотя я использую NSUInteger 239 00:13:35,400 --> 00:13:39,860 на глазах у всех моих я х годов в Objective-C, Вы можете также использовать Int, потому внутр является 240 00:13:39,860 --> 00:13:42,290 полностью действует в Objective-C, также. 241 00:13:42,290 --> 00:13:42,475 Да? 242 00:13:42,475 --> 00:13:44,350 >> АУДИТОРИЯ: Это только стилистических, или - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: Да. 244 00:13:44,760 --> 00:13:46,060 Так что, как вы увидите - 245 00:13:46,060 --> 00:13:49,390 Итак, вопрос был в том, что просто вопрос стиля. 246 00:13:49,390 --> 00:13:54,820 Как вы увидите, у меня есть, вроде, звезду Звездочка вещь вниз, на дно, и 247 00:13:54,820 --> 00:13:59,870 что ссылка ведет к переполнению стека образуют, где кто-то объясняет 248 00:13:59,870 --> 00:14:03,640 разница между междунар в NSInteger и NSUInteger. 249 00:14:03,640 --> 00:14:05,540 И так, вы можете прочитать об этом позже. 250 00:14:05,540 --> 00:14:07,640 Эти слайды будет, конечно, доступны для вас. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Давайте посмотрим. 253 00:14:11,280 --> 00:14:12,150 ОК, удивительным. 254 00:14:12,150 --> 00:14:15,410 Таким образом, это также включено в слайд потому что я думал, что это был отличный 255 00:14:15,410 --> 00:14:19,370 сайт, который знакомит вас синтаксису Objective-C. 256 00:14:19,370 --> 00:14:24,410 Так, собственно, почему бы нам не перейти к Хром и проверить этот сайт? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Верно. 259 00:14:31,300 --> 00:14:36,670 Итак, что я хочу показать вам, ребята здесь это изображение. 260 00:14:36,670 --> 00:14:41,630 Так, это, своего рода, будет то, что Вы будете видеть внутри любого 261 00:14:41,630 --> 00:14:42,890 Xcode файл. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 Собственно, почему бы нам просто не взять момент, чтобы, как бы, возьми дюйма 264 00:14:51,430 --> 00:14:53,470 >> Так, эта книга - 265 00:14:53,470 --> 00:14:55,880 вот объект, мы имеем дело с. 266 00:14:55,880 --> 00:14:59,680 И потом, это, очевидно, будет унаследовал от другого объекта, но 267 00:14:59,680 --> 00:15:01,810 Вы не должны беспокоиться об этом. 268 00:15:01,810 --> 00:15:04,430 И потом, это, пожалуй, имеет некоторые переменные-члены. 269 00:15:04,430 --> 00:15:09,160 >> Важно то я хочу показать вам, это методы экземпляра, здесь. 270 00:15:09,160 --> 00:15:12,670 Так, методы экземпляра обозначаются этим знаком минус. 271 00:15:12,670 --> 00:15:15,550 А потом, как вы заметите, что мы уже начинаем видеть парадигму 272 00:15:15,550 --> 00:15:17,670 для объявления метода, не так ли? 273 00:15:17,670 --> 00:15:22,670 Возвращаемый тип, имя метода, и то тип аргумента, и 274 00:15:22,670 --> 00:15:24,660 то имя аргумента. 275 00:15:24,660 --> 00:15:29,090 И это знак минус означает, что это Метод экземпляра, что означает, что 276 00:15:29,090 --> 00:15:32,270 эти методы доступны только для объекты, которые были экземпляры. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Противопоставлять, что, методы с плюсом подписать перед ними являются класс 279 00:15:39,100 --> 00:15:43,640 методы, что означает, что вы можете позвонить эти методы, даже если у вас нет 280 00:15:43,640 --> 00:15:45,970 Объект, созданный еще. 281 00:15:45,970 --> 00:15:51,600 Таким образом, для наглядного примера, NSString является классом. 282 00:15:51,600 --> 00:15:55,850 И вы можете позвонить, например, Методы класса по NSString - 283 00:15:55,850 --> 00:15:58,660 фактический, вроде бы, слово NSString. 284 00:15:58,660 --> 00:16:02,050 >> Тем не менее, для того, чтобы использовать их методы, вы на самом деле 285 00:16:02,050 --> 00:16:03,460 нужно создать строку. 286 00:16:03,460 --> 00:16:08,980 Например, NSString звезда строка равна в кавычки, привет мир. 287 00:16:08,980 --> 00:16:10,910 И потом, вы можете использовать эти методы - 288 00:16:10,910 --> 00:16:11,990 методы экземпляра - 289 00:16:11,990 --> 00:16:14,790 на этом привет мир строки. 290 00:16:14,790 --> 00:16:17,825 Так, что разница между методы экземпляра и методы класса. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> И, мы просто покрыты эту часть. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Свойства являются Другое дело, что есть внутри объектов, в основном. 295 00:16:33,750 --> 00:16:37,530 И вы объявляете их с на ключевое слово собственности. 296 00:16:37,530 --> 00:16:39,940 Возможны следующие варианты, вот, что я объясню позже, когда 297 00:16:39,940 --> 00:16:43,110 мы идем в демо. 298 00:16:43,110 --> 00:16:43,660 Да? 299 00:16:43,660 --> 00:16:43,950 Привет. 300 00:16:43,950 --> 00:16:45,440 >> АУДИТОРИЯ: Не могли бы вы увеличить, пожалуйста? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: О да. 302 00:16:46,130 --> 00:16:46,560 Извините. 303 00:16:46,560 --> 00:16:49,140 >> Зала: Спасибо. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: Это должно быть намного лучше. 305 00:16:50,005 --> 00:16:51,240 >> АУДИТОРИЯ: Да. 306 00:16:51,240 --> 00:16:53,940 Спасибо. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: Да, пожалуйста, напомните мне, если Я забываю, чтобы увеличить или уменьшить масштаб. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Так вот, это все, что я хотел чтобы показать вам, для - 310 00:17:03,570 --> 00:17:05,970 эй, это много - 311 00:17:05,970 --> 00:17:06,790 для этого веб-сайта. 312 00:17:06,790 --> 00:17:12,210 Итак, давайте вернемся к нашим слайдов. 313 00:17:12,210 --> 00:17:17,819 >> На самом деле, теперь давайте воспользоваться моментом погрузиться в демо. 314 00:17:17,819 --> 00:17:25,490 Так, мы начнем с новый Xcode проект. 315 00:17:25,490 --> 00:17:33,040 Так что, если вы будете открывать Xcode на всех ваши машины, он должен принять вам некоторые 316 00:17:33,040 --> 00:17:36,720 страницы, где он говорит, вроде бы, либо открыть до существующий проект или новый 317 00:17:36,720 --> 00:17:39,230 Проект, и вы должны нажмите новый проект. 318 00:17:39,230 --> 00:17:41,477 И потом, он должен принять Вы к этому экрану. 319 00:17:41,477 --> 00:17:41,593 Да? 320 00:17:41,593 --> 00:17:44,279 >> АУДИТОРИЯ: Если мы не имеем Mac, мы только отчасти охладить? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: Или посмотрите на с кем-то, да. 322 00:17:46,870 --> 00:17:47,740 Да. 323 00:17:47,740 --> 00:17:50,660 Вы можете расслабиться, тоже. 324 00:17:50,660 --> 00:17:51,570 ОК. 325 00:17:51,570 --> 00:17:55,410 >> Итак, что мы собираемся делать в первую очередь, в настоящее время, является, на самом деле, мы собираемся сделать 326 00:17:55,410 --> 00:17:56,600 Одно приложение вид. 327 00:17:56,600 --> 00:18:01,340 Так что, если вы заметите, что это здорово о Xcode и поддержки Apple, для 328 00:18:01,340 --> 00:18:05,690 разработчики в том, что у вас есть много шаблоны для работы с уже. 329 00:18:05,690 --> 00:18:09,210 Можно, например, сделать мастер-деталь приложение. 330 00:18:09,210 --> 00:18:10,920 Вы можете сделать игру - 331 00:18:10,920 --> 00:18:13,860 а на самом деле, я не буду вдаваться в играх, потому игры это совсем другая история 332 00:18:13,860 --> 00:18:15,320 для развития IOS. 333 00:18:15,320 --> 00:18:18,930 И они своего рода отделить, так что я не буду вдаваться в это. 334 00:18:18,930 --> 00:18:22,580 >> Тогда, вы, основанную на страницах приложений. 335 00:18:22,580 --> 00:18:24,010 У вас есть приложение вкладку - 336 00:18:24,010 --> 00:18:29,350 так нравится, например, Банк Америки вероятно, имеет, как, с вкладками приложение. 337 00:18:29,350 --> 00:18:32,140 Это те, где у вас есть кнопки в нижней части. 338 00:18:32,140 --> 00:18:34,750 И потом, у вас есть Комплект игру Sprite. 339 00:18:34,750 --> 00:18:38,670 >> Или вы можете работать с нуля, что это то, что мы сделаем позже. 340 00:18:38,670 --> 00:18:42,470 Но давайте, во-первых, начать с одно приложение вид. 341 00:18:42,470 --> 00:18:48,590 Тогда, это будет попросить название продукта, и мы можем просто сделать тест. 342 00:18:48,590 --> 00:18:50,190 Название организации - 343 00:18:50,190 --> 00:18:54,140 так, название организации, Идентификатор компании - 344 00:18:54,140 --> 00:18:58,100 тех, важны, если вы собираетесь разместить приложение на App Store. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Кроме этого, ваш код будет запустить абсолютно нормально без этого. 347 00:19:05,116 --> 00:19:09,940 >> Это будет важно, если вам хотите - так, по сути, как, положить ваше приложение 348 00:19:09,940 --> 00:19:14,080 на ваш телефон или что-то, и тест это, вы знаете, в реальной жизни - 349 00:19:14,080 --> 00:19:15,360 это будет важно. 350 00:19:15,360 --> 00:19:20,110 Это приводит к обычно ассоциируется с своего рода аккаунта разработчика 351 00:19:20,110 --> 00:19:20,970 с Apple. 352 00:19:20,970 --> 00:19:24,740 >> Так вот, я знаю, наверное, многие из вас не будет иметь никаких счетов для разработчиков. 353 00:19:24,740 --> 00:19:26,460 Я знаю, что университет имеет один. 354 00:19:26,460 --> 00:19:27,630 Я думаю, что CS имеет один. 355 00:19:27,630 --> 00:19:32,770 Но, вы можете написать мне, и я постараюсь , чтобы понять это для вас. 356 00:19:32,770 --> 00:19:38,210 Но сейчас, я просто положить в некоторые заполнители вещи здесь. 357 00:19:38,210 --> 00:19:41,250 >> И вы можете, конечно, здесь, выберите хотите ли вы, чтобы это было исключительно в 358 00:19:41,250 --> 00:19:44,410 iPhone, в IPad, или оба - 359 00:19:44,410 --> 00:19:46,630 универсальное применение. 360 00:19:46,630 --> 00:19:56,170 Так, на данный момент, давайте сделаем универсальными, просто чтобы увидеть обе стороны платформы. 361 00:19:56,170 --> 00:19:57,120 >> Давайте посмотрим. 362 00:19:57,120 --> 00:20:01,510 Так, прямо сейчас, я иду, чтобы спасти это в какой-то папке. 363 00:20:01,510 --> 00:20:04,500 Не важно, где - вам всегда можно переместить его позже. 364 00:20:04,500 --> 00:20:09,380 И, сейчас, мы принесли к нашей Xcode проекта. 365 00:20:09,380 --> 00:20:12,890 Я бы не беспокоиться обо всем этом. 366 00:20:12,890 --> 00:20:17,510 Я хотел бы предложить не касаясь любой из не это, если вы точно знаете, что 367 00:20:17,510 --> 00:20:18,260 вы делаете. 368 00:20:18,260 --> 00:20:21,750 Так, все это, просто игнорировать по большей части. 369 00:20:21,750 --> 00:20:26,940 Вам не нужно будет трогать, и если вы вы портите некоторые вещи здесь, это 370 00:20:26,940 --> 00:20:28,600 становится немного сложнее. 371 00:20:28,600 --> 00:20:32,480 >> Так, почему бы нам не изучить файлы на 372 00:20:32,480 --> 00:20:34,700 левая сторона в нашем навигаторе. 373 00:20:34,700 --> 00:20:37,060 Здесь, у нас есть AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 У нас есть AppDelegate.m Так что, как вы будете уведомление, мы заголовочные файлы, которые 375 00:20:43,430 --> 00:20:45,720 конец точка ч, и у нас есть реализация - 376 00:20:45,720 --> 00:20:46,970 на самом деле, позвольте мне увеличения масштаба 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 ОК. 379 00:20:57,060 --> 00:20:59,940 Позвольте мне увеличения масштаба 380 00:20:59,940 --> 00:21:05,810 >> Право, так вы заголовочные файлы и у вас есть файлы реализации. 381 00:21:05,810 --> 00:21:07,060 На самом деле - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 ОК. 384 00:21:09,240 --> 00:21:11,800 Это немного странно, но терпеть меня. 385 00:21:11,800 --> 00:21:16,140 Тогда, потому что мы выбрали один вид Приложение, мы собираемся быть 386 00:21:16,140 --> 00:21:17,340 работе с раскадровки. 387 00:21:17,340 --> 00:21:22,140 >> Так, раскадровка является то, что Apple, придумал, чтобы действительно помочь 388 00:21:22,140 --> 00:21:26,550 разработчики быстро создавать прототипы их приложения. 389 00:21:26,550 --> 00:21:29,410 Таким образом, это где вы можете создать приложение, не написав 390 00:21:29,410 --> 00:21:31,710 одна строка кода. 391 00:21:31,710 --> 00:21:35,390 Однако, на наш одном приложении зрения, мы, конечно, есть 392 00:21:35,390 --> 00:21:41,270 подать на наш взгляд, что является контроллером вид. 393 00:21:41,270 --> 00:21:45,150 Итак, мы имеем заголовок и Файл реализации, здесь. 394 00:21:45,150 --> 00:21:52,350 >> И, я собираюсь, чтобы уменьшить масштаб сейчас, потому что мы должны работать в раскадровке. 395 00:21:52,350 --> 00:21:55,190 Итак, вот наш взгляд. 396 00:21:55,190 --> 00:22:00,120 Если мы, просто, запустить приложение прямо сейчас, существует не так много интересной происходит. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Таким образом, вы увидите это белый экран. 399 00:22:05,040 --> 00:22:06,110 ОК? 400 00:22:06,110 --> 00:22:14,010 >> И, в нашей области коммунального, мы можем добавить куча разных вещей к нему. 401 00:22:14,010 --> 00:22:19,290 Так что, когда вы имеете дело с экранов в МО, вид контроллеры 402 00:22:19,290 --> 00:22:23,150 объекты, которые инкапсулируют, рода, ваши мнения. 403 00:22:23,150 --> 00:22:26,980 Так, контроллер вид всегда имеет свойство вид. 404 00:22:26,980 --> 00:22:29,610 И эта точка зрения, как правило, содержит, Вы знаете, что вы 405 00:22:29,610 --> 00:22:30,810 хотят видеть на экране. 406 00:22:30,810 --> 00:22:39,210 >> Так, хорошо, давайте просто начать, поставив, пожалуй, может быть, этикетка. 407 00:22:39,210 --> 00:22:41,450 Итак, давайте поставить метку на там - 408 00:22:41,450 --> 00:22:44,080 придерживаться его в середине. 409 00:22:44,080 --> 00:22:49,560 Так, теперь, когда я нажал на этикетке, я может перейти в инспекторе свойств 410 00:22:49,560 --> 00:22:51,510 и начать изменять его значение. 411 00:22:51,510 --> 00:22:55,040 Давайте назовем это CS50 Цвета. 412 00:22:55,040 --> 00:22:58,220 >> И, я могу также изменить шрифт. 413 00:22:58,220 --> 00:23:02,630 Таким образом, вместо того, чтобы делать систему, которая является по умолчанию, мы можем сделать пользовательский один. 414 00:23:02,630 --> 00:23:03,770 Мы можем изменить - 415 00:23:03,770 --> 00:23:06,453 Вы знаете, ультралайт, сделать его 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 И потом, мы можем сделать наш ящик больше. 418 00:23:11,370 --> 00:23:14,410 >> АУДИТОРИЯ: Как вы думаете, можно увеличить в чуть более, может быть? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: Да? 420 00:23:14,810 --> 00:23:16,196 ОК. 421 00:23:16,196 --> 00:23:17,450 >> АУДИТОРИЯ: Просто нажмите на него? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: Давайте посмотрим. 423 00:23:19,020 --> 00:23:20,382 Это работает? 424 00:23:20,382 --> 00:23:22,270 >> АУДИТОРИЯ: Просто передать Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: Конечно. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 ОК. 428 00:23:25,940 --> 00:23:26,275 Потрясающе. 429 00:23:26,275 --> 00:23:27,072 >> АУДИТОРИЯ: На этикетке под? 430 00:23:27,072 --> 00:23:28,920 На этикетке? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: Что это? 432 00:23:29,480 --> 00:23:32,050 >> АУДИТОРИЯ: Что выпадающий был лейбл под? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: Итак, вопрос был, что раскрывающийся был лейбл под? 434 00:23:35,170 --> 00:23:37,260 Следует, просто, быть под здесь. 435 00:23:37,260 --> 00:23:39,330 Я предполагаю, что это куб вещь. 436 00:23:39,330 --> 00:23:40,910 Но, как правило, это значение по умолчанию - 437 00:23:40,910 --> 00:23:43,250 Я просто собираюсь здесь пока я не найти лейбл. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Да. 440 00:23:47,730 --> 00:23:48,950 >> Так что теперь, у нас есть этикетку. 441 00:23:48,950 --> 00:23:51,040 Давайте его в центр. 442 00:23:51,040 --> 00:23:56,410 И Xcode дает нам руководящие принципы для центрирования объектов. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Итак, теперь давайте запустим наш код еще раз. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Там мы идем. 447 00:24:08,800 --> 00:24:10,310 Итак, мы имеем CS50 Цвета. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 А теперь, давайте поставить кнопку там, не так ли? 450 00:24:15,420 --> 00:24:17,480 Потому что мы хотим, чтобы сделать это интерактивное. 451 00:24:17,480 --> 00:24:19,410 Итак, давайте поставить кнопку здесь. 452 00:24:19,410 --> 00:24:39,020 И мы будем называть эту кнопку "кран здесь продолжить ". Мы в центре его, также 453 00:24:39,020 --> 00:24:39,990 На самом деле, это уже по центру. 454 00:24:39,990 --> 00:24:40,630 Да. 455 00:24:40,630 --> 00:24:43,130 >> Итак, теперь у нас есть кнопка. 456 00:24:43,130 --> 00:24:53,000 И если мы запустим это снова, мы собираемся чтобы иметь хорошую маленькую кнопку здесь. 457 00:24:53,000 --> 00:24:56,520 И я могу нажать ее, но она не делает ничего, потому что мы еще не сделали 458 00:24:56,520 --> 00:24:58,500 ничего с помощью кнопки пока. 459 00:24:58,500 --> 00:25:01,740 >> Так, давайте создадим еще один вид, не так ли? 460 00:25:01,740 --> 00:25:04,160 Так, скажем, я хочу нажмите что кнопка, и я хочу 461 00:25:04,160 --> 00:25:05,730 перейдите на другую страницу - 462 00:25:05,730 --> 00:25:06,820 другое мнение. 463 00:25:06,820 --> 00:25:14,440 То, что я собираюсь сделать, это, я могу создать контроллер вид, не так ли? 464 00:25:14,440 --> 00:25:19,690 Теперь я буду нажмите на моей кнопки, а затем, главное, что я собираюсь 465 00:25:19,690 --> 00:25:20,910 нажмите - или - 466 00:25:20,910 --> 00:25:23,660 да, нажмите управления на клавиатуре. 467 00:25:23,660 --> 00:25:24,880 Контроль. 468 00:25:24,880 --> 00:25:27,005 Нажмите на кнопку, а затем перетащите. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Итак, помните удерживать клавишу управления. 471 00:25:33,550 --> 00:25:35,160 Давайте сделаем это снова. 472 00:25:35,160 --> 00:25:40,930 Так, провести контроль, нажмите и перетащите к тому, что вы хотите сделать. 473 00:25:40,930 --> 00:25:41,520 ОК. 474 00:25:41,520 --> 00:25:43,610 >> А теперь, у меня есть несколько вариантов здесь. 475 00:25:43,610 --> 00:25:47,900 Я могу либо толкать, или я могу сделать модальный, или я могу сделать обычай. 476 00:25:47,900 --> 00:25:50,900 Нажмите только если у вас есть навигация контроллер. 477 00:25:50,900 --> 00:25:54,270 Прямо сейчас, наш самый первый вид Контроллер не находится внутри любого 478 00:25:54,270 --> 00:25:55,610 навигация контроллер. 479 00:25:55,610 --> 00:25:59,500 Так, контроллер навигации является одним что дает обратную кнопку на 480 00:25:59,500 --> 00:26:03,910 приложение IOS, где у вас есть, вы знаете, что сверху, вроде, толстый прут - 481 00:26:03,910 --> 00:26:06,480 где вы можете вернуться, или вперед, и так далее. 482 00:26:06,480 --> 00:26:07,740 Прямо сейчас, я не имею, что. 483 00:26:07,740 --> 00:26:11,050 И так, вот почему я не могу сделать толчок. 484 00:26:11,050 --> 00:26:12,480 >> Так, я нажал на толчке случайно, здесь. 485 00:26:12,480 --> 00:26:16,480 А на самом деле, давайте запустим код, и он должен потерпеть крах на меня. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Только если я нажимаю кнопку хотя, так - 488 00:26:22,960 --> 00:26:23,420 Право. 489 00:26:23,420 --> 00:26:26,480 Таким образом, это плохо. 490 00:26:26,480 --> 00:26:31,330 >> И, как вы можете видеть, здесь, мы есть сообщение об ошибке. 491 00:26:31,330 --> 00:26:35,460 Так, "Push непосредственно переходит можно использовать только тогда, когда Контроллер источник управляется 492 00:26:35,460 --> 00:26:40,700 экземпляр пользовательского интерфейса навигации контроллера ". Таким образом, потому что это не было внутри 493 00:26:40,700 --> 00:26:44,030 навигационный контроллер, Я не мог сделать этого. 494 00:26:44,030 --> 00:26:48,782 >> Так, прямо сейчас, я возвращаюсь к Папка, возвращаясь к раскадровке. 495 00:26:48,782 --> 00:26:51,680 >> АУДИТОРИЯ: Что навигации контроллер, снова? 496 00:26:51,680 --> 00:26:55,260 >> RHED SHI: Итак, сейчас я вам покажу. 497 00:26:55,260 --> 00:26:56,200 Давайте посмотрим. 498 00:26:56,200 --> 00:27:00,510 Так, я собираюсь нажать на этой точке зрения контроллер, а потом я пойду 499 00:27:00,510 --> 00:27:03,920 до продукта - 500 00:27:03,920 --> 00:27:06,240 на самом деле, нет, извините - редактор. 501 00:27:06,240 --> 00:27:08,360 И я собираюсь пойти в - 502 00:27:08,360 --> 00:27:09,350 на самом деле, я нажмите на нее? 503 00:27:09,350 --> 00:27:10,070 Нет. 504 00:27:10,070 --> 00:27:11,080 Там мы идем. 505 00:27:11,080 --> 00:27:16,270 Я собираюсь подняться в редакторе, спуститься встраивать в, а затем навигации 506 00:27:16,270 --> 00:27:17,520 контроллер. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> ОК. 509 00:27:20,720 --> 00:27:27,750 И, мой рабочее пространство выглядит действительно грязный, так что давайте очистить это. 510 00:27:27,750 --> 00:27:29,000 Таким образом, все это раскадровка. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 И таким образом - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 ОК, остановить - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Я могу быстро построить что-то как это. 517 00:27:50,860 --> 00:27:53,020 И потом, теперь я могу вернуться, вы знаете? 518 00:27:53,020 --> 00:27:55,730 >> Но это скучно, не так ли? 519 00:27:55,730 --> 00:28:03,020 Итак, что я хочу сделать, это, я не хочу сделать, просто, вид 520 00:28:03,020 --> 00:28:03,870 контроллер. 521 00:28:03,870 --> 00:28:07,720 Скажем, я хотел на самом деле сделать представление таблицы контроллер, так что я могу поставить в 522 00:28:07,720 --> 00:28:12,110 некоторые хорошие цвета, в таблицу. 523 00:28:12,110 --> 00:28:16,210 >> Так, теперь, когда я положил на мой взгляд таблицы Контроллер, мне нужно подключить его обратно 524 00:28:16,210 --> 00:28:18,560 от этой кнопки, чтобы вид контроллера. 525 00:28:18,560 --> 00:28:21,780 Поэтому мне нужно, чтобы сделать мою контроль, Кликните, перетащить вещь снова. 526 00:28:21,780 --> 00:28:27,318 И теперь я могу сделать толчок, потому что я вставлять это внутри контроллера навигации. 527 00:28:27,318 --> 00:28:32,210 >> АУДИТОРИЯ: Навигация контроллер просто позволяет перейти с места на место? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: Да. 529 00:28:33,540 --> 00:28:38,670 Так, более технически, это объект, где - 530 00:28:38,670 --> 00:28:43,150 Таким образом, внутри навигации объект контроллера, это 531 00:28:43,150 --> 00:28:44,780 отслеживает массива. 532 00:28:44,780 --> 00:28:48,300 И, что массив содержит все последующие смотреть контроллеров. 533 00:28:48,300 --> 00:28:51,560 Вот почему, когда вы нажимаете назад, восходит к предыдущей странице. 534 00:28:51,560 --> 00:28:55,260 Поскольку контроллер навигации объект или код, который заботится о 535 00:28:55,260 --> 00:28:58,890 этот объект, имеет массив, который держит отслеживать этих контроллеров отображения и 536 00:28:58,890 --> 00:29:01,870 может, вы знаете, DQ мнение контроллер и вернуть вам 537 00:29:01,870 --> 00:29:02,750 предыдущий. 538 00:29:02,750 --> 00:29:05,200 >> Таким образом, это технические вещи, но - 539 00:29:05,200 --> 00:29:07,505 и я покажу вам позже в Код, если у нас есть время. 540 00:29:07,505 --> 00:29:10,270 Я вроде уходит на время, но - 541 00:29:10,270 --> 00:29:15,610 >> Так, с точки зрения таблицы, что мы можем сделать, это - 542 00:29:15,610 --> 00:29:18,440 Это, как правило автоматически устанавливается в динамический Prototype - 543 00:29:18,440 --> 00:29:20,640 мы собираемся сделать это статичные клетки, в противном случае мы собираемся 544 00:29:20,640 --> 00:29:22,920 столкнуться с некоторыми проблемами. 545 00:29:22,920 --> 00:29:28,470 >> А потом, скажем, я собираюсь иметь один раздел. 546 00:29:28,470 --> 00:29:31,000 Так, разделы, как - 547 00:29:31,000 --> 00:29:35,160 если вы еще не видели музыкальный приложение, когда у вас есть художники, разделы бы 548 00:29:35,160 --> 00:29:37,830 быть через Z's - 549 00:29:37,830 --> 00:29:38,780 буквы - 550 00:29:38,780 --> 00:29:42,600 и потом, вы знаете, человек Строки были бы имена исполнителей. 551 00:29:42,600 --> 00:29:47,460 И так, что это круто здесь, в том, что я могу доступ ко всем объектам внутри 552 00:29:47,460 --> 00:29:50,430 моей раскадровки через это В раскрывающемся меню тоже. 553 00:29:50,430 --> 00:29:56,600 >> Так, я собираюсь нажать на моей секции, и я хочу, вы знаете, может быть, пять строк. 554 00:29:56,600 --> 00:30:00,770 А потом, внутри каждой строки, Я хочу поставить метку. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 И я буду называть эту Blue. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 И потом, я хочу поставить точку зрения пользовательского интерфейса, вы знаю, может быть, для, как, коробочку. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Так что я могу показать людям, предварительный цвета. 561 00:30:28,710 --> 00:30:34,150 И я вернусь к собственности и изменить этот цвет, чтобы, ну, я не 562 00:30:34,150 --> 00:30:35,510 Знаете, это одно. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> А потом, обратите внимание также, здесь, когда у меня есть аксессуары, у меня может быть много 565 00:30:43,150 --> 00:30:46,160 из различных аксессуаров что вы обычно видите. 566 00:30:46,160 --> 00:30:55,250 Индикатор раскрытие, деталь, или галочка, или просто деталь. 567 00:30:55,250 --> 00:30:59,080 Так, может быть, мы можем сделать, как, раскрытие индикатор, например. 568 00:30:59,080 --> 00:31:03,540 >> И потом, почему бы нам не взять эти, копию вставьте их, и положить их в 569 00:31:03,540 --> 00:31:06,740 следующая строка таблицы. 570 00:31:06,740 --> 00:31:08,115 Таким образом, мы можем назвать это желтый. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 И я, возможно, придется расширить это. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Давайте сделаем это желтый. 575 00:31:17,290 --> 00:31:20,610 И таким образом, мы можем скопировать вставьте наш путь вниз. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Что это было? 578 00:31:25,370 --> 00:31:26,620 Фиолетовый. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Итак, это все типичный CS50 Цвета, которые вы видели в классе - 581 00:31:34,740 --> 00:31:37,160 на самом деле, жаль - 582 00:31:37,160 --> 00:31:38,410 или на веб-сайте. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Надеюсь, вы, ребята, можете посмотреть то, что я здесь делаю. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 ОК. 587 00:31:57,890 --> 00:31:58,490 Последнее один. 588 00:31:58,490 --> 00:32:02,040 >> АУДИТОРИЯ: Как вы добавить строка изначально? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: Итак, вопрос был, как я добавить строку изначально? 590 00:32:04,740 --> 00:32:07,500 Я пошел в этот раздел таблицы - или однако я могу 591 00:32:07,500 --> 00:32:09,200 выберите раздел таблицы - 592 00:32:09,200 --> 00:32:11,250 а затем, вот, я обновил количество строк. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> И, позвольте мне надеяться, что это работает. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 ОК. 597 00:32:31,480 --> 00:32:32,870 Давайте посмотрим, если это работает. 598 00:32:32,870 --> 00:32:34,000 О, прекрасно, удивительным. 599 00:32:34,000 --> 00:32:35,300 ОК. 600 00:32:35,300 --> 00:32:40,330 В то время как я строил мой демо, некоторые вещи не были расположены, так что, спасибо за 601 00:32:40,330 --> 00:32:42,510 аплодисменты. 602 00:32:42,510 --> 00:32:42,920 >> Да. 603 00:32:42,920 --> 00:32:44,770 Так, давайте посмотрим. 604 00:32:44,770 --> 00:32:47,550 Мы сделаем это девять раз, чтобы сделать все - или на самом деле, давайте просто 605 00:32:47,550 --> 00:32:51,420 превратить все это в раскрытии показатели. 606 00:32:51,420 --> 00:32:55,790 И потом, что я хочу показать вам, тоже было то, как я могу взять каждый из тех, 607 00:32:55,790 --> 00:32:59,230 строки таблицы и имеют они взаимодействуют - 608 00:32:59,230 --> 00:33:00,150 о. 609 00:33:00,150 --> 00:33:01,400 Нет. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> О. 612 00:33:06,030 --> 00:33:07,230 Кроме того, я хочу показать вам - 613 00:33:07,230 --> 00:33:13,080 здесь, я могу поставить название моего навигационный контроллер, не так ли? 614 00:33:13,080 --> 00:33:17,090 Так на самом деле, вы заметите, как только я встроенный этот взгляд контроллер внутри 615 00:33:17,090 --> 00:33:22,010 контроллера навигации, мы видим, это навигационная панель в верхней части нашего 616 00:33:22,010 --> 00:33:25,340 Раскадровка представление контроллера представления. 617 00:33:25,340 --> 00:33:29,270 Так вот, это дает нам, как, визуальный, рода, путеводитель по нашей видимого экрана. 618 00:33:29,270 --> 00:33:34,360 Это, очевидно, будет быть навигационная панель. 619 00:33:34,360 --> 00:33:40,950 >> И то, что я хочу сделать быстро, Теперь, ставится в другой - 620 00:33:40,950 --> 00:33:45,880 так что это представление таблицы контроллер я сделал по принимая один из них и перетащив его 621 00:33:45,880 --> 00:33:49,800 здесь, и это то, что позволил мне быстро, на самом деле, создать представление таблицы 622 00:33:49,800 --> 00:33:50,850 контроллер. 623 00:33:50,850 --> 00:33:54,100 Если у нас есть время, хотя, вы будете видеть, что, программно, это 624 00:33:54,100 --> 00:33:57,660 немного сложнее создать таблицу вид контроллера, потому что 625 00:33:57,660 --> 00:34:02,520 несколько методов, которые являются для этого вам необходимо, своего рода, написать 626 00:34:02,520 --> 00:34:07,130 в порядке для представления таблицы контроллер, который будет отображаться правильно. 627 00:34:07,130 --> 00:34:15,340 >> Тем не менее, я просто хочу показать вам, сейчас, пример того, где, если я возьму это, 628 00:34:15,340 --> 00:34:15,920 например - 629 00:34:15,920 --> 00:34:18,290 Я положил в другой контроллер представления. 630 00:34:18,290 --> 00:34:27,320 А теперь, допустим, я хочу, чтобы управлять альт мой самый первый синий 631 00:34:27,320 --> 00:34:28,980 строка таблицы, чтобы здесь. 632 00:34:28,980 --> 00:34:31,070 И я хочу, чтобы вызвать эту Blue. 633 00:34:31,070 --> 00:34:32,570 А потом - 634 00:34:32,570 --> 00:34:34,159 давайте посмотрим. 635 00:34:34,159 --> 00:34:41,050 Я на вид, и я могу изменить фон на синий. 636 00:34:41,050 --> 00:34:45,945 >> И так, заметьте, здесь, это выпадающий Меню также дает иерархию все 637 00:34:45,945 --> 00:34:47,040 из этих объектов. 638 00:34:47,040 --> 00:34:50,530 Так Важно отметить, здесь, является то, что все эти вещи, вот - 639 00:34:50,530 --> 00:34:54,330 эта точка зрения таблице контроллер, таблица вид, вид таблица раздел, в виде таблицы 640 00:34:54,330 --> 00:34:57,169 клетка - все это объекты, в коде. 641 00:34:57,169 --> 00:35:03,752 Итак, вы знаете, этикетка сейчас находится под представление содержимого, и так далее. 642 00:35:03,752 --> 00:35:05,020 Так далее и тому подобное. 643 00:35:05,020 --> 00:35:08,765 >> Так что, если мы запустим этот код, мы должны увидеть что-то - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 давайте посмотрим, если это - да. 646 00:35:17,870 --> 00:35:18,670 Так, там мы идем. 647 00:35:18,670 --> 00:35:22,120 Но, если мы не делаем этого, ни один из эти другие вещи работать. 648 00:35:22,120 --> 00:35:22,500 Не так ли? 649 00:35:22,500 --> 00:35:23,800 Таким образом, только на этот раз работает. 650 00:35:23,800 --> 00:35:29,100 И, ради времени, я не буду идти в, вы знаете, положив 651 00:35:29,100 --> 00:35:29,770 вниз других. 652 00:35:29,770 --> 00:35:32,020 И это конец, рода, раскадровка - 653 00:35:32,020 --> 00:35:33,400 то, что я хотел показать Вы для раскадровки. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> И, у меня есть удался пример, на самом деле, прямо здесь. 656 00:35:43,490 --> 00:35:48,090 Таким образом, это раскадровка что я сделал ранее. 657 00:35:48,090 --> 00:35:52,740 Так что, как видите, это было мой навигации контроллер. 658 00:35:52,740 --> 00:35:57,040 Тогда я впервые контроллер представления, Затем у меня был свой табличного представления контроллер, 659 00:35:57,040 --> 00:35:58,980 а потом мне пришлось все это - 660 00:35:58,980 --> 00:36:01,180 так ранее, я делал что-то совсем другое. 661 00:36:01,180 --> 00:36:04,450 Так, извините эти вещи. 662 00:36:04,450 --> 00:36:07,930 Я, вероятно, очистить его позже до Я посылаю его к производству. 663 00:36:07,930 --> 00:36:12,800 >> Но, если мы запустим это, мы увидим что все варианты являются 664 00:36:12,800 --> 00:36:14,050 в нашем распоряжении. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Только я не делал фоны эти цвета. 667 00:36:21,320 --> 00:36:26,510 Так, хороший простое приложение. 668 00:36:26,510 --> 00:36:28,340 >> Теперь, давайте попробуем решить это программно. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 ОК. 671 00:36:32,130 --> 00:36:37,570 Таким образом, чтобы сделать это, мы только собираемся чтобы начать новый проект Xcode. 672 00:36:37,570 --> 00:36:41,920 Мы будем делать это пустая приложение теперь, потому что мы не хотим иметь 673 00:36:41,920 --> 00:36:42,380 Раскадровка. 674 00:36:42,380 --> 00:36:46,590 Так вот, я просто ограничивая себя не использовать любой из раскадровки, а 675 00:36:46,590 --> 00:36:49,170 пустой приложение не будет дайте мне раскадровки. 676 00:36:49,170 --> 00:36:52,256 Это просто, чтобы предотвратить я от обмана. 677 00:36:52,256 --> 00:36:54,428 Давайте посмотрим. 678 00:36:54,428 --> 00:36:55,360 Подождите. 679 00:36:55,360 --> 00:36:55,960 Разве я - 680 00:36:55,960 --> 00:36:56,448 Да. 681 00:36:56,448 --> 00:36:57,698 ОК. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> Верно. 684 00:37:09,180 --> 00:37:16,790 Итак, вот, мы остались с не что иное, код. 685 00:37:16,790 --> 00:37:19,460 Итак, позвольте мне переместить это окно чуть более. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Верно. 688 00:37:22,260 --> 00:37:28,160 Как вы можете видеть здесь, только файлы нам дают являются AppDelegate.h и точка 689 00:37:28,160 --> 00:37:30,500 м, и у нас нет раскадровку больше. 690 00:37:30,500 --> 00:37:39,580 >> Так что, если мы запустим это, мы по-прежнему будем добраться до белого экрана, слава Богу. 691 00:37:39,580 --> 00:37:42,280 ОК - белый экран, но ничего больше. 692 00:37:42,280 --> 00:37:45,260 И, вот важная часть. 693 00:37:45,260 --> 00:37:47,810 Это где действие происходит. 694 00:37:47,810 --> 00:37:51,410 В предыдущих версиях, есть не обычно нет кода здесь, но 695 00:37:51,410 --> 00:37:55,600 Раскадровка по сути обеспечивает код для этой части. 696 00:37:55,600 --> 00:37:57,470 Я не буду вдаваться в подробности о том, как. 697 00:37:57,470 --> 00:38:02,890 >> И то, что мы хотим сейчас сделать, это, мы хотим идти сюда, и этот мало места 698 00:38:02,890 --> 00:38:05,050 начинает создавать наше приложение еще раз. 699 00:38:05,050 --> 00:38:06,092 Так что - 700 00:38:06,092 --> 00:38:06,318 да? 701 00:38:06,318 --> 00:38:07,450 >> АУДИТОРИЯ: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> RHED SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Да, конечно. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 ОК. 706 00:38:14,520 --> 00:38:17,380 Я буду печатать, так что это не должно Независимо от того слишком много. 707 00:38:17,380 --> 00:38:17,940 ОК. 708 00:38:17,940 --> 00:38:22,720 >> Так, во-первых, помните, что мы хотели создать навигационный контроллер, не так ли? 709 00:38:22,720 --> 00:38:27,090 А также, как вы можете видеть здесь, Xcode делает действительно большую работу по 710 00:38:27,090 --> 00:38:28,070 само-заполнение. 711 00:38:28,070 --> 00:38:31,650 Так что, как вы заметите, имена все много дольше, чем 712 00:38:31,650 --> 00:38:33,910 обычно, но Xcode заполняет его для вас. 713 00:38:33,910 --> 00:38:35,710 Так что я могу просто нажмите Enter. 714 00:38:35,710 --> 00:38:40,180 >> Итак, я хочу, чтобы создать навигацию UI Указатель контроллер, и я могу назвать это 715 00:38:40,180 --> 00:38:41,430 NavigationController. 716 00:38:41,430 --> 00:38:43,040 717 00:38:43,040 --> 00:38:44,470 Теперь, что же мне теперь делать? 718 00:38:44,470 --> 00:38:49,510 После этого знака равенства, мне нужно, во-первых, создать его в памяти. 719 00:38:49,510 --> 00:38:53,790 Итак, я собираюсь сделать NavigationController Alloc - 720 00:38:53,790 --> 00:38:56,640 так, это похоже на таНос, что вы, ребята, используемые в C - 721 00:38:56,640 --> 00:38:58,400 а затем, я собираюсь инициализации его. 722 00:38:58,400 --> 00:39:03,670 >> Таким образом, это действительно важно, чтобы любая Объект, вы создаете, вы хотите 723 00:39:03,670 --> 00:39:04,940 Alloc и инициализации его. 724 00:39:04,940 --> 00:39:08,600 Это собирается создать и instantialize его в памяти, и 725 00:39:08,600 --> 00:39:10,480 Теперь вы можете использовать его. 726 00:39:10,480 --> 00:39:10,780 Все в порядке? 727 00:39:10,780 --> 00:39:14,360 Если вы не сделаете это, ваш объект делает не существует, и вы будете работать в связке 728 00:39:14,360 --> 00:39:17,290 проблем. 729 00:39:17,290 --> 00:39:20,250 >> И потом, я хочу создать контроллер вид, не так ли? 730 00:39:20,250 --> 00:39:25,580 Итак, я хочу, чтобы создать UIViewController звезда - 731 00:39:25,580 --> 00:39:29,620 так, все это указатель в Objective-C, и я собираюсь сделать 732 00:39:29,620 --> 00:39:31,600 нечто подобное, здесь - 733 00:39:31,600 --> 00:39:32,850 Alloc, инициализации. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 ОК. 736 00:39:40,150 --> 00:39:43,450 >> А потом, что я собираюсь сделать, это, я собирается - так, помню, когда мы сделали 737 00:39:43,450 --> 00:39:45,360 код для вставки в навигационный контроллер? 738 00:39:45,360 --> 00:39:46,920 Это, как вы сделать это в коде. 739 00:39:46,920 --> 00:39:54,550 Вы собираетесь сделать NavigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> АУДИТОРИЯ: [неразборчиво]. 742 00:39:57,636 --> 00:39:59,030 Случится ли это для нас, или -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: О, да. 744 00:40:00,080 --> 00:40:00,550 Нет. 745 00:40:00,550 --> 00:40:02,740 Оно любит меня лучше. 746 00:40:02,740 --> 00:40:04,670 Нет, она будет работать для вас тоже. 747 00:40:04,670 --> 00:40:06,700 Итак, это все методы. 748 00:40:06,700 --> 00:40:10,400 Так pushViewController это метод, и Кроме того, более конкретно, это 749 00:40:10,400 --> 00:40:13,590 Метод экземпляра пользовательского интерфейса навигация контроллер. 750 00:40:13,590 --> 00:40:20,030 Потому что я должен был создать свой навигацию UI Контроллер звезда, и затем я 751 00:40:20,030 --> 00:40:24,510 Можно назвать это pushViewController на моем Конкретный экземпляр навигации пользовательского интерфейса 752 00:40:24,510 --> 00:40:25,010 контроллер. 753 00:40:25,010 --> 00:40:29,490 >> АУДИТОРИЯ: Есть ли у нас сделать точный слово, или это уже существуют для этого? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: Да, потому что это способ. 755 00:40:31,380 --> 00:40:32,200 Это как функции. 756 00:40:32,200 --> 00:40:33,330 Это как Printf. 757 00:40:33,330 --> 00:40:34,390 Это как зсапЕ. 758 00:40:34,390 --> 00:40:36,250 Это как strcompare. 759 00:40:36,250 --> 00:40:40,310 Кроме него знает, что вы, возможно, захотите введите, и обратите внимание, что это будет всегда 760 00:40:40,310 --> 00:40:42,740 придумать вещи, которые являются официально разрешено для вас. 761 00:40:42,740 --> 00:40:47,620 Так что, если ничего не отображается здесь, значит что-то не так. 762 00:40:47,620 --> 00:40:50,550 >> Так, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Итак, теперь, я хочу, чтобы подтолкнуть мой недавно созданный 764 00:40:52,580 --> 00:40:56,850 UIViewController, а затем, анимированные - 765 00:40:56,850 --> 00:40:57,470 возможно, нет. 766 00:40:57,470 --> 00:41:00,110 Потому что это будет первый контроллер вид. 767 00:41:00,110 --> 00:41:03,210 Я имею в виду, даже если я сделать анимированный, он, вероятно, не будет отображаться, потому 768 00:41:03,210 --> 00:41:05,050 это первый экран. 769 00:41:05,050 --> 00:41:06,540 >> И помните скобки. 770 00:41:06,540 --> 00:41:08,850 Итак, помните, как мы использовали скобки? 771 00:41:08,850 --> 00:41:11,870 И в скобках, Объект призывает метода - 772 00:41:11,870 --> 00:41:15,910 так что наш объект является навигация контроллер, и метод толчок 773 00:41:15,910 --> 00:41:17,210 вид контроллера анимированные. 774 00:41:17,210 --> 00:41:21,920 И посмотреть, как он берет в двух аргументов, и они разделены, своего рода, 775 00:41:21,920 --> 00:41:24,390 слова и двоеточие. 776 00:41:24,390 --> 00:41:28,300 Так, Objective-C пытается сделать его красивым и легко для вас, чтобы прочитать вслух - 777 00:41:28,300 --> 00:41:33,020 код - и есть его полу, рода, имеет смысла. 778 00:41:33,020 --> 00:41:37,150 >> Тем не менее, делают именно это недостаточно. 779 00:41:37,150 --> 00:41:39,780 Позвольте мне уменьшить сейчас. 780 00:41:39,780 --> 00:41:44,210 Делая только этого не достаточно, чтобы получить то, что мы добрались до ранее. 781 00:41:44,210 --> 00:41:48,580 Так вот, вы заметите, что есть на самом деле не собирается быть любой вид 782 00:41:48,580 --> 00:41:50,190 бар, здесь, не так ли? 783 00:41:50,190 --> 00:41:54,680 Там нет панели навигации, а это значит, что мы до сих пор не получили его. 784 00:41:54,680 --> 00:41:58,850 >> И мы можем проверить, что из, также, по, возможно, изменение фона 785 00:41:58,850 --> 00:42:00,460 ViewController, не так ли? 786 00:42:00,460 --> 00:42:01,710 ViewController.background-- 787 00:42:01,710 --> 00:42:03,155 788 00:42:03,155 --> 00:42:03,640 ах. 789 00:42:03,640 --> 00:42:07,690 Так, посмотреть, как ViewController не было цвет фона, хотя я 790 00:42:07,690 --> 00:42:08,780 хотел получить к нему доступ? 791 00:42:08,780 --> 00:42:14,080 И это потому, что ViewController является контейнером для вида. 792 00:42:14,080 --> 00:42:19,490 Так, он имеет вид собственности, который то есть цвет фона. 793 00:42:19,490 --> 00:42:25,510 >> И, я могу установить его, вроде нудно, , вызвав цвет 794 00:42:25,510 --> 00:42:28,130 на объекте UIColor. 795 00:42:28,130 --> 00:42:33,210 Так, уведомление здесь, redColor это метод. 796 00:42:33,210 --> 00:42:36,750 Это метод класс UIColor. 797 00:42:36,750 --> 00:42:40,820 Потому что у меня не было, чтобы создать фактический экземпляр UIColor с тем 798 00:42:40,820 --> 00:42:42,020 вызвать метод на нем. 799 00:42:42,020 --> 00:42:45,050 Я просто, просто, назвал его от типа-как имя. 800 00:42:45,050 --> 00:42:49,620 Я, вроде бы, называется его на междунар, если внутр было, как, способ к нему, например. 801 00:42:49,620 --> 00:42:52,380 >> Так вот, если мы запустим этот код, мы будем заметить, что фон 802 00:42:52,380 --> 00:42:53,540 на самом деле не красный. 803 00:42:53,540 --> 00:42:54,790 Он по-прежнему белый. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 И как мы можем обойти это, обратите внимание, как там self.window. 806 00:43:04,550 --> 00:43:08,260 То есть, как, в конечном итоге контейнер для вашего приложения. 807 00:43:08,260 --> 00:43:11,630 Это конечная вещь, которая содержит все на экране, для 808 00:43:11,630 --> 00:43:13,650 iPhone или приложение IPad. 809 00:43:13,650 --> 00:43:20,970 >> И, удобно, self.window обладает этим свойством называется 810 00:43:20,970 --> 00:43:22,650 RootViewController. 811 00:43:22,650 --> 00:43:26,480 И это будет указатель на самый первый контроллер вид внутри 812 00:43:26,480 --> 00:43:27,270 вашего приложения. 813 00:43:27,270 --> 00:43:32,000 Итак, что мы хотим сделать здесь, сейчас, установить, что равно нашей навигации 814 00:43:32,000 --> 00:43:32,710 контроллер. 815 00:43:32,710 --> 00:43:33,760 Не так ли? 816 00:43:33,760 --> 00:43:37,490 Потому что, технически, навигация Контроллер наш самый первый вид 817 00:43:37,490 --> 00:43:38,770 контроллер. 818 00:43:38,770 --> 00:43:46,160 Он отслеживает целый ряд других целях контроллеры, и мы выдвинули этот 819 00:43:46,160 --> 00:43:49,810 вид контроллера в этом массиве в контроллере навигации. 820 00:43:49,810 --> 00:43:52,640 >> Таким образом, вы не хотите, чтобы это сделать. 821 00:43:52,640 --> 00:43:54,225 Это не было бы реально помочь вам. 822 00:43:54,225 --> 00:43:58,040 Вы хотите сделать это, если вы хотели сделать навигационный контроллер, который наиболее 823 00:43:58,040 --> 00:44:01,100 из вас, вероятно, будет, потому что вы хотите, чтобы, вроде, есть своего рода, 824 00:44:01,100 --> 00:44:04,840 как, меню, чтобы вернуться или некоторые Домашняя страница, чтобы вернуться к, а не 825 00:44:04,840 --> 00:44:05,470 пустой экран. 826 00:44:05,470 --> 00:44:05,920 Да? 827 00:44:05,920 --> 00:44:11,460 >> АУДИТОРИЯ: Это неудобно для вас, чтобы увеличить на - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: Да. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Так что, да. 831 00:44:15,720 --> 00:44:22,370 Это код, и теперь давайте проверить его. 832 00:44:22,370 --> 00:44:27,920 >> Так, там мы идем. 833 00:44:27,920 --> 00:44:29,170 Магия. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Так, хорошо. 836 00:44:32,690 --> 00:44:34,420 Спасибо. 837 00:44:34,420 --> 00:44:35,000 ОК. 838 00:44:35,000 --> 00:44:38,690 Так что теперь, что мы хотим сделать, это - так, мы вроде ограничен, здесь, не так ли? 839 00:44:38,690 --> 00:44:45,130 Мы могли бы потенциально написать все Внутри этой одной функции. 840 00:44:45,130 --> 00:44:48,470 Но, это не так, как развитие IOS как правило, работает. 841 00:44:48,470 --> 00:44:53,030 >> Итак, что мы собираемся сделать, это, мы собирается создать несколько новых файлов. 842 00:44:53,030 --> 00:44:57,110 Но, в частности, мы собираемся создать новый класс Objective-C, или 843 00:44:57,110 --> 00:44:58,010 Другой задачей - 844 00:44:58,010 --> 00:45:00,700 класс и объекты являются взаимозаменяемыми здесь. 845 00:45:00,700 --> 00:45:06,460 И, вот, как я мог, потенциально, создать другой класс контроллеров U. 846 00:45:06,460 --> 00:45:12,030 >> Таким образом, это подкласс, как вы заметите, здесь, это подкласс 847 00:45:12,030 --> 00:45:15,910 Вид пользовательского интерфейса контроллера, но я могу называют это любое другое имя здесь. 848 00:45:15,910 --> 00:45:19,400 Я мог бы назвать эту CS50, я мог бы назвать эта точка зрения контроллер, я мог бы назвать 849 00:45:19,400 --> 00:45:21,640 это бла вид контроллера - 850 00:45:21,640 --> 00:45:22,400 все, что я хочу. 851 00:45:22,400 --> 00:45:24,140 Это просто название для класса. 852 00:45:24,140 --> 00:45:27,020 Тем не менее, это будет иметь важное значение потому что, по сути, что я делаю 853 00:45:27,020 --> 00:45:29,720 вот, я создаю другое название класса. 854 00:45:29,720 --> 00:45:34,140 Таким образом, это будет, как некоторые рода типа или объекта. 855 00:45:34,140 --> 00:45:35,910 Так, он должен быть немного родовым. 856 00:45:35,910 --> 00:45:37,225 Это не собирается быть очень конкретным. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> А также, я хочу указать из этих двух вариантов. 859 00:45:44,480 --> 00:45:48,430 Потому что мы делаем все внутри Код, иногда это намного проще 860 00:45:48,430 --> 00:45:53,540 довести в файле интерфейса, такие, что Я могу буквально перетаскивать, как 861 00:45:53,540 --> 00:45:54,960 мы сделали ранее с раскадровки - 862 00:45:54,960 --> 00:45:57,810 Вы знаете, этикетка, или кнопку, или то, что. 863 00:45:57,810 --> 00:46:01,950 И так, xibs файлы, которые позволяют это сделать, и вы должны подключить его 864 00:46:01,950 --> 00:46:04,310 на данный файл контроллера представления. 865 00:46:04,310 --> 00:46:06,540 >> Так, я собираюсь преднамеренно не проверить это. 866 00:46:06,540 --> 00:46:12,510 Обычно я хотел бы проверить это, и если я только сделали это на мобильный или IPad, я 867 00:46:12,510 --> 00:46:16,340 хотел бы проверить это и просто иметь один для, вы знаете, iPhone или IPad. 868 00:46:16,340 --> 00:46:19,750 Но так как я делаю универсальный, я собираюсь создать два из них позже. 869 00:46:19,750 --> 00:46:22,220 Так, я собираюсь преднамеренно снимите этот. 870 00:46:22,220 --> 00:46:23,940 >> Это также очень важно. 871 00:46:23,940 --> 00:46:27,490 Много раз, у меня было ошибок где это не было проверено. 872 00:46:27,490 --> 00:46:31,930 И так, очевидно, этот файл не, рода, как, включены или импортировать 873 00:46:31,930 --> 00:46:33,740 внутри этого теста папке. 874 00:46:33,740 --> 00:46:38,180 И так, мой код не имеет абсолютно никакого представления о существовании этого файла, и 875 00:46:38,180 --> 00:46:41,080 , который вызывает много боли и часы отладки. 876 00:46:41,080 --> 00:46:44,360 Но, просто убедитесь, что это проверяется так что, вы знаете, цель этого 877 00:46:44,360 --> 00:46:47,510 Файл для этого приложения. 878 00:46:47,510 --> 00:46:48,310 >> ОК. 879 00:46:48,310 --> 00:46:51,680 Итак, теперь мы создали два новых файла. 880 00:46:51,680 --> 00:46:54,050 И эти файлы выглядят довольно пусто. 881 00:46:54,050 --> 00:46:59,550 И, на самом деле, давайте также продолжать на, создавая XIb файлы. 882 00:46:59,550 --> 00:47:03,690 Так, ранее, я был в Cocoa Touch раскрывающийся. 883 00:47:03,690 --> 00:47:06,880 Теперь, я собираюсь идти в Пользователем Сенсорный интерфейс, и, как вы видите, я 884 00:47:06,880 --> 00:47:08,120 можно создать раскадровку. 885 00:47:08,120 --> 00:47:11,710 >> Таким образом, даже я начал с пустой Приложение, я все еще можете использовать 886 00:47:11,710 --> 00:47:12,340 Раскадровка. 887 00:47:12,340 --> 00:47:15,480 Хотя, это становится сложнее с точки зрения о том, как вы хотите подключиться 888 00:47:15,480 --> 00:47:16,820 что в код. 889 00:47:16,820 --> 00:47:18,230 Так, я не пойду туда. 890 00:47:18,230 --> 00:47:22,160 >> Но то, что мы хотим сделать, сейчас создать представление. 891 00:47:22,160 --> 00:47:25,720 И вы можете выбрать для iPhone или IPad. 892 00:47:25,720 --> 00:47:30,180 И, как правило, для обозначения Разница - если вы делаете 893 00:47:30,180 --> 00:47:31,950 универсальное применение - 894 00:47:31,950 --> 00:47:35,980 вы либо положить подчеркивания IPhone, или вы можете сделать Twiddly. 895 00:47:35,980 --> 00:47:36,980 Это действительно не имеет значения. 896 00:47:36,980 --> 00:47:40,890 Это просто для Вас, чтобы дифференцировать который вид, для которого устройство. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> И так, теперь посмотрим. 899 00:47:44,430 --> 00:47:47,550 У меня есть экран, который я могу работать. 900 00:47:47,550 --> 00:47:53,530 И так, к примеру, я могу поставить метку здесь, вы знаете, и я также можете поместить 901 00:47:53,530 --> 00:47:54,820 другая кнопка здесь. 902 00:47:54,820 --> 00:47:58,730 Я не буду беспокоиться изменения значения здесь. 903 00:47:58,730 --> 00:48:09,050 >> Но, что важно здесь что владелец файла - 904 00:48:09,050 --> 00:48:13,660 так, я внутри мобильный вид, iPhone шиб файл. 905 00:48:13,660 --> 00:48:18,050 И в настоящей района плавания или В раскрывающемся меню, я хочу поехать в 906 00:48:18,050 --> 00:48:19,090 Владелец файла. 907 00:48:19,090 --> 00:48:22,630 И это действительно Важным шагом здесь. 908 00:48:22,630 --> 00:48:27,780 Я хочу, чтобы мнение класса контроллер, так что этот файл шиб является 909 00:48:27,780 --> 00:48:30,030 собирается быть связаны с На мой взгляд контроллер. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 И все, что я делаю внутри моей точки зрения Контроллер программно является 912 00:48:39,360 --> 00:48:42,800 будет отражено на здесь. 913 00:48:42,800 --> 00:48:46,270 >> Так, однако, заметить, что - 914 00:48:46,270 --> 00:48:55,995 на самом деле, давайте сделаем это мнение синий фон, например. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 Или зеленый. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 А потом, так что если вы заметите, еще в этот код, это где мы добрались до нашего 919 00:49:07,950 --> 00:49:09,200 навигация контроллер. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> Несмотря на то, что мы сделали этот шаг, это по-прежнему будет красный, не зеленый. 922 00:49:18,310 --> 00:49:20,350 И на это есть причина, почему. 923 00:49:20,350 --> 00:49:28,090 Это потому, что, когда мы inited Мы считаем, контроллер, здесь - 924 00:49:28,090 --> 00:49:30,010 извините, это немного сумасшедший - 925 00:49:30,010 --> 00:49:34,520 когда мы inited наш взгляд контроллер здесь, мы inited его из общего типа 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 ОК? 928 00:49:36,560 --> 00:49:40,560 Таким образом, мы даже не делали это с этим классом. 929 00:49:40,560 --> 00:49:42,030 >> Так что помните, это как класса сейчас. 930 00:49:42,030 --> 00:49:47,160 Это можно рассматривать как вид, так же как UIViewController это тип. 931 00:49:47,160 --> 00:49:51,080 И для того, чтобы использовать это, то, что мы должны сделать, это импортировать его - 932 00:49:51,080 --> 00:49:52,520 импорт ViewController - 933 00:49:52,520 --> 00:49:55,750 и, как вы можете видеть, это AutoFills это для меня. 934 00:49:55,750 --> 00:49:56,570 Так, ViewController - 935 00:49:56,570 --> 00:50:02,070 и теперь, здесь, я могу изменить это UIViewController к ViewController. 936 00:50:02,070 --> 00:50:05,050 А теперь, вот, я могу изменить это ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Давайте запустим это снова. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 Он по-прежнему красный. 941 00:50:19,690 --> 00:50:23,370 И причина, почему это еще красный, потому что - 942 00:50:23,370 --> 00:50:26,230 воах, что там произошло? 943 00:50:26,230 --> 00:50:31,500 Мы хотели связать этот XIB файл с контроллера представления. 944 00:50:31,500 --> 00:50:37,540 Тем не менее, для того, чтобы на самом деле что, мы должны пойти на это. 945 00:50:37,540 --> 00:50:42,980 И когда мы делаем инициализации, мы хотим сделать initWithNibName, а затем мы хотим 946 00:50:42,980 --> 00:50:48,910 сделать в строку View_iPhone, например. 947 00:50:48,910 --> 00:50:51,700 Вы можете игнорировать расслоение здесь. 948 00:50:51,700 --> 00:50:54,965 >> И это происходит, чтобы позволить нам, на самом деле - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 Ой-ой, есть проблема. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Верно. 953 00:51:09,980 --> 00:51:17,670 >> Так вот, есть проблема, потому что, в Мы считаем, шиб файл, у нас есть лейбл и 954 00:51:17,670 --> 00:51:18,720 у нас есть кнопка. 955 00:51:18,720 --> 00:51:23,660 Тем не менее, хотя мы связаны эти двое, нет ничего внутри 956 00:51:23,660 --> 00:51:27,440 ViewController.h или ViewController.m , которые отражают те 957 00:51:27,440 --> 00:51:29,160 кнопки или эти ярлыки. 958 00:51:29,160 --> 00:51:32,425 Итак, нам нужно написать те, в качестве свойства контроллера представления. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Таким образом, это, как вы заявляете, свойство. 961 00:51:39,490 --> 00:51:43,422 Он принимает в, как правило,, эти два варианта. 962 00:51:43,422 --> 00:51:48,690 Для целей нам и этого семинара, Я бы сказал, что, в общем, 963 00:51:48,690 --> 00:51:52,250 большинство свойств неатомической и сохранить. 964 00:51:52,250 --> 00:51:55,420 Вы можете прочитать с помощью функции поиска Google, Вы знаете, разница между 965 00:51:55,420 --> 00:51:58,620 неатомической и сохранить на, вас знаете, Google или что-то. 966 00:51:58,620 --> 00:52:01,090 И я возьму вас к, как, Stack Переполнение, где люди будут иметь 967 00:52:01,090 --> 00:52:03,605 ответы на различиях между теми,. 968 00:52:03,605 --> 00:52:07,000 Но сейчас, это то, что мы хочу иметь дело с. 969 00:52:07,000 --> 00:52:12,790 >> И мы хотим сделать метку пользовательского интерфейса, звезда, и мы можем назвать это все, что хотим. 970 00:52:12,790 --> 00:52:15,710 Мы можем назвать это, вы знаете, этикетка. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 И мы создадим еще один один для кнопки. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 И не забудьте включить звездочку, потому что мы имеем дело с указателями 975 00:52:29,910 --> 00:52:36,740 в значительной степени всюду внутри из Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Однако, это все еще не решает проблема, как вы можете видеть здесь. 977 00:52:42,110 --> 00:52:50,540 И причина в том, что, когда мы хотите подключить метку шиб файла или 978 00:52:50,540 --> 00:52:55,690 Кнопка с программой, или заголовок и файл реализации, мы хотим 979 00:52:55,690 --> 00:52:58,255 добавить этот кусок кода - 980 00:52:58,255 --> 00:53:00,610 на выходе. 981 00:53:00,610 --> 00:53:03,600 Обратите внимание, что это ключевое слово. 982 00:53:03,600 --> 00:53:07,970 >> И, как только я закончу печатать что из, он должен иметь эти 983 00:53:07,970 --> 00:53:09,100 два круга, здесь. 984 00:53:09,100 --> 00:53:11,200 Как правило, они не заполнения 985 00:53:11,200 --> 00:53:12,920 Я не уверен, почему они. 986 00:53:12,920 --> 00:53:21,370 Но, как правило, вы будете иметь, чтобы вручную соединить их, зайдя в эту сторону 987 00:53:21,370 --> 00:53:23,530 площадь утилиты. 988 00:53:23,530 --> 00:53:28,430 >> И вот, прямо сейчас, я получил свой лейбл выбран, и я хочу, чтобы перетащить этот новый 989 00:53:28,430 --> 00:53:33,910 ссылаясь выход владельцу моего файла, а затем нажмите на Label. 990 00:53:33,910 --> 00:53:40,230 Так что теперь, наконец, эта метка связаны с этим ярлыком. 991 00:53:40,230 --> 00:53:44,950 И эта метка, что мы собираемся использовать программно изменить его 992 00:53:44,950 --> 00:53:49,250 Текст, его шрифт, его фон цвет, и так далее. 993 00:53:49,250 --> 00:53:52,430 >> Так, почему бы нам не сделать то то же самое для кнопки? 994 00:53:52,430 --> 00:53:54,770 И, как вы заметите, для кнопки, это немного сложнее. 995 00:53:54,770 --> 00:53:59,060 Потому что, я имею в виду, вы должны нажмите на кнопку, так что есть много 996 00:53:59,060 --> 00:54:02,950 вариантов, как пользователи можете нажать на кнопку. 997 00:54:02,950 --> 00:54:06,570 И потом, мы увидим позднее, что мы можем подключить его к нашей 998 00:54:06,570 --> 00:54:09,140 Код чтобы заставить его работать. 999 00:54:09,140 --> 00:54:12,770 >> Так, на данный момент, хотя, мы хотим подключиться это фактическому кнопки 1000 00:54:12,770 --> 00:54:13,570 внутри нашего кода. 1001 00:54:13,570 --> 00:54:19,640 Так мы идем в новое отделение ссылающейся, , а затем сделать кнопку. 1002 00:54:19,640 --> 00:54:22,068 Теперь, давайте запустим это снова. 1003 00:54:22,068 --> 00:54:23,040 Ой-ой. 1004 00:54:23,040 --> 00:54:23,890 ОК. 1005 00:54:23,890 --> 00:54:25,140 Я не знаю, что сейчас здесь происходит. 1006 00:54:25,140 --> 00:54:48,450 1007 00:54:48,450 --> 00:54:49,700 Ух ты. 1008 00:54:49,700 --> 00:54:57,380 1009 00:54:57,380 --> 00:54:58,960 Просто в один момент, здесь. 1010 00:54:58,960 --> 00:55:02,490 >> На самом деле, почему бы нам не взять рассмотрим еще один пример в 1011 00:55:02,490 --> 00:55:05,800 процентная времени. 1012 00:55:05,800 --> 00:55:06,200 ОК. 1013 00:55:06,200 --> 00:55:10,610 Итак, вот более легко получают пример для ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Как вы можете видеть здесь, я включил свойства для 1016 00:55:17,110 --> 00:55:18,460 этикетка и кнопка. 1017 00:55:18,460 --> 00:55:20,370 И потом, этот кусок кода здесь - 1018 00:55:20,370 --> 00:55:21,830 это IBAction - 1019 00:55:21,830 --> 00:55:27,740 была связь с этой кнопкой здесь. 1020 00:55:27,740 --> 00:55:33,940 Итак, как вы можете видеть здесь, Сенсорный внутри соединен с селектором 1021 00:55:33,940 --> 00:55:37,390 называется нажатой кнопке. 1022 00:55:37,390 --> 00:55:41,700 >> Так, мы можем фактически пройти движение снова, здесь, принимая подправить 1023 00:55:41,700 --> 00:55:48,750 Внутри и перетащив его на Владелец файлов, а затем 1024 00:55:48,750 --> 00:55:51,570 нажмите на кнопку нажатой. 1025 00:55:51,570 --> 00:55:52,820 Теперь, давайте запустим наш код. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Так что теперь, эта кнопка теперь работает и приведет нас к следующей странице. 1028 00:56:02,020 --> 00:56:08,430 >> И, с точки зрения нашей точки зрения контроллера, это кусок кода, который взял 1029 00:56:08,430 --> 00:56:10,000 заботиться о нажатой кнопке. 1030 00:56:10,000 --> 00:56:14,260 И важно отметить,, что Я создал еще один тип представления 1031 00:56:14,260 --> 00:56:16,330 контроллер называется таблицу вид контроллера. 1032 00:56:16,330 --> 00:56:19,900 Так, это было похоже на спине в раскадровка, когда я вытащил один из 1033 00:56:19,900 --> 00:56:23,450 эти с контроллерами в раскадровке. 1034 00:56:23,450 --> 00:56:24,470 Я создаю другой 1035 00:56:24,470 --> 00:56:30,000 >> Указатель на контроллере представления стол, Alloc и инициализации-ния его, а затем делать 1036 00:56:30,000 --> 00:56:34,490 самостоятельно точка навигации контроллер, нажать ViewController, эта новая 1037 00:56:34,490 --> 00:56:35,350 ViewController. 1038 00:56:35,350 --> 00:56:39,750 И я поставил анимацию да, потому что теперь внутри моего приложения, и я 1039 00:56:39,750 --> 00:56:45,670 хотите, чтобы действительно увидеть анимация собирается с главной страницы к столу 1040 00:56:45,670 --> 00:56:46,920 вид контроллера. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> АУДИТОРИЯ: Вы все еще беспокоиться о сборке мусора? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: Что это? 1044 00:56:51,840 --> 00:56:54,740 Нет. 1045 00:56:54,740 --> 00:56:58,970 Таким образом, вопрос был, есть ли у вас работать со сборкой мусора? 1046 00:56:58,970 --> 00:57:03,470 Так, Xcode 4 имели как АРК, который является автоматический подсчет ссылок. 1047 00:57:03,470 --> 00:57:06,120 Так вот, как правило, когда вы начинаете новый Проект, вы бы проверить это, потому что 1048 00:57:06,120 --> 00:57:09,440 никто не хочет иметь дело с освобождения памяти и прочее. 1049 00:57:09,440 --> 00:57:13,720 Но я думаю, в Xcode 5, нет даже этот вариант на новом проекте. 1050 00:57:13,720 --> 00:57:16,750 Так, он автоматически сделает это за вас. 1051 00:57:16,750 --> 00:57:16,920 Да? 1052 00:57:16,920 --> 00:57:20,970 >> АУДИТОРИЯ: Можете ли вы экспортировать PDF в вашем раскадровки? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: Да, определенно. 1054 00:57:22,020 --> 00:57:28,180 Таким образом, все они будут включены в исходный код, так что вы, ребята, можете проверить 1055 00:57:28,180 --> 00:57:30,730 фактический проект Xcode для него. 1056 00:57:30,730 --> 00:57:31,105 Да? 1057 00:57:31,105 --> 00:57:35,944 >> Зала: Но, я имею в виду, как, я могу распечатать PDF с моим раскадровки? 1058 00:57:35,944 --> 00:57:38,920 Если я просто хочу, чтобы экспортировать изображения, чтобы показать кому-то. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: О да. 1060 00:57:39,160 --> 00:57:41,980 Я думаю, что, может быть, вы можете просто сделать снимок экрана. 1061 00:57:41,980 --> 00:57:44,350 Да, и отправить им экран выстрел или что-то. 1062 00:57:44,350 --> 00:57:45,600 Да. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Так, давайте посмотрим. 1065 00:57:50,570 --> 00:57:56,470 В целях экономии времени, я думаю, вот и все я могу охватить сегодня. 1066 00:57:56,470 --> 00:57:59,600 Но, я знаю, что это, на самом деле, просто едва касаясь поверхности прошивкой 1067 00:57:59,600 --> 00:58:00,370 развитие. 1068 00:58:00,370 --> 00:58:05,630 Поэтому, пожалуйста, не стесняйтесь связаться со мной, если у вас есть какие-либо вопросы о прошивкой 1069 00:58:05,630 --> 00:58:07,000 развитие. 1070 00:58:07,000 --> 00:58:12,840 И, надеюсь, я буду в состоянии убрать некоторые из кода для источника 1071 00:58:12,840 --> 00:58:16,830 код файлов, так что вы будете иметь некоторые действительно хорошие примеры для работы с. 1072 00:58:16,830 --> 00:58:21,020 >> Кроме этого, если вы, ребята собираются к CS50 Hackathon, Я могу или может 1073 00:58:21,020 --> 00:58:25,730 не быть там, и я могу помочь с некоторым развития IOS тоже. 1074 00:58:25,730 --> 00:58:26,980 Так, большое спасибо, ребята. 1075 00:58:26,980 --> 00:58:31,168