>> Tianyu ЛИУ: Эй, как это происходит все?
И это IOS App программирование Objective C семинаре.
И меня зовут Tianyu Лю.
Я младший Лоуэлл прямо сейчас, концентрируясь в области компьютерных наук.
Так что в этом семинаре я буду учить вас, ребята
Немного о том, как сделать приложение.
Ура, увлечься для него.
>> Поэтому, прежде чем даже начать плавание в фактической стороне программирования,
давайте просто очень быстро говорить о Поэтому, возможно, вы хотите создать приложение IOS?
Почему IOS настолько удивительным?
Таким образом, первой проблемой, в первую очередь вещь, которая является довольно удивительным для нас,
особенно в CS50 студент, является то, что IOS
использует Objective C. Ну, есть Новый язык называется Свифт,
но мы не собираемся использовать, что в этом семинаре.
Если вы заинтересованы в Swift, есть является независимым семинар об этом.
Но Objective C, в основном расширенный Ч. Значение
что все вы используете в C может быть переведены на Objective-C
очень легко.
>> Как вы можете видеть позже, что, действительно, Есть некоторые очень базовый синтаксис, являются
основном точно так же, C и Objective C. Таким образом,
так как вы сделали CS50 до этого места, то уже
знать, Objective C, по меньшей мере, 40%.
Кроме того, Apple, имеет очень надежный API для IOS.
Есть много действительно сумасшедший вещи, которые вы можете делать с ним.
Один из которых является тот, на самом деле создал приложение IOS
для контроля автомобилей, которые это довольно интересно.
Наверное, вертолет более захватывающим.
Но это, как мощный API IOS может быть.
>> И, как вы, возможно, придется полагал, прямо сейчас,
переполнение стека, вероятно, один из наиболее важные интернет-ресурсы
доступны для вас.
И хорошая новость для каждого одной проблемы, возможно, вы можете
думать о при строительстве вашего Окончательный проект в Objective-C,
существует вероятность переполнения стека ответ.
Это просто потрясающе.
В дополнение к этому, IOS действительно платформа
где вы можете добраться до огромное Зрители с небольшим усилием.
Это не то, Android, где все довольно фрагментирован.
>> Все IOS едина.
И до тех пор, как вы создаете Приложение для iPhone,
вы можете очень легко переносить, что Ipad, Ipad мини, или разные размеры iPhone.
Это все очень удобно.
И это просто очень хорошо для впечатление на своих друзей.
Вы можете просто провести iphone и скажите вашего друга эй,
это приложение, которое я сделать.
Вы можете сделать, что для любого настольные приложения, что приятно.
>> Ладно, теперь давайте на самом деле получить в языковой Objective C.
Так почему бы нам не начать с некоторые действительно основной синтаксис.
Как я уже говорил Цель C Это в основном расширенным С.
Так много основного синтаксиса на самом деле точно так же.
Объявление переменной и добавив две переменные вместе
именно так, как мы сделали в Марио.
Ничего нового здесь.
>> Точно так же, жилец цикл и условие также и то же.
Вы можете сделать цикл так же, как вас уже сделал в Марио [неразборчиво].
И вы можете сделать условия так же, как то, что вы
делали в ваших предыдущих наборов р.
Тем не менее, Objective C не полностью C,
и есть то, что немного странно об этом.
>> Первый в том, что когда вы делать программированию на языке С, вы, как правило, называют
включают в себя, а затем имя библиотеки.
Но в Objective-C Вы называете это импорт.
В основном говорят функциональность, просто разные названия.
И струны на самом деле немного странно.
Вы можете видеть, что первая вещь, которая немного странно
является то, что у вас есть довольно weird-- sorry-- у вас есть довольно странные NS
войдите сюда.
И вторая вещь, это немного странно
это вы должны в знак перед на самом деле объявить строку.
Так в знак основном означает что строка не только строка,
это на самом деле объект.
Мы собираемся объяснить, что позже, так что не
паника, если вы не понять, что это значит.
И печать на консоли немного отличается тем, что в C мы называем Printf,
но в Objective-C мы называем [неразборчиво].
>> Вы можете быть удивлены, что есть что.
Это в основном Printf, просто другой язык.
Точно так же, использование, точно те же функции.
Ну и получается, что Objective C на самом деле
Имеет нс префикс почти все, каждый базовый тип данных,
NSString, NSArray, NSDictionary.
Причина в том, что нс на самом деле обозначает следующий шаг,
что компания, которая Стив Джобс основал,
что компания, в которой язык Objective C рождается.
Так что это в основном традицией.
Я знаю, что это немного странно, но это Apple.
>> Так что-то, что даже страннее чем это объявление функции.
Это очень отличается от того, что мы см в Си, так вот это на самом деле
не похож С больше.
То, что вы here-- по способ это не пули,
это минус.
У вас есть знак минус скобки недействительными, а затем имя функции.
Давайте просто скажем, если мы есть привет мир, то
Тип возвращаемого бы недействительными потому что мы не возвращают ничего.
>> Что становится действительно странно является то, что, когда вы
имеющих более одного параметра переходя в одной и той же функции, что
будет очень странно, как показано здесь.
У нас есть имя метода, называется addInt на [неразборчиво]
и мы передаем один параметр.
Но после этого, у нас есть более имя вызов метода с.
А после с, что мы передаем Второй параметр.
Это на самом деле немного странно, но все эти объявления функций
по той же схеме, как это.
>> У нас есть знак минус, чтобы начать с.
Знак минус может быть знак плюс иногда на основе того, какой метод
это.
Метод в основном другое название для функции.
И мы собираемся объяснить, что позже, когда
мы говорим об объекте ориентированное программирование.
Сначала укажите возвращение введите в скобках,
после чего приходит имя метода.
Вы передаете один параметр.
И если у вас есть несколько параметров, вам необходимо расширить название метода
и в основном что-то написать больше здесь.
>> Это может быть все, что угодно.
В нашем случае это с.
Но можно сказать, что конец, или, или, или ABC полный бар, все, что вы хотите.
А потом после этого вы Передача параметров б.
Это действительно странно Конвенция, но мы
увидите, почему Apple, хотел сделать это очень быстро.
Итак, как вы вызвать функцию?
Вызов функции в Objective С также отличается от C.
>> На самом деле, называя функция в Objective-C
более, как вы говорите кому-то.
Здесь мы имеем себя, что называется объектом.
Вы в основном говорит объект сам, чтобы сказать "Hello World!"
То есть, как вызвать функцию.
Объект и имя метода в сочетании друг с другом.
И это, где странный расширение для названия метода действительно вступает в игру.
>> Давайте посмотрим на второй пример.
Мы только что определили метод, называемый addInt с бла-бла-бла.
Таким образом, в этом случае, когда Вы звоните что конкретная [? сообщение?] это будет
чтобы выглядеть самостоятельной addInt: 10 с: 2.
Похоже, на английском языке.
Хотя функции Объявление функции странно,
точка Objective C годов Объявление метода узор,
является то, что, когда вы звоните функция или метод
это будет звучать как фактическим английском языке.
Так что это очень интуитивным как только вы получите в нее.
>> Особенно в этом случае, где вы можете в основном
видеть, что имя функции Сортировать документирования себя.
Вы не нуждаетесь ни в больше объяснений, чтобы увидеть
что именно происходит, что точно один параметр делает.
Выходя за рамки, что, давайте поговорим немного Немного о объектно-ориентированного программирования.
Объектно-ориентированное программирование один из фундаментального программирования
методы или модели, которые является используется Objective C. Objective-C
называется Objective C, не C для действительно хорошей причине.
>> Поэтому, прежде чем попасть в Цель синтаксис C,
Давайте действительно быстро взглянуть на что именно является объектом.
Мы, вероятно, сделали что-то как объект раньше, что
называется структура, когда вы находитесь реализации дерево или связанный список
или [? попробовать. ?] Таким образом, это в основном, как структуры,
но это гораздо более мощный, чем это.
Объект имеет свойства и методы.
Методы основном функции.
В основном функции, которые специфичные для определенного объекта.
>> И свойства в основном поле вы указываете в структуры.
Таким образом, для каждого объекта у нас есть некоторое свойство
который имеет несколько переменных, которые специфичны к объекту.
И у нас есть некоторые функции, которые также специфичные для объекта.
И функции называются методами и переменные называются свойствами.
Это просто красивое название.
Пока вы самом деле, каждый вид Вы видите, когда вы открываете приложение IOS,
давайте просто скажем, Twitter или Facebook, каждый вид вы видите объект.
И даже весь приложение Объект, чтобы начать с.
Очень интересная концепция.
>> И почему мы хотим объект ориентированное программирование?
Таким образом, вы можете себе представить, что когда вы Программа он получает довольно сложно.
Давайте просто скажем, когда вы реализации шахматную доску,
Логика собирается быть очень сложным.
Вы должны 36 различных штук, так что если вы
хочу написать логику для всех 36 различных частей в шахматы,
что будет много различные функции и переменные.
Это много неприятностей.
И, наверное, вы собираетесь написать другой способ или другая функция
для каждого из части, чтобы точно контролировать то, что они делают.
>> Но если вы делаете объектно-ориентированного Программирование, все эти куски
можно абстрагировать в один объект.
И объект будет иметь некоторые общие свойства, как и какие части
это?
Какого она цвета?
Как он может двигаться?
И в этом случае вы должны в значительной степени упростить логику его.
Так что это просто действительно хороший способ чтобы сделать сложные программы,
и иерархическая связь в рамках программы, очень просто.
Как мы собираемся, чтобы увидеть Поэтому очень быстро, когда
мы на самом деле делаем programming--, когда мы на самом деле
Ведение S код программирование пленарном заседании.
>> Хорошо в дополнение к этому, объектно-ориентированное программирование
это просто весело.
Вы должны создать свой собственный объект.
Вы должны проектировать то, что делает это выглядит самостоятельно.
Там нет правильного ответа на него.
И это совершенно интересно.
Таким образом, в объектно-ориентированном программировании, два основных понятия
будет класс и экземпляр.
Класс в основном шаблон для объекта.
И экземпляр в основном один конкретный объект.
>> Давайте просто скажем, что вы делаете печенье.
В этом случае, каждый печенье вы на самом деле в конечном итоге с
будет объектом.
Но печенья плиты вы используете для выпечки все печенье будет класс.
Класс в основном шаблон.
И экземпляр будет один конкретный Объект, созданный из этого класса.
>> И Экземпляр будет создан на основе декларации класса,
как мы увидим в последующих слайдах.
Итак, давайте на самом деле действительно Быстрый пример [неразборчиво].
Скажем, мы объявлении Объект для кошки.
Объект должен have-- класс кошка должна
имеют некоторые свойства и методы.
Какие свойства должны в класс have-- должны кот есть?
>> Например, цвет, возраст и порода, тех,
будет переменные, которые специфичны для каждой кошки.
И те вещи, что мы используем для описания кошку.
Каким методом, или то, что может кошка делать?
Некоторые быстрые примеры будут преследовать мышь, едят рыбу или просто мяукают.
Это очень быстро Пример класса кошачьих.
И действительно специфический кот объект будет кошка
где мы указываем цвет, возраст и порода.
>> В этом случае, наш объект не больше классе не больше.
Мы копируем шаблон из класса и мы указываем каждый конкретную информацию
к этому конкретному объекту чтобы сделать его независимым.
И когда вы звоните Способ внутри объекта,
вы просто позвоните мяу на объекте, что кошка вы только что создали.
>> Возможно, вы будете печатать что-то вроде "Hello World!
Мяу. "
Довольно мило.
Ладно, давайте просто попасть в некоторых деталях
и посмотреть, что именно это перевести на свет программирование IOS.
Таким образом, в IOS программирование каждый класс будет осуществляться в двух файлах.
Один файл здесь, который называется интерфейс.
Еще один файл здесь, который называется реализацию.
>> Обычно интерфейс будет иметь extension.h
как мы видели в C библиотек.
И файл реализация будет иметь extension.n.
Это немного странно.
Но .n означает на самом деле .c, нет Фундаментальное различие между теми,
два.
Таким образом, в этом случае, мы можем видеть, что мы заявив, интерфейс, Cat: объект.
Это называется наследованием.
Мы в основном наследования кот-класс от класса объекта.
Таким образом, каждый свойств и методов, которые были определены ранее в классе объекта
будет автоматически определена в классе кошки, а также.
>> В дополнение к этому, мы определяем цвет, порода и возраст, три переменные.
Это на самом деле выглядит то, что вы делали раньше.
Похоже, структуры.
То есть в принципе синтаксис для декларирования структуры,
и что совершенно правильно.
А так как я уже упоминал ранее, Разница структура
и объект, один из фундаментальные различия
в том, что объект имеет метод, в то время как структура имеет только переменные.
Таким образом, в дополнение к свойствам или переменные, которые мы создали для объекта,
мы указываем какой-то способ.
>> Давайте просто скажем, здесь мы имеем два метода, один мяу,
еще один Чейз мыши.
Мы, вероятно, хотите проходя Параметр основаны на нашем предыдущем методе
Декларация рисунок.
Вы, наверное, хотите быть прохождение мыши.
И вы, наверное, хотите вернуться логическое значение, означающее,
Если ваша кошка успешно поймал мышь или нет.
>> Это интерфейс, но мы можем видеть, что интерфейс на самом деле
ничего не делать.
Это просто говорит программу, что exists-- то, что существует в классе кошки.
Так для того, чтобы программа должна делать что-то,
мы должны иметь файлы реализации.
Так вот, первое, что мы делаем, Очевидно, мы импортируем интерфейс.
После мы импортируем интерфейс, определим метод.
>> Давайте просто скажем, здесь мяу будет просто распечатать
"Привет, Мир!" на консоль.
И после реализации Файл, мы очень много сделали.
В основном это класс Заявление для одного класса.
Так что теперь вопрос становится, как вы объявляете переменную?
Как вы используете класс для создания объект в Objective C, что здесь написано.
>> Вы сначала укажите, Это указатель кошки,
потому что каждый объект в Objective C наконец реализованы как указатель.
И это вы называете класс, называть их как Alloc, которая в основном таНос,
говорит операционной системе, что вы нужно часть памяти для этого объекта.
После этого у вас есть объект уже, и вы просто инициализировать его.
Это просто условность.
Я знаю, что это является немного странным, но это на самом деле, как Apple, делает вещи.
>> Назначение свойствами, на самом деле довольно проста.
Это очень похоже на Что вы делаете, когда
вы присваиваете некоторые конкретные поле внутри структуры.
Вы просто должны переменную фамилия, имя свойства,
и назначить конкретное значение к нему.
И вызов метода очень похожи.
Вызов метода в основном то, что я говорю о
для вызова любого метода в Objective C.
>> Вы передаете объект, в в этом случае он будет myCat,
и вы передаете имя метода.
Как будто вы разговариваете с объекта, myCat, что вы должны мяу.
Это довольно интересно.
После этого, есть один более существенным шаблон
что мы должны говорить о прежде чем добраться до фактического S кода.
Это шаблон называется событийная программирования.
Это также, вероятно, один из самых Основные идеи в области программирования IOS.
>> Таким образом, вы, вероятно, не знаете, что именно является событийная программирование,
но это на самом деле не так страшно.
Ну в самом деле, у вас есть уже сделали это раньше.
Это одна из линий вы, вероятно, уже писал в прошлом [неразборчиво]
из CS50, google.maps.event.addListener (маркер,
"Клик", функцию () {}) :.
Называя эту строку вы по существу говорят компьютер
что всякий раз, когда называется событие "Нажмите" происходит на маркер,
использовать эту функцию.
>> Это очень отличается от что вы делаете в mario.c.
В mario.c вы просто запустите программу один раз, это дает вам выход,
и вы сделали.
Это вроде как Один выстрел программы.
Управляемые событиями программы очень, очень разные.
Давайте представим, если Facebook это один выстрел программа, это не очень хорошо.
Вы просто зайдите на Facebook один раз, и это сделано.
Это дает вам некий выход, и вы никогда не получил его обратно.
Вы никогда не есть что-нибудь еще.
>> Так вот, в особенности шаблон мы используем
приводом событие, таким образом, что каждая функция будет
быть пойманным на основе того, что событие уже произошло.
Например, если у нас есть Кнопка и мы указываем
что всякий раз, когда кнопка нажата, вызвать функцию под названием "Hello World!"
Таким образом, мы можем действительно управлять логической функции
течь в очень гибко.
Пользователь может делать или вызвать функцию который уже был вызван.
Это полностью основано на том, что действия пользователей.
>> Итак, мы видим, что это на самом деле гораздо лучше, чем mario.c.
И хорошей новостью является то, что это на самом деле не новая концепция.
Вы, ребята, уже сделали что в последней задачи установлен.
Таким образом, в Objective-C есть три различных схемы
для события программировании.
Первый диаграмма называется целевой действие,
где вы связываете кнопку пресс с какой-то функции.
Давайте просто скажем, всякий раз, когда вы нажимаете некоторые кнопки, вы называете какую-то функцию.
Это очень просто цель действия.
>> Второй является на самом деле один из самых трудных,
это называется делегация по протоколу.
Мы собираемся объяснить, что очень подробно позже.
И третий способ уведомления.
На самом деле это не Очень важно, насколько
как мы заинтересованы, потому что случайно что вы собираетесь использовать уведомление
в окончательном проекте является довольно низким.
Итак, мы собираемся, чтобы пропустить эту часть.
>> И мы собираемся нырять в делегации по протоколу.
Так что же такое протокол?
Или то, что именно делегация?
Давайте поговорим о протоколе, чтобы начать с.
Протоколы не что иное, как события.
Но эти события даны Вы Яблоком, чтобы начать с.
Например, я не полностью уверены, как многие из вас
ребята используют оригинал от Apple Приложение почте или связаться с
но каждый раз, когда вы прокрутите стол и нажмите конкретную ячейку
на стол, то есть событие.
>> А если вы хотите сделать это событие сами,
это на самом деле немного трудно.
Так Яблоко, учитывая, что даже для вас так что вы можете просто использовать непосредственно
Мероприятие сделать что-то по своему усмотрению.
Протоколы на самом деле действительно, действительно широко используется
в Objective C. Ну в Дело в том, каждый приложение
есть что-то поймал приложение делегата.
Внутри тонкая является все протоколы для загрузки приложения.
>> Давайте просто сказать, что есть событие для приложения сделал нагрузку.
Так что должно произойти после того, как создано приложение, после открытия приложения,
После закрытия приложения, или после Вы помещаете iPhone спать.
Это все события, которые имеет уже дано вам.
И первоначально внутри этих частиц не будет никакого осуществления.
Apple, только что сказал вам, что эта функция произойдет, когда происходит какое-то событие,
но то, что вы делаете с этим функция полностью зависит от вас.
>> Делегация в основном говорит класс
что вы должны обрабатывать эти протоколы.
Это немного сбивает с толку, но это будет
гораздо яснее, когда мы делаем Выбор S коды в действии.
Делегация по протоколу на самом деле очень мощный механизм, в том смысле,
что если мы делегацию к определенному классу,
мы можем существенно обрабатывать все виды событий
с помощью какого-либо класса у нас есть, очень удобный инструмент.
>> Так один быстрый пример Делегация по протоколу
будет то, что я только что говорил о.
Этот протокол специально называется TableView [неразборчиво] выберите роль
на [? Индекс?] [? прошлое. ?] Так что это Событие, которое будет пойман, когда вы
на самом деле нажмите на конкретных клетка вашего Tableview,
давайте просто скажем, в вашей почте или в приложении Контакты.
>> Внутри функции было Первоначально, ничего не делая.
Не работает функция сделать что-нибудь по умолчанию.
Но вы можете указать что делает функция,
учитывая то, что вы хотите от вашего приложения.
Очень удобный инструмент.
И при всем том, что При этом, я в основном
покрытия некоторые очень базовый синтаксис и фундаментальное понятие для Objective-C
программирование, и мы можем сделать некоторые ы-код.
Гораздо более интересно.
Так с код на самом деле немного подавляющим
когда вы открываете его в первый раз.
>> Один быстрый записку, так что если вы хочу сделать развитие IOS,
Я настоятельно рекомендую вам есть Mac.
Поскольку при разработке IOS на Окна, действительно, очень трудно.
Это выполнимо, но это очень трудно.
И Вы, безусловно, не хотите использовать г редактирования.
Таким образом, в ы кода у нас есть несколько различных областях.
Когда вы впервые открыть ей код Вы увидите навигационную область,
которые в основном показывает вам все файлы, которые находится в текущем проекте.
>> У вас есть панель инструментов область, которая в основном управлении взгляды,
или какой-нибудь быстрый Инструменты сингапурских самого кода.
И это фактическая площадь редактор.
Эта область очень похож г редактировать, но гораздо лучше, чем г редактирования.
И в этом правой части, является называется подсобное помещение.
Область становится очень удобно, когда вы создаете интерфейс или указания
некоторые быстрые установки для вашего приложения.
>> И последняя область является отладка.
Эта область содержит консоль.
Поэтому, когда вы говорите, Printf, или NSLog в нашем случае,
все ваши результаты будет печататься здесь.
Хорошо?
Я думаю, мы можем очень быстро сделать Пример для программирования IOS.
И давайте на самом деле открыть ей код.
Таким образом, каждый раз, когда вы открыть ей код, это собирается показать что-то подобное.
Это будет просить вас что ты хочешь делать?
Вы хотите, чтобы начать что-то случайным, детская площадка, в основном вы
может просто проверить код без на самом деле привязки к какой-либо приложения.
>> Вы хотите, чтобы создать новый проект?
Или вы хотите, чтобы продолжить работает на существующем проекте?
В нашем случае мы собираемся чтобы создать новый проект.
Так что это действительно хорошая, с код на самом деле уже
дал вам некоторые шаблоны для создания объектов.
Если вы хотите сделать игру, код ˘S на самом деле есть шаблон игры для вас,
есть своя страничка приложений, Вкладка приложение.
В этом случае, мы собираемся сделать что-то очень простое,
и мы собираемся использовать одно приложение мнение.
>> После этого только то, что вы хотите позвонить ваш продукт, и как тебя зовут,
что ваш идентификатор, и на каком языке вы используете.
Здесь мы не хотим, чтобы проверить с помощью основных данных.
Основные данные в основном databasing IOS.
Если вы основных данных, втор Код будет определять
гораздо сложнее, классы для вас.
Таким образом, чтобы сохранить все просто, мы просто хочу, чтобы обойтись без основных данных
прямо сейчас.
>> Проблема, которую мы собираемся быть используете that-- проблемы
мы собираемся создать то, что мы в основном хотят импортировать Марио от C
в приложение IOS.
Так что давайте называть это Марио IOS.
Конечно, вы указываете, что хочу поставить в вашем проекте.
И там мы идем.
>> Так что это немного подавляющим, но это на самом деле
то, что мы только что видели на слайдах.
И первая область, мы видим прямо сейчас в основном конфигурация проекта.
Так что все вы хотите сделать Проект, какое устройство,
давайте просто скажем, что это за устройство Вы хотите, чтобы ваш приложение, чтобы появиться на?
Это iPhone, IPAD или универсальный?
Так ориентации устройства, все эти вещи.
Не очень важно, но может быть, но это
это место, где вы создали Ваш проект, если вам на самом деле
необходимо развернуть в магазин Apple.
>> Ладно, давайте посмотрим на то, что находится внутри нашего кода.
Давайте пройдемся по файловой навигатора.
И все эти файлы, которые уже пришел с шаблоном, очень приятно.
Поэтому, когда мы нажмите на одну из них это то, что он выглядит.
Очень похоже на г редактирования.
Но вы можете видеть, что подсветка синтаксиса, вероятно,
немного приятнее.
И это на самом деле гораздо более мощный, чем г редактирования.
И вы можете автозаполнения много вещей для вас,
как мы увидим очень быстро.
>> Давайте откроем площадь отладки, а также.
Ладно, как мы видим, Консоль прямо здесь.
Это то, что вы будете видеть, где Вы находитесь в Printf или nsloging что-то.
Итак, без дальнейших церемоний, давайте на самом деле скомпилировать приложение и посмотреть, что происходит.
Одним из важнейших функция для с кодом, что с код
поставляется с iPhone симуляторе.
Таким образом, вы не должны иметь iPhone, чтобы попытаться ваш проект,
с код может имитировать, что для Вы, как мы видим, сейчас.
>> Это очень приятно.
Это занимает немного немного времени, чтобы скомпилировать
и в основном мы имеем пусто приложение,
которые на самом деле ничего не делает.
Но он компилирует.
Это довольно удивительным.
Это гораздо лучше, чем С, а?
Ладно, тогда давайте попробуйте добавить что-то.
Один файл, который немного странно здесь называется раскадровка.
Это на самом деле здорово, удивительным функция для ов кода.
Потому что в ы кода, вы можете перетащить и падение элементы на интерфейс
и он будет непосредственно показать.
Давайте попробуем это.
>> Мы бросаем метку здесь, "Hello World !!!"
Мы можем центре, который.
Довольно прохладно.
Теперь давайте запустим эту остановку моделирования.
Здесь мы имеем "Hello World !!!"
Мы даже не делать каких-либо кодирование еще.
Что, черт возьми, происходит?
Это, как мощный Interface Builder может быть.
Кто-то даже сказал, что Вы можете, вероятно, просто
завершить приложение без написания вероятно, в тысячу строк кода
только с помощью Interface Builder.
Но это, вероятно, не Лучший способ сделать это.
>> Теперь давайте на самом деле приступить к кодированию.
Таким образом, структуры файла на самом деле очень интересно
потому что, как вы можете видеть, есть нет Основная функция в любом месте.
Увидеть?
Как мы уже упоминали ранее, Вы можете видеть, что это
это файл реализации для определенного класса.
Но нет основной в любом месте.
Так где же главный?
На самом деле, это основная, но Основной самом деле скрытые от вас.
Главное, здесь.
Это выглядит знакомым.
>> Поэтому в основном то, что IOS делает внутри основной
является то, что всякий раз, когда главное, называется, который является в основном
всякий раз, когда приложение выполняется, он создает объект, называемый AppDelegate.
Как я уже упоминал ранее, вся Приложение на самом деле объект сам по себе.
Таким образом, в этом случае, в основном IOS приложение говорит компилятор
что хорошо, я собираюсь создать Продукт под названием AppDelegate,
и что будет мое приложение.
Таким образом, вы должны пойти через этот AppDelegate
и посмотреть, что парень делает.
Моя работа для меня сделал.
>> И в AppDelegate вы можете видеть, что есть некоторые действительно странные функции,
а на самом деле методы, которые Apple, уже дал вам.
Что это?
Это на самом деле всего протоколы что я имел в виду.
Таким образом, эти события, которые Apple, дал вам начать с.
Там нет ничего, некоторые функций прямо сейчас,
но если мы хотим, чтобы инициализировать что-то для нашего приложения
прежде чем попасть в отображении любой вид, что мы делаем это здесь.
>> Вы можете просто прочитать имя, и я думаю, Событие на самом деле очень ясно.
Так что теперь главная создал объект для AppDelegate.
И то, что AppDelegate собирается сделать на самом деле также скрыто от вас.
AppDelegate собирается начать загрузка акции ViewController.
Так что это в основном собирается начать загрузка все виды, которые у вас есть
и просто сделать вид на основе иерархии.
>> Таким образом, в этом случае у нас есть только один вид, который находится здесь.
Так что это только вид который будет называться.
Логика ViewController прямо здесь.
Это код, который на самом деле контролирует зрения мы только что видели.
Ладно, давайте что-то делать здесь.
Так viewDidLoad звучит как события, когда на самом деле это тоже делегат,
это также протокол.
>> Поэтому, что бы вид загружается, Все внутри функции
будет называться.
В этом случае мы должны увидеть "Hello Tianyu! "Если мы запустим программу.
Это становится немного медленно составление раскадровки файлов.
Ну в самом деле, мы видим, выход для него.
Это очень здорово.
Теперь давайте на самом деле Марио.
Я собираюсь определить работать очень быстро.
marioWithLevels: результаты (INT) уровне.
>> Ладно, это на самом деле здорово Особенностью лет код авто завершения.
Поэтому, когда вы пишете для и введите войти, он уже отказался от шаблона
для вас, который является довольно прохладно.
Это должно выглядеть на самом деле знакомы с вами, ребята.
К сожалению, это моя вина.
Ладно, круто.
Эта логика должна выглядеть действительно знакомы с вами, ребята, особенно сразу Марио.
>> Но мы сейчас распечатать на Консоль каждый раз,
потому что мы хотим, чтобы как-то сохранить трек о том, что мы печатаем.
Мы собираемся использовать Результаты как-то позже,
для отображения печати из и для самого пользователя.
Так вместо этого мы просто nslogging все,
которые мы хранения всего, в результате вызова функции,
но логика точно так же.
После того как мы закончим это, мы просто распечатать наши результаты.
>> И вот вместо того, чтобы распечатать мой имя, мы собираемся вызвать функцию.
Давайте посмотрим, что происходит.
К сожалению, это очевидно.
У нас есть хороший немного пирамида здесь.
Это, в основном C, мы просто манипулирования, где вы вызываете функцию
и как функция выглядеть.
Там нет ничего другого.
Но это на самом деле не очень интересно здесь,
потому что мы не видим что-нибудь из приложения iPhone.
>> Так что, если вы на самом деле есть iPhone app-- Если у вас действительно есть право Марио IOS
Теперь, вы не собираетесь чтобы увидеть все, что
не имеет ничего общего с Марио, потому что все эти выходы в консоли
скрыты от пользователя.
Это то, что вы видите, что "Hello World !!!"
Нехорошо.
Теперь давайте попробуем сделать пользователю видеть что именно мы распечатки.
Таким образом, мы не должны маркировать больше.
Давайте попробуем выяснить, что-то то, что может быть полезно.
>> Существует на самом деле один элемент, который называется
текстовое поле, которая могла бы быть очень полезным для нас.
Это в основном отображает область текст, который можно редактировать.
Так что выглядит действительно полезно.
Теперь давайте перетащите его и поместите его.
Ничего себе, у нас есть текстовый вид на наш взгляд, на самом деле фантазии.
Это немного слишком большой.
Давайте сделаем это меньше.
Положите его в центр.
Сделать меньше, как хорошо.
>> Теперь у нас есть текстовый вид, который мы могли бы быть использован для отображения окончательный результат.
Но сейчас это безусловно, не будет работать
потому что есть no-- ViewController мы просто
определено, не знаю, что есть мнение текст там.
Так что мы должны каким-то образом связать текстовое представление мы просто
созданный с использованием класса, что уже с нами.
>> Как мы делаем это на самом деле очень волшебный.
Так открыть раскадровку.
Существует специальная [неразборчиво] называется [? помощник?] [неразборчиво].
При нажатии, что это собирается открыть два файла.
Один класс, а другой это вид, соответствующий для него.
Это очень, очень полезно.
И давайте просто идет через файл .h.
Контроль, это [неразборчиво] логика.
Нажмите Control и перетащите Текст вид в декларации.
Мы собираемся назвать это outputView.
Подключите.
Так вот мы объявили новый недвижимость для нашего класса ViewController.
И новое свойство это просто вид текста
мы создали в здании интерфейса.
Так что в этом, как мы могли бы Доступ ко всем данным
и манипулировать все, что находится внутри Посмотреть выход, который является удивительным.
>> Таким образом, в нашем фактическом кода, давайте что-то делать с этим.
Так что это время, когда мы, как печати из конечного результата для Марио,
мы находимся в не войдя ничего.
Я имею в виду, мы могли держать регистрация заявлении.
В дополнение к этому, мы отправить считывание мы просто
создано в целях производства, которые является UI TextView мы только что создали.
Теперь давайте посмотрим, что происходит.
Вот Это Да.
У нас есть пирамида в приложение прямо сейчас.
>> Таким образом, пользователь может увидеть наш выход, потому что мы скопировали выход из нашего кода
для нашего интерфейса.
Это очень хорошо.
Это на самом деле не то, что интересно, потому что мы can--
Все приложение делает, показывая пирамиду с вами,
и нет ничего, что вы можете с этим поделать.
Это не особенно интересно.
Так что теперь давайте сделаем кнопку что будет ясно мнения.
Похоже, что кнопка будет полезно.
Перетащите и отпустите.
Одна кнопка.
Кнопка два.
>> Поэтому, когда мы нажимаем левую Кнопка, вид должен очистить.
Там не должно быть ничего на экране.
И когда мы нажимаем Правая кнопка, Марио,
Посмотреть будет появляться снова.
Так что это, как мы также делаем магических штучек, контроль и перетащите
в объявлении класса в помощника director--
в помощника зрителя.
В данном случае мы имеем указания что это должно быть действие.
clearMario.
>> И вот мы уже создали акция под названием clearMario,
который является методом, который можно было бы назвать всякий раз, когда мы нажимаем кнопку Очистить.
Таким образом, в нашем самом деле код, давайте просто Поместите результат текст и вид выходной
в ничто, и, таким образом это будет выглядеть как ясно.
В дополнение к этому, давайте создадим другой метод, называемый runMario.
Эх жаль, что не должно быть собственности.
Ладно, что должно быть действие, а также.
>> И когда это функция называется, мы просто запустить Марио десять.
Надеюсь, что все будет в порядке.
Ли скомпилировать так ли?
Да.
Теперь у нас есть представление.
У нас есть выход.
И давайте посмотрим, что получится.
Это пошло.
Он вернулся снова.
И вот мы указали какие функции
будет вызываться, когда мы вводим в чем-то,
когда мы нажимаем на определенную кнопку.
Это, в основном Схема действия целевой
для управляемых событиями, программирование в Objective C.
>> В дополнение к этому, это не очень интересно
потому что мы не можем изменить как высоко пирамида будет,
таким образом, мы, вероятно, хотите, чтобы каким-то образом получить ввод от пользователя
и изменить высоту пирамида основана на то, что они выход.
Так что мы собираемся сделать это.
Так что это время, когда мы называем runMario, мы не просто напрямую позвонить Марио.
Это своего название.
>> Делегат.
Это очень интересно.
Что такое делегат?
Я собираюсь поставить себя здесь.
И мы собираемся, чтобы увидеть что это значит позже.
Так вот у нас в основном создана Конкретный экземпляр называется предупреждение UI
Красивый вид.
Посмотреть предупреждение пользовательский интерфейс в основном то, что вы будете
см каждый раз, когда что-то треск и запрашивает ввод,
Нравится то, что произойдет, когда вы пытаетесь купить что-то на App Store.
>> В дополнение к этому, после того, как вам создать его, мы просто показать предупреждение.
Ладно, давайте просто быстро Тест будет, что работа или нет.
Это очень здорово.
Теперь давайте на самом деле создать Поле для ввода начеку пользовательского интерфейса.
Это, как мы делаем это.
И мы должны иметь вход представление для начеку.
Очень здорово.
Давайте просто скажем, 10.
>> Это ничего не делает сейчас, потому что вызов на самом деле
не изменять для выполнения Марио.
Так что это стало немного немного странно, потому что всякий раз, когда
жмем кнопку вниз, когда мы нажмите кнопку в оповещения мнению,
что-то должно случиться, но это не произойдет.
Как мы уловили?
Как мы знаем, что пользователь уволил с предупреждением вид
и уже ввели номер, потому что Прямо сейчас ничего не происходит на самом деле.
>> Ну, вы уже догадались, это право, делегация.
Таким образом, в дополнение ко всему Эти заявления,
мы должны добавить новую делегацию это называется UI Alert Посмотреть делегата.
Так что каждый взаимодействие или событие
что мы будем иметь с целью предупреждения UI
будет обрабатываться нашей профессии.
>> Таким образом, в дополнение к этому, будет Кнопка просмотра Нажмите оповещения по индексу.
Это достигается.
Так что в этом случае мы имеем already-- поэтому у нас есть
обнаружили протокол, который будет обрабатывать событие, когда
мы нажимаем на кнопку Готово на оповещения зрения.
Таким образом, каждый раз, когда мы уволить предупреждение мнению, это должно было произойти.
Позвольте мне проверить его очень быстро.
Ну в самом деле, мы достигли здесь.
>> Так вот, то, что мы не будем на самом деле получить на самом деле
получить the-- Поэтому мы хотим, чтобы выйти Текст, который мы имеем ранее
вошел в предупреждении зрения.
И на основе текста, мы будем показывать Марио.
Это очень быстро оказывается если она действительно работает или нет.
Таким образом, в этом случае, если входной сигнал, скажем, 10, то мы должны увидеть 10.
>> Очень хорошо, у нас есть номер здесь.
Это очень хорошо.
Теперь последний шаг будет be-- Так последний шаг, который нужно сделать прямо сейчас,
просто позвоните Марио с Уровень на основе данных,
что мы вложили в оповещения зрения.
Таким образом, мы должны преобразовать Эта строка в IOS.
Статический переполнение очень удивительным.
А потом мы просто называем себя Значение marioWithLevels.
Давайте посмотрим, будет ли это на самом деле работает или нет.
>> Мы уже дали пирамиду.
Давайте попробуем изменить высоту.
Это на самом деле работает.
Это очень здорово.
Так что теперь вы можете просто Введите любое значение, которое вы хотите.
Давайте просто скажем, четыре.
Это довольно удивительным.
Так что это в основном очень быстро пример
о том, как создать проект в ы кода и как на самом деле быстро соединять
некоторые действительно простые события и функции.
>> Таким образом, источник будет чтобы поставить онлайн позже.
Так что, если вы заинтересованы в том, как IOS Марио работает,
Я собираюсь поставить точно такой же проекты на веб-сайте CS50 позже.
Мы в основном делается с летом, и прежде чем мы закончим
Я просто хочу, чтобы указать вам, ребята, некоторые действительно удивительные ресурсы, которые
доступны в Интернете.
>> Очевидно, документация Apple, будет очень полезно.
Но в дополнение к этому, особенно мне рекомендовать четыре источника, код школьные,
дом дерево, AppCoda и WWDC видео.
Код школа и дом на дереве являются два онлайн сайты Воспитание,
которые предназначены, в первую на разработке программного обеспечения.
Специально для кода школе, они есть действительно хороший учебник по МО.
>> Это действительно простой пример для этого.
Они на самом деле создать действительно cute-- посмотреть на этой маленькой милой iPhone
чувак там, это довольно удивительным.
И как они объясняют Цель Синтаксис C совершенно ясно.
Дерево Дом же.
И AppCoda является форум.
Это на самом деле блог, который был запущен на самом деле испытывал Objective C
программист.
И все эти учебники в AppCoda являются довольно короток и прост в реализации,
Настоятельно рекомендуется.
>> И если вы разработчик, определенно пойти проверить
как видео WWDC, где вы можете узнать о последних программ IOS
методы, API и библиотеки.
Так что это в значительной степени это за семинар.
Спасибо большое.
И я надеюсь, что вы весело создать свой собственный приложение IOS.