>> RHED SHI: Ласкаво просимо см. CS50 семінар -
Введення в МО.
Спасибі всім, що прийшли.
Сподіваюся, ти так само раді як я збираюся прошивкою.
Торік, я взяв CS50 як студент-другокурсник, і я в основному дізнався IOS для мого
Остаточний проект.
І це було досить -
ну, це було не просто, але є багато підтримки підручники онлайн.
І я дуже сподіваюся, що з цим Семінар, я дам вам, хлопці голові
почати на розвиток IOS
>> Так, з точки зору розвитку IOS, Є дві основні речі, ми
хочете, щоб покрити сьогодні.
По-перше, мова -
мова буде в Objective-C. Ми насправді почути
щось дійсно захоплююче.
Таким чином, ви можете приєднатися до ціле яблуко співтовариство розробників і побудувати деякі
дійсно дивовижний додатків.
>> Крім того, IOS 7 красиво, ми сподіваємося, для деяких з вас.
Але це спірно, я знаю.
І в основному, те, що я хочу зробити, це керівництво Ви через Objective-C, а також
Xcode, яка є інтегрованою Середа розробки, що ви будете
працює протягом прошивкою.
>> І так, просто слово на Objective-C. В основному, це те ж саме як C,
але з великою кількістю інших речей.
Так от, більш строго, це насправді супер-набір C. Тому все, що ви
можна зробити в C прямо зараз, що в основному подобається PSET 0 до 6, ви
може зробити в Objective-C.
>> Так що, не боятися про це новому мову, який ви збираєтеся вчитися.
Ви вже розглянули багато його, тому що ви все зробили C це минуле
семестр, за винятком тепер ви збираєтеся мати набагато більше працювати.
І я просто хочу провести вас через Кілька прикладів, щоб виділити деякі
з ключових відмінностей, які я знайшов, були дуже важливо, коли я дізнався,
Objective-C в минулому році.
>> Ну насправді, так, з іншої точки Тобто, Objective-C, очевидно,
об'єктно-орієнтований.
І ми обговоримо трохи про те, що це означає, що пізніше.
В принципі, це все одно, як ви працювали з Структури в цьому минулому PSet, з
вузли та аналогічні інші такі речі, як, що.
Крім цього, в Objective-C, все об'єкт, і ви збираєтеся бути
що проходить навколо покажчики на об'єкти а не самі значення.
Так, це просто щось важливе мати на увазі.
>> Отже, чому б нам не почати з декількома відмінності в синтаксисі між С і
Objective-C?
Я хочу, щоб виділити # включити, ви знаю, стандартний io.h в С і С + +, з
Objective-C версія, що, що є # імпорт, а потім свого роду
Файл заголовка.
У цьому випадку, було б UIKit, Ви знаєте, слеш UIKit.h.
Це також може бути, ви знаєте, MKMapview Вам скоротити MKMapview.h, якщо ви хочете
щоб зробити, як, карту всередині вашої програми.
Подібні речі, як, що.
>> Таким чином, головне, включають Тепер ситуація змінилася імпортувати.
Але ідея все ще залишається.
Ви збираєтеся імпортувати якусь з файлу заголовка у вашій програмі.
>> Я також хочу, щоб виділити різницю між Printf і NSLog.
Однак, як ми вже говорили раніше, Objective-C є строгим супер-набір
С, що означає, що Е існує в Objective-C, теж.
Але, більшість людей не використовувати це.
Більшість людей використовують цю NSLog, тому що це дає позначку часу, і ми побачимо,
це в дії пізніше.
Але, звичайно, більш корисним спосіб роздрукувати змінні.
>> І я також хочу підкреслити, що NSLog займає в точно такий же
значення заповнювачів як Е робить -
так% г є для INT, % Е для поплавка.
Тим не менше, я хочу, щоб виділити це самий останній -
NSLog% на знак -
що є прототипом для об'єкта.
І, як я вже говорив раніше, Objective-C угод в значній мірі в основному в об'єкти,
і так це прийде у використанні, коли ви хочете роздрукувати, мабуть, може бути,
NSArray або NSDictionary, або NSString.
>> Так, також, відзначити, що, на наш NSLog заяву, у нас є на знак перед
цитати -
тобто, щоб показати, що рядки, в даний час, в Objective-C є об'єктами.
Вони більше не є просто символьні зірки.
Вони об'єктів і розглядатися як такі.
>> Таким чином, це дуже важливо, що, коли Ви використовуєте NSLog вона займає в NS
рядок, що означає, що ви будете мати включити, по меншій перед вашим
лапки.
І саме тому ви бачите, тут, у всіх моя функція викликає до цього NSLog, я
є, по меншій перед лапок, навіть хоча% г і% е є
все одно з С.
>> Будь-які питання досі?
Я постараюся, щоб пройти через це швидко, так що ми можемо мати більше часу для роботи
з Xcode і Objective-C, так що що ви, хлопці можуть отримати більш
знайомі з нею.
>> Далі, я хочу, щоб виділити щось концептуально важливо.
Так, в С, більшість речей функції.
Ми робимо виклик функції.
Ми заявляємо функцій цей шлях, з повернення введіть, а потім
Ім'я функції, дужки, а потім які б не були аргументи і тип
ці аргументи, які ми хочемо передати дюйма
І Objective-C, тому що всі є об'єкт або клас -
так як клас і об'єкт два терміни, які в основному синонімами один з одним,
так що я може використовувати їх як взаємозамінні протягом семінару.
>> Але, ви побачите, що у нас є методи в Функції Objective-C, а не.
І методи належать до об'єктів.
Так само, як, можливо, прийняти Наприклад, вузол -
наш тип [нерозбірливо]
вузол з PSet 6 або 5 -
у нас є слово, майна, або наступний покажчик вузла.
Методи ж просто функції всередині зі свого роду структури.
>> Таким чином, в цьому випадку структура буде об'єкт, а потім метод
те, що належить до об'єкта.
І це, як ви б оголосити, роду, метод.
Ви б почати з, знову ж, повернення тип - це так, я спробував кольору
кодувати ключові слова тут, так що ви, хлопці, можна побачити, принаймні, форматування
Подібність між функцією декларації та оголошення методів.
Таким чином, ви починаєте з, ви знаєте, повернення тип - в даному випадку це масив або
NSArray покажчик -
а потім ви повинні цей метод.
І потім, що цікаво тут що замість того, дужки, ми
Тобто ці двокрапки.
А потім, перед нашими аргументами, ми кажучи, знову ж таки, в дужках тип
нашого аргументу.
>> Так, зараз я намагаюся зробити порівняння, ви знаєте, п і
число, тому що вони обидва, як цілі.
А потім, другий це тип NSUInteger.
А потім, з Objective-C, коли вам хочете мати кілька аргументів на
ваша стаття метод, ви, начебто, розділити їх ніби як це -
Я не зовсім впевнений, як описати його, але це хороший приклад того, як ви
може мати кілька аргументів на там.
>> Можна, звичайно, просто повністю ігнорувати двокрапка andArray NSArray
Масив, якщо ви хотіли просто метод , Який приймає в один аргумент.
Так, питання.
>> АУДИТОРІЯ: Чи є обидва NSUInteger і NSArray аргументи, які можуть бути прийняті в
в NSArray?
>> RHED SHI: Так.
Отже, дозвольте мені пояснити.
Так що, так.
Таким чином, питання було в NSUInteger і NSArray * типи аргументів,
і це правильно.
Таким чином, ви завжди хочете вказати, що тип вашої аргументації.
І тут, я намагаюся уявити вас до деяких з синтаксису і Vocab з
Objective-C, так що ті фактичні типи що ви будете мати справу з.
>> І як ви помітите, масиви більше не, начебто,
прості кронштейн речі.
Вони об'єктів.
Хоча, якщо ми йдемо до наступного слайд, ми бачимо, що ми можемо
жорстко закодувати NSArray в Objective-C з просто символ в перед
дужки.
Я не, насправді, зовсім впевнений чи Я синтаксично жорстко масив
правильно для версії C, але це повинен бути в масиві C.
>> Таким чином, це, як би ви, ви знаєте, можливо, використовувати функції або
методи, які ми створили раніше.
Чи не так?
Таким чином, це те, де ми заявляємо про свою Функція і наш метод.
А тепер ми хочемо використовувати їх в наша програма, і це
як ми будемо це робити.
Так, в C, вам доведеться, ви знаєте, мабуть, BOOL б, і ви встановите його в
рівнятися функцію, а потім Ви передаєте в аргументах.
>> У Objective-C, це досить майже те ж саме.
У вас є NSArray * my_array, і це збирається рівнятися - зараз, тільки
Відмінність тут у тому, що цей об'єкт, який я виділені жовтим кольором, і
як ви можете бачити, в С, є ніякий інший жовтий слово.
І це тому, що методи належать з певним об'єктом.
Так ось чому мені потрібно мати об'єкт що, начебто, викликає цей метод на
число нуль, а потім NSArray а, б, в, г.
Є питання з цього приводу?
>> Ми побачимо, ці поняття в дії досить скоро, коли ми йдемо в демо.
ОК.
Тепер, я хочу поговорити трохи стисло про Xcode 5, який
інтегрована середовище розробки що ви будете працювати з.
Я знаю, багато хто з вас, або деякі з вас, не мають Mac, що є проблемою
тому Xcode недоступна для ОС Windows і ПК.
Не питайте мене, чому, але, ймовірно, -
да, корпоративні.
Яка різниця.
Але в кожному разі, так що, я прошу вибачення, якщо деякі з ви повинні завантажити якусь
віртуальна машина для Mac в Для того щоб запустити Xcode 5.
Але це досить витончений програмне забезпечення для використання.
>> Так от, перш ніж ми заглибимося в якій-небудь демо, я просто хочу показати вам, в
картина того, що Xcode виглядає у вашому вікна, а потім також говорити про
що вся цей простір.
Таким чином, це ніби як навчитися використовувати Microsoft Word, за винятком ви хочете
ознайомитися з усіма різні речі, які
збираються тут.
>> Отже, спочатку я хочу вказати вам на панель інструментів у верхній частині.
Ви побачите, що, на самому верху, ви будете мати ім'я файлу -
або, насправді, ім'я вашого проекту а потім ім'я вашого файлу.
Взяти до відома п'єси і запірні кнопки.
Це ті, що ви будете використовуючи для запуску програми на
Симулятор -
симулятор IOS.
Це автоматично поставляється з Xcode 5, так що вам не доведеться турбуватися про
завантаживши якусь симуляторі.
Ви просто натисніть кнопку відтворення та потім він працює ваш додаток.
І ви можете пограти з вами, і ви побачите, як це працює пізніше.
>> А потім, в центрі, звичайно, де всі ваші красивою код
збираюся йти.
А потім, на лівій стороні, ви будете Тобто це, свого роду, папка -
навігація -
а потім, ви також побачите, що поряд із позначкою папки означає, що
купа інших ікон там, що буде корисним надалі.
>> А потім, на правій стороні це утиліта область, де ви можете працювати з
деякі об'єкти і вкажіть, вам знаю, що колір повинен бути, те, що
шрифт тексту має бути, і так далі.
Хоча, все, що ви робите в області комунального господарства, ви можете
зробити в коді, а також.
І так, я буду йти через дві приклади не використовуючи, просто, немає коду в
все - або дуже мінімально необхідний код -
вірші всього коду, просто так, що ви, хлопці, знаю, що ви можете і не можете зробити в
Xcode і Objective-C.
>> І ось, нарешті, на дні, у вас є налагодження область.
Таким чином, ви більше не доведеться налагоджувати, і так далі, у ваших програмах.
Вона автоматично зробить це за вас.
І ви можете також роздрукувати матеріал до цієї області.
Таким чином, фактично, пізніше, ми пройдемо mario.c, якщо ви, хлопці досі пам'ятаю
, Що в Xcode.
Так що має бути весело.
>> А потім, щоб повернути його до Objective-C, я хочу виділити те, що
ви можете зробити з якщо заяви.
Отже, ви знаєте, тому що Objective-C є розширений набір C, все, що ви зробити, це,
буквально, так само, як С. Ви просто мають незначні відмінності.
Так, ви помітите, форму для якщо заява є все той же - у вас є
якщо, і тоді ви повинні дужки з стан усередині, він, а потім
фігурні дужки для все, що ви хочу зробити всередині там.
>> Тим не менше, я хотів поставити цей слайд вгору тут, просто щоб проілюструвати, що,
тому що ми маємо справу з об'єктами зараз, ми повинні будемо використовувати ці речі
називається так, дорівнює рядку, яка є, за збігом, метод
рядок або об'єкт NSString.
Так, слово, в даному випадку, є NSString об'єкт, і це має метод є
дорівнює рядки, а потім ми передаємо в жорстко запрограмованої рядки, щоб побачити
Чи ті рівні один до одного.
>> Будь-які питання досі?
ОК.
І я хочу, щоб перейти для постановки також.
>> Так, наприклад, якщо ми хочемо, щоб петлі по довжині рядка в C, це
повинні бути вам знайомі.
І, в Objective-C, я хочу щоб підкреслити це, свого роду,
Метод називається граф.
Ну, насправді, нехай мені просто взяти свої слова назад.
Кількість це метод масиву.
Однак, це більш конкретно властивість масиву, тому ви
можна використовувати точкову нотацію.
Але я не хочу, щоб потрапити в занадто багато ця концептуальна матеріал, я просто хочу,
щоб показати вам, як все буде виглядати як в Objective-C в порівнянні з C.
>> А також, я хочу відзначити, що хоча я використовую NSUInteger
на очах у всіх моїх я х років в Objective-C, Ви можете також використовувати Int, тому внутр є
повністю діє в Objective-C, також.
Так?
>> АУДИТОРІЯ: Це тільки стилістичних, або -
>> RHED SHI: Так.
Так що, як ви побачите -
Отже, питання було в тому, що просто питання стилю.
Як ви побачите, у мене є, начебто, зірку Зірочка річ вниз, на дно, і
що посилання веде до переповнення стека утворюють, де хтось пояснює
різниця між міжнар в NSInteger і NSUInteger.
І так, ви можете прочитати про це пізніше.
Ці слайди буде, звичайно, доступні для вас.
>> Давайте подивимося.
ОК, дивним.
Таким чином, це також включено в слайд тому що я думав, що це був відмінний
сайт, який знайомить вас синтаксису Objective-C.
Так, власне, чому б нам не перейти до Хром і перевірити цей сайт?
>> Вірно.
Отже, що я хочу показати вам, хлопці тут це зображення.
Так, це, свого роду, буде те, що Ви будете бачити всередині будь-якого
Xcode файл.
Власне, чому б нам просто не взяти момент, щоб, як би, візьми дюйма
>> Так, ця книга -
ось об'єкт, ми маємо справу з.
І потім, це, очевидно, буде успадкував від іншого об'єкта, але
Ви не повинні турбуватися про це.
І потім, це, мабуть, має деякі змінні-члени.
>> Важливо те я хочу показати вам, це методи примірника, тут.
Так, методи примірника позначаються цим знаком мінус.
А потім, як ви помітите, що ми вже починаємо бачити парадигму
для оголошення методу, чи не так?
Повертається тип, ім'я методу, і то тип аргументу, і
то ім'я аргументу.
І це знак мінус означає, що це Метод примірника, що означає, що
ці методи доступні тільки для об'єкти, які були екземпляри.
>> Протиставляти, що, методи з плюсом підписати перед ними є клас
методи, що означає, що ви можете зателефонувати ці методи, навіть якщо у вас немає
Об'єкт, створений ще.
Таким чином, для наочного прикладу, NSString є класом.
І ви можете зателефонувати, наприклад, Методи класу по NSString -
фактичний, начебто, слово NSString.
>> Проте, для того, щоб використовувати їх методи, ви насправді
потрібно створити рядок.
Наприклад, NSString зірка рядок дорівнює в лапки, привіт світ.
І потім, ви можете використовувати ці методи -
методи примірника -
на цьому привет світ рядка.
Так, що різниця між методи екземпляра і методи класу.
>> І, ми просто покриті цю частину.
Властивості є Інша справа, що є всередині об'єктів, в основному.
І ви розкажете їх з на ключове слово власності.
Можливі такі варіанти, ось, що я поясню пізніше, коли
ми йдемо в демо.
Так?
Привіт.
>> АУДИТОРІЯ: Не могли б ви збільшити, будь ласка?
>> RHED SHI: О так.
Вибачте.
>> Залу: Дякую.
>> RHED SHI: Це повинно бути набагато краще.
>> АУДИТОРІЯ: Так.
Спасибо.
>> RHED SHI: Так, будь ласка, нагадайте мені, якщо Я забуваю, щоб збільшити або зменшити масштаб.
Так от, це все, що я хотів щоб показати вам, для -
агов, це багато -
для цього веб-сайту.
Отже, давайте повернемося до наших слайдів.
>> Насправді, тепер давайте скористатися моментом зануритися в демо.
Так, ми почнемо з новий Xcode проект.
Так що, якщо ви будете відкривати Xcode на всіх ваші машини, він повинен прийняти вам деякі
сторінки, де він говорить, начебто, або відкрити до існуючий проект або новий
Проект, і ви повинні натисніть новий проект.
І потім, він повинен прийняти Ви до цього екрану.
Так?
>> АУДИТОРІЯ: Якщо ми не маємо Mac, ми тільки почасти охолодити?
>> RHED SHI: Або подивіться на з кимось, так.
Так.
Ви можете розслабитися, теж.
ОК.
>> Отже, що ми збираємося робити в першу чергу, в даний час, є, насправді, ми збираємося зробити
Один додаток вигляд.
Так що, якщо ви помітите, що це здорово про Xcode і підтримки Apple, для
розробники в тому, що у вас є багато шаблони для роботи з уже.
Можна, наприклад, зробити майстер-деталь додаток.
Ви можете зробити гру -
а насправді, я не буду вдаватися в іграх, тому гри це зовсім інша історія
для розвитку IOS.
І вони свого роду відокремити, так що я не буду вдаватися в це.
>> Тоді, ви, засновану на сторінках додатків.
У вас є додаток вкладку -
так подобається, наприклад, Банк Америки ймовірно, має, як, з вкладками додаток.
Це ті, де у вас є кнопки в нижній частині.
І потім, у вас є Комплект гру Sprite.
>> Або ви можете працювати з нуля, що це те, що ми зробимо пізніше.
Але давайте, по-перше, почати з один додаток вигляд.
Тоді, це буде попросити назва продукту, і ми можемо просто зробити тест.
Назва організації -
так, назва організації, Ідентифікатор компанії -
тих, важливі, якщо ви збираєтеся розмістити додаток на App Store.
Крім цього, ваш код буде запустити абсолютно нормально без цього.
>> Це буде важливо, якщо вам хочете - так, по суті, як, покласти ваш додаток
на ваш телефон або щось, і тест це, ви знаєте, в реальному житті -
це буде важливо.
Це призводить до зазвичай асоціюється з свого роду аккаунта розробника
з Apple.
>> Так от, я знаю, напевно, багато хто з вас не матиме ніяких рахунків для розробників.
Я знаю, що університет має один.
Я думаю, що CS має один.
Але, ви можете написати мені, і я постараюся , Щоб зрозуміти це для вас.
Але зараз, я просто покласти в деякі заповнювачі речі тут.
>> І ви можете, звичайно, тут, виберіть чи хочете ви, щоб це було виключно в
iPhone, в IPad, або обидва -
універсальне застосування.
Так, на даний момент, давайте зробимо універсальними, просто щоб побачити обидві сторони платформи.
>> Давайте подивимося.
Так, прямо зараз, я йду, щоб врятувати це якоюсь папці.
Не важливо, де - вам завжди можна перемістити його пізніше.
І, зараз, ми принесли до нашої Xcode проекту.
Я б не турбуватися про все це.
Я хотів би запропонувати не торкаючись будь-який з не це, якщо ви точно знаєте, що
ви робите.
Так, все це, просто ігнорувати по більшій частині.
Вам не потрібно буде чіпати, і якщо ви ви псуєте деякі речі тут, це
стає трохи складніше.
>> Так, чому б нам не вивчити файли на
ліва сторона в нашому навігаторі.
Тут, у нас є AppDelegate.h.
У нас є AppDelegate.m Так що, як ви будете повідомлення, ми заголовні файли, які
кінець точка год, і у нас є реалізація -
насправді, дозвольте мені збільшення масштабу
ОК.
Дозвольте мені збільшення масштабу
>> Право, так ви заголовки та у вас є файли реалізації.
Насправді -
ОК.
Це трохи дивно, але терпіти мене.
Тоді, тому що ми вибрали один вид Додаток, ми збираємося бути
роботі з розкадровки.
>> Так, розкадровка є те, що Apple, придумав, щоб дійсно допомогти
розробники швидко створювати прототипи їх програми.
Таким чином, це де ви можете створити додаток, не написавши
один рядок коду.
Однак, на наш одному додатку зору, ми, звичайно, є
подати на наш погляд, що є контролером вигляд.
Отже, ми маємо заголовок і Файл реалізації, тут.
>> І, я збираюся, щоб зменшити масштаб зараз, тому що ми повинні працювати в розкадруванні.
Отже, ось наш погляд.
Якщо ми, просто, запустити додаток прямо зараз, існує не так багато цікавої відбувається.
Таким чином, ви побачите це білий екран.
ОК?
>> І, в нашій області комунального, ми можемо додати купа різних речей до нього.
Так що, коли ви маєте справу з екранів в МО, вид контролери
об'єкти, які інкапсулюють, роду, ваші думки.
Так, контролер вигляд завжди має властивість вигляд.
І ця точка зору, як правило, містить, Ви знаєте, що ви
хочуть бачити на екрані.
>> Так, добре, давайте просто почати, поставивши, мабуть, може бути, етикетка.
Отже, давайте поставити мітку на там -
дотримуватися його в середині.
Так, тепер, коли я натиснув на етикетці, я може перейти в інспекторові властивостей
і почати змінювати його значення.
Давайте назвемо це CS50 Кольори.
>> І, я можу також змінити шрифт.
Таким чином, замість того, щоб робити систему, яка є за замовчуванням, ми можемо зробити користувальницький один.
Ми можемо змінити -
Ви знаєте, ультралайт, зробити його 32.
І потім, ми можемо зробити наш ящик більше.
>> АУДИТОРІЯ: Як ви думаєте, можна збільшити в трохи більше, може бути?
>> RHED SHI: Да?
ОК.
>> АУДИТОРІЯ: Просто натисніть на нього?
>> RHED SHI: Давайте подивимося.
Це працює?
>> АУДИТОРІЯ: Просто передати Xcode?
>> RHED SHI: Звичайно.
ОК.
Приголомшливо.
>> АУДИТОРІЯ: На етикетці під?
На етикетці?
>> RHED SHI: Що це?
>> АУДИТОРІЯ: Що випадає був лейбл під?
>> RHED SHI: Отже, питання було, що розкривається був лейбл під?
Слід, просто, бути під тут.
Я припускаю, що це куб річ.
Але, як правило, це значення за замовчуванням -
Я просто збираюся тут поки я не знайти лейбл.
Так.
>> Так що тепер, у нас є етикетку.
Давайте його в центр.
І Xcode дає нам керівні принципи для центрування об'єктів.
Отже, тепер давайте запустимо наш код ще раз.
>> Там ми йдемо.
Отже, ми маємо CS50 Кольори.
А тепер, давайте поставити кнопку там, чи не так?
Тому що ми хочемо, щоб зробити це інтерактивне.
Отже, давайте поставити кнопку тут.
І ми будемо називати цю кнопку "кран тут продовжити ". Ми в центрі його, також
Насправді, це вже по центру.
Так.
>> Отже, тепер у нас є кнопка.
І якщо ми запустимо це знову, ми збираємося щоб мати хорошу маленьку кнопку тут.
І я можу натиснути її, але вона не робить нічого, тому що ми ще не зробили
нічого з допомогою кнопки поки.
>> Так, давайте створимо ще один вид, чи не так?
Так, скажімо, я хочу натисніть що кнопка, і я хочу
перейдіть на іншу сторінку -
інша думка.
Те, що я збираюся зробити, це, я можу створити контролер вид, чи не так?
Тепер я буду натисніть на моїй кнопки, а потім, головне, що я збираюся
натисніть - або -
да, натисніть управління на клавіатурі.
Контроль.
Натисніть на кнопку, а потім перетягніть.
>> Отже, пам'ятайте утримувати клавішу управління.
Давайте зробимо це знову.
Так, провести контроль, натисніть і перетягніть до того, що ви хочете зробити.
ОК.
>> А тепер, у мене є кілька варіантів тут.
Я можу або штовхати, або я можу зробити модальний, або я можу зробити звичай.
Натисніть тільки якщо у вас є навігація контролер.
Прямо зараз, наш найперший вид Контролер не всередині будь-якого
навігація контролер.
Так, контролер навігації є одним що дає зворотний кнопку на
додаток IOS, де у вас є, ви знаєте, що зверху, начебто, товстий прут -
де ви можете повернутися, або вперед, і так далі.
Прямо зараз, я не маю, що.
І так, ось чому я не можу зробити поштовх.
>> Так, я натиснув на поштовху випадково, тут.
А насправді, давайте запустимо код, і він повинен зазнати краху на мене.
Тільки якщо я натискаю кнопку хоча, так -
Право.
Таким чином, це погано.
>> І, як ви можете бачити, тут, ми є повідомлення про помилку.
Так, "Push безпосередньо переходить можна використовувати тільки тоді, коли Контролер джерело управляється
примірник користувача інтерфейсу навігації контролера ". Таким чином, тому що це не було всередині
навігаційний контролер, Я не міг зробити цього.
>> Так, прямо зараз, я повертаюся до Папка, повертаючись до розкадруванні.
>> АУДИТОРІЯ: Що навігації контролер, знову?
>> RHED SHI: Отже, зараз я вам покажу.
Давайте подивимося.
Так, я збираюся натиснути на цій точці зору контролер, а потім я піду
до продукту -
насправді, немає, вибачте - редактор.
І я збираюся піти в -
насправді, я натисніть на неї?
Ні.
Там ми йдемо.
Я збираюся піднятися в редакторі, спуститися вбудовувати в, а потім навігації
контролер.
>> ОК.
І, мій робочий простір виглядає дійсно брудний, так що давайте очистити це.
Таким чином, все це розкадровка.
І таким чином -
ОК, зупинити -
Я можу швидко побудувати щось як це.
І потім, тепер я можу повернутися, ви знаєте?
>> Але це нудно, чи не так?
Отже, що я хочу зробити, це, я не хочу зробити, просто, вид
контролер.
Скажімо, я хотів насправді зробити уявлення таблиці контролер, так що я можу поставити в
деякі гарні кольори, в таблицю.
>> Так, тепер, коли я поклав на мій погляд таблиці Контролер, мені потрібно підключити його назад
від цієї кнопки, щоб вид контролера.
Тому мені потрібно, щоб зробити мою контроль, Клікніть, перетягнути річ знову.
І тепер я можу зробити поштовх, тому що я вставляти це усередині контролера навігації.
>> АУДИТОРІЯ: Навігація контролер просто дозволяє перейти з місця на місце?
>> RHED SHI: Так.
Так, більш технічно, це об'єкт, де -
Таким чином, усередині навігації об'єкт контролера, це
відстежує масиву.
І, що масив містить всі наступні дивитися контролерів.
Ось чому, коли ви натискаєте назад, сходить до попередньої сторінки.
Оскільки контролер навігації об'єкт або код, який піклується про
цей об'єкт, має масив, який тримає відслідковувати цих контролерів відображення та
може, ви знаєте, DQ думку контролер і повернути вам
попередній.
>> Таким чином, це технічні речі, але -
і я покажу вам пізніше в Код, якщо у нас є час.
Я начебто йде на час, але -
>> Так, з точки зору таблиці, що ми можемо зробити, це -
Це, як правило автоматично встановлюється в динамічний Prototype -
ми збираємося зробити це статичні клітини, в іншому випадку ми збираємося
зіткнутися з деякими проблемами.
>> А потім, скажімо, я збираюся мати один розділ.
Так, розділи, як -
якщо ви ще не бачили музичний додаток, коли у вас є художники, розділи б
бути через Z's -
букви -
і потім, ви знаєте, людина Рядки були б імена виконавців.
І так, що це круто тут, в тому, що я можу доступ до всіх об'єктів всередині
моєї розкадровки через це У спадному меню теж.
>> Так, я збираюся натиснути на моїй секції, і я хочу, ви знаєте, може бути, п'ять рядків.
А потім, всередині кожного рядка, Я хочу поставити мітку.
І я буду називати цю Blue.
І потім, я хочу поставити крапку зору користувача інтерфейсу, ви знаю, може бути, для, як, коробочку.
>> Так що я можу показати людям, попередній кольору.
І я повернуся до власності і змінити цей колір, щоб, ну, я не
Знаєте, це одне.
>> А потім, зверніть увагу також, тут, коли у мене є аксесуари, у мене може бути багато
з різних аксесуарів що ви зазвичай бачите.
Індикатор розкриття, деталь, або галочка, чи просто деталь.
Так, може бути, ми можемо зробити, як, розкриття індикатор, наприклад.
>> І потім, чому б нам не взяти ці, копію вставте їх, і покласти їх в
наступна рядок таблиці.
Таким чином, ми можемо назвати це жовтий.
І я, можливо, доведеться розширити це.
Давайте зробимо це жовтий.
І таким чином, ми можемо скопіювати вставте наш шлях вниз.
Що це було?
Фіолетовий.
>> Отже, це все типовий CS50 Кольори, які ви бачили в класі -
насправді, шкода -
або на веб-сайті.
Сподіваюся, ви, хлопці, можете подивитися те, що я тут роблю.
ОК.
Останнє один.
>> АУДИТОРІЯ: Як ви додати рядок спочатку?
>> RHED SHI: Отже, питання було, як я додати рядок спочатку?
Я пішов у цей розділ таблиці - або однак я можу
виберіть розділ таблиці -
а потім, ось, я оновив кількість рядків.
>> І, дозвольте мені сподіватися, що це працює.
ОК.
Давайте подивимося, якщо це працює.
О, чудово, дивним.
ОК.
У той час як я будував мій демо, деякі речі не були розташовані, так що, спасибі за
оплески.
>> Так.
Так, давайте подивимося.
Ми зробимо це дев'ять разів, щоб зробити все - або насправді, давайте просто
перетворити все це на розкритті показники.
І потім, що я хочу показати вам, теж було те, як я можу взяти кожен з тих,
рядка таблиці і мають вони взаємодіють -
о.
Ні.
>> О.
Крім того, я хочу показати вам -
тут, я можу поставити назву мого навігаційний контролер, чи не так?
Так насправді, ви помітите, як тільки я вбудований цей погляд контролер всередині
контролера навігації, ми бачимо, це навігаційна панель у верхній частині нашого
Розкадрування уявлення контролера подання.
Так от, це дає нам, як, візуальний, роду, путівник по нашій видимого екрану.
Це, очевидно, буде бути навігаційна панель.
>> І те, що я хочу зробити швидко, Тепер, ставиться в іншій -
так що це подання таблиці контролер я зробив по приймаючи один з них і перетягнувши його
тут, і це те, що дозволив мені швидко, насправді, створити уявлення таблиці
контролер.
Якщо у нас є час, хоча, ви будете бачити, що, програмно, це
трохи складніше створити таблицю вид контролера, тому що
кілька методів, які є для цього вам необхідно, свого роду, написати
в порядку для подання таблиці контролер, який буде відображатися правильно.
>> Тим не менше, я просто хочу показати вам, зараз, приклад того, де, якщо я візьму це,
наприклад -
Я поклав у інший контролер подання.
А тепер, припустимо, я хочу, щоб керувати альт мій найперший синій
рядок таблиці, щоб тут.
І я хочу, щоб викликати цю Blue.
А потім -
давайте подивимося.
Я на вигляд, і я можу змінити фон на синій.
>> І так, зауважте, тут, це випадає Меню також дає ієрархію все
з цих об'єктів.
Так Важливо відзначити, тут, є те, що всі ці речі, ось -
ця точка зору таблиці контролер, таблиця вид, вид таблиця розділ, у вигляді таблиці
клітина - все це об'єкти, в коді.
Отже, ви знаєте, етикетка зараз знаходиться під уявлення вмісту, і так далі.
Так далі і тому подібне.
>> Так що, якщо ми запустимо цей код, ми повинні побачити щось -
давайте подивимося, якщо це - так.
Так, там ми йдемо.
Але, якщо ми не робимо цього, жоден з ці інші речі працювати.
Чи не так?
Таким чином, тільки на цей раз працює.
І, заради часу, я не буду йти в, ви знаєте, поклавши
вниз інших.
І це кінець, роду, розкадровка -
те, що я хотів показати Ви для розкадровки.
>> І, у мене є вдався приклад, насправді, прямо тут.
Таким чином, це розкадровка що я зробив раніше.
Так що, як бачите, це було мій навігації контролер.
Тоді я вперше контролер уявлення, Потім у мене був свій табличного представлення контролер,
а потім мені довелося все це -
так раніше, я робив щось зовсім інше.
Так, вибачте ці речі.
Я, ймовірно, очистити його пізніше до Я посилаю його до виробництва.
>> Але, якщо ми запустимо це, ми побачимо що всі варіанти є
в нашому розпорядженні.
Тільки я не робив фони ці кольори.
Так, хороший просте додаток.
>> Тепер, давайте спробуємо вирішити це програмно.
ОК.
Таким чином, щоб зробити це, ми тільки збираємося щоб почати новий проект Xcode.
Ми будемо робити це марна додаток тепер, тому що ми не хочемо мати
Розкадровка.
Так от, я просто обмежуючи себе не використовувати будь-який з розкадровки, а
порожній програма не буде дайте мені розкадровки.
Це просто, щоб запобігти я від обману.
Давайте подивимося.
Зачекайте.
Хіба я -
Так.
ОК.
>> Вірно.
Отже, ось, ми залишилися з не що інше, код.
Отже, дозвольте мені перемістити це вікно трохи більше.
Вірно.
Як ви можете бачити тут, тільки файли нам дають є AppDelegate.h і крапка
м, і у нас немає розкадрування більше.
>> Так що, якщо ми запустимо це, ми як і раніше будемо дістатися до білого екрану, слава Богу.
ОК - білий екран, але нічого більше.
І, от важлива частина.
Це де дія відбувається.
У попередніх версіях, є не звичайно немає коду тут, але
Розкадрування по суті забезпечує код для цієї частини.
Я не буду вдаватися в подробиці про те, як.
>> І те, що ми хочемо зараз зробити, це, ми хочемо йти сюди, і цей мало місця
починає створювати наш додаток ще раз.
Так що -
да?
>> АУДИТОРІЯ: Zoom?
>> RHED SHI: Zoom.
Так, звичайно.
ОК.
Я буду друкувати, так що це не повинно Незалежно від того занадто багато.
ОК.
>> Так, по-перше, пам'ятайте, що ми хотіли створити навігаційний контролер, чи не так?
А також, як ви можете бачити тут, Xcode робить дійсно велику роботу з
само-заповнення.
Так що, як ви помітите, імена всі багато довше, ніж
зазвичай, але Xcode заповнює його для вас.
Так що я можу просто натисніть Enter.
>> Отже, я хочу, щоб створити навігацію UI Покажчик контролер, і я можу назвати це
NavigationController.
Тепер, що ж мені тепер робити?
Після цього знаку рівності, мені потрібно, по-перше, створити його в пам'яті.
Отже, я збираюся зробити NavigationController Alloc -
так, це схоже на Танос, що ви, хлопці, використовувані в C -
а потім, я збираюся ініціалізації його.
>> Таким чином, це дійсно важливо, щоб будь-яка Об'єкт, ви створюєте, ви хочете
Alloc та ініціалізації його.
Це збирається створити і instantialize його в пам'яті, і
Тепер ви можете використовувати його.
Все в порядку?
Якщо ви не зробите це, ваш об'єкт робить не існує, і ви будете працювати у зв'язці
проблем.
>> І потім, я хочу створити контролер вид, чи не так?
Отже, я хочу, щоб створити UIViewController зірка -
так, все це покажчик в Objective-C, і я збираюся зробити
щось подібне, тут -
Alloc, ініціалізації.
ОК.
>> А потім, що я збираюся зробити, це, я збирається - так, пам'ятаю, коли ми зробили
код для вставки в навігаційний контролер?
Це, як ви зробити це в коді.
Ви збираєтеся зробити NavigationController
pushViewController -
>> АУДИТОРІЯ: [нерозбірливо].
Чи станеться це для нас, або -?
>> RHED SHI: О, так.
Ні.
Воно любить мене краще.
Ні, вона буде працювати для вас теж.
Отже, це всі методи.
Так pushViewController це метод, і Крім того, більш конкретно, це
Метод примірника користувача інтерфейсу навігація контролер.
Тому що я повинен був створити свій навігацію UI Контролер зірка, і потім я
Можна назвати це pushViewController на моєму Конкретний екземпляр навігації для користувача інтерфейсу
контролер.
>> АУДИТОРІЯ: Чи є у нас зробити точний слово, чи це вже існують для цього?
>> RHED SHI: Так, тому що це спосіб.
Це як функції.
Це як Printf.
Це як зсапЕ.
Це як strcompare.
Крім нього знає, що ви, можливо, захочете введіть, і зверніть увагу, що це буде завжди
придумати речі, які є офіційно дозволено для вас.
Так що, якщо нічого не відображається тут, значить щось не так.
>> Так, pushViewController.
Отже, тепер, я хочу, щоб підштовхнути мій нещодавно створений
UIViewController, а потім, анімовані -
можливо, ні.
Тому що це буде перший контролер вигляд.
Я маю на увазі, навіть якщо я зробити анімований, він, ймовірно, не буде відображатися, тому
це перший екран.
>> І пам'ятайте дужки.
Отже, пам'ятайте, як ми використовували дужки?
І в дужках, Об'єкт закликає методу -
так що наш об'єкт є навігація контролер, і метод поштовх
вид контролера анімовані.
І подивитися, як він бере в двох аргументів, і вони розділені, свого роду,
слова і двокрапка.
Так, Objective-C намагається зробити його красивим і легко для вас, щоб прочитати вголос -
код - і є його підлозі, роду, має сенсу.
>> Проте, роблять саме це недостатньо.
Дозвольте мені зменшити зараз.
Роблячи тільки цього не достатньо, щоб отримати те, що ми дісталися до раніше.
Так от, ви помітите, що є насправді не збирається бути будь-який вид
бар, тут, чи не так?
Там немає панелі навігації, а це означає, що ми досі не отримали його.
>> І ми можемо перевірити, що з, також, по, можливо, зміна фону
ViewController, чи не так?
ViewController.background--
ах.
Так, подивитися, як ViewController не було колір фону, хоча я
хотів отримати до нього доступ?
І це тому, що ViewController є контейнером для виду.
Так, він має вигляд власності, який тобто колір фону.
>> І, я можу встановити його, начебто нудно, , Викликавши колір
на об'єкті UIColor.
Так, повідомлення тут, redColor це метод.
Це метод клас UIColor.
Тому що у мене не було, щоб створити фактичний примірник UIColor з тим
викликати метод на ньому.
Я просто, просто, назвав його від типу-як ім'я.
Я, начебто, називається його на междунар, якщо внутр було, як, спосіб до нього, наприклад.
>> Так от, якщо ми запустимо цей код, ми будемо помітити, що фон
насправді не червоний.
Він як і раніше білий.
І як ми можемо обійти це, зверніть увагу, як там self.window.
Тобто, як, зрештою контейнер для вашої програми.
Це кінцева річ, яка містить все на екрані, для
iPhone або додаток IPad.
>> І, зручно, self.window володіє цією властивістю називається
RootViewController.
І це буде покажчик на найперший контролер вид всередині
вашої програми.
Отже, що ми хочемо зробити тут, зараз, встановити, що одно нашої навігації
контролер.
Чи не так?
Тому що, технічно, навігація Контролер наш найперший вид
контролер.
Він відстежує цілий ряд інших цілях контролери, і ми висунули цей
вид контролера в цьому масиві в контролері навігації.
>> Таким чином, ви не хочете, щоб це зробити.
Це не було б реально допомогти вам.
Ви хочете зробити це, якщо ви хотіли зробити навігаційний контролер, який найбільш
з вас, ймовірно, буде, тому що ви хочете, щоб, начебто, є свого роду,
як, меню, щоб повернутися або деякі Домашня сторінка, щоб повернутися до, а не
порожній екран.
Так?
>> АУДИТОРІЯ: Це незручно для вас, щоб збільшити на -
>> RHED SHI: Так.
Так що, так.
Це код, і тепер давайте перевірити його.
>> Так, там ми йдемо.
Магія.
Так, добре.
Спасибо.
ОК.
Так що тепер, що ми хочемо зробити, це - так, ми начебто обмежений, тут, чи не так?
Ми могли б потенційно написати все Усередині цієї однієї функції.
Але, це не так, як розвиток IOS як правило, працює.
>> Отже, що ми збираємося зробити, це, ми збирається створити кілька нових файлів.
Але, зокрема, ми збираємося створити новий клас Objective-C, або
Іншим завданням -
клас і об'єкти є взаємозамінними тут.
І, от, як я міг, потенційно, створити інший клас контролерів U.
>> Таким чином, це підклас, як ви помітите, тут, це підклас
Вид користувальницького інтерфейсу контролера, але я можу називають це будь-яке інше ім'я тут.
Я міг би назвати цю CS50, я міг би назвати ця точка зору контролер, я міг би назвати
це бла вид контролера -
все, що я хочу.
Це просто назва для класу.
Тим не менш, це буде мати важливе значення тому що, по суті, що я роблю
ось, я створюю інша назва класу.
Таким чином, це буде, як деякі роду типу або об'єкта.
Так, він повинен бути трохи родовим.
Це не збирається бути дуже конкретним.
>> А також, я хочу вказати з цих двох варіантів.
Тому що ми робимо все всередині Код, іноді це набагато простіше
довести у файлі інтерфейсу, такі, що Я можу буквально перетягувати, як
ми зробили раніше з розкадровки -
Ви знаєте, етикетка, або кнопку, або те, що.
І так, xibs файли, які дозволяють це зробити, і ви повинні підключити його
на цей файл контролера подання.
>> Так, я збираюся навмисно не перевірити це.
Зазвичай я хотів би перевірити це, і якщо я тільки зробили це на мобільний або IPad, я
хотів би перевірити це і просто мати один для, ви знаєте, iPhone або IPad.
Але так як я роблю універсальний, я збираюся створити два з них пізніше.
Так, я збираюся навмисно зніміть цей.
>> Це також дуже важливо.
Багато разів, у мене було помилок де це не було перевірено.
І так, очевидно, цей файл не, роду, як, включені або імпортувати
всередині цього тесту папці.
І так, мій код не має абсолютно ніякого уявлення про існування цього файлу, і
, Який викликає багато болю і годинник налагодження.
Але, просто переконайтеся, що це перевіряється так що, ви знаєте, мета цього
Файл для цього додатка.
>> ОК.
Отже, тепер ми створили два нових файлу.
І ці файли виглядають досить порожньо.
І, насправді, давайте також продовжувати на, створюючи XIb файли.
Так, раніше, я був у Cocoa Touch розкривається.
Тепер, я збираюся йти в Користувачем Сенсорний інтерфейс, і, як ви бачите, я
можна створити розкадрування.
>> Таким чином, навіть я почав з порожньою Додаток, я все ще можете використовувати
Розкадровка.
Хоча, це стає складніше з точки зору про те, як ви хочете підключитися
що в код.
Так, я не піду туди.
>> Але те, що ми хочемо зробити, зараз створити уявлення.
І ви можете вибрати для iPhone або IPad.
І, як правило, для позначення Різниця - якщо ви робите
універсальне застосування -
ви або покласти підкреслення IPhone, або ви можете зробити Twiddly.
Це дійсно не має значення.
Це просто для Вас, щоб диференціювати який вид, для якого пристрій.
>> І так, тепер подивимося.
У мене є екран, який я можу працювати.
І так, наприклад, я можу поставити мітку тут, ви знаєте, і я також можете помістити
інша кнопка тут.
Я не буду турбуватися зміни значення тут.
>> Але, що важливо тут що власник файлу -
так, я всередині мобільний вид, iPhone шиб файл.
І в справжній району плавання або У спадному меню, я хочу поїхати в
Власник файлу.
І це дійсно Важливим кроком тут.
Я хочу, щоб думка класу контролер, так що цей файл шиб є
збирається бути пов'язані з На мій погляд контролер.
І все, що я роблю всередині моєї точки зору Контролер програмно є
буде відображено на тут.
>> Так, однак, зауважити, що -
насправді, давайте зробимо це думка синій фон, наприклад.
Або зелений.
А потім, так що якщо ви помітите, ще в цей код, це де ми дісталися до нашого
навігація контролер.
>> Незважаючи на те, що ми зробили цей крок, це раніше буде червоний, що не зелений.
І на це є причина, чому.
Це тому, що, коли ми inited Ми вважаємо, контролер, тут -
вибачте, це трохи божевільний -
коли ми inited наш погляд контролер тут, ми inited його з загального типу
UIViewController.
ОК?
Таким чином, ми навіть не робили це з цим класом.
>> Так що пам'ятайте, це як класу зараз.
Це можна розглядати як вид, так само як UIViewController це тип.
І для того, щоб використовувати це, те, що ми повинні зробити, це імпортувати його -
імпорт ViewController -
і, як ви можете бачити, це AutoFills це для мене.
Так, ViewController -
і тепер, тут, я можу змінити це UIViewController до ViewController.
А тепер, ось, я можу змінити це ViewController.
>> Давайте запустимо це знову.
Він як і раніше червоний.
І причина, чому це ще червоний, тому що -
воах, що там сталося?
Ми хотіли пов'язати цей XIB файл з контролера подання.
Проте, для того, щоб насправді що, ми повинні піти на це.
І коли ми робимо ініціалізації, ми хочемо зробити initWithNibName, а потім ми хочемо
зробити в рядок View_iPhone, наприклад.
Ви можете ігнорувати розшарування тут.
>> І це відбувається, щоб дозволити нам, насправді -
Ой-ой, є проблема.
Вірно.
>> Так от, є проблема, тому що, в Ми вважаємо, шиб файл, у нас є лейбл і
у нас є кнопка.
Проте, хоча ми пов'язані ці двоє, немає нічого всередині
ViewController.h або ViewController.m , Які відображають ті
кнопки або ці ярлики.
Отже, нам потрібно написати ті, в якості властивості контролера подання.
>> Таким чином, це, як ви заявляєте, властивість.
Він приймає в, як правило,, ці два варіанти.
Для цілей нам і цього семінару, Я б сказав, що, загалом,
більшість властивостей неатоміческой і зберегти.
Ви можете прочитати за допомогою функції пошуку Google, Ви знаєте, різниця між
неатоміческой і зберегти на, вас знаєте, Google або щось.
І я візьму вас до, як, Stack Переповнення, де люди матимуть
відповіді на відмінностях між тими,.
Але зараз, це те, що ми хочу мати справу з.
>> І ми хочемо зробити мітку користувача інтерфейсу, зірка, і ми можемо назвати це все, що хочемо.
Ми можемо назвати це, ви знаєте, етикетка.
І ми створимо ще один один для кнопки.
І не забудьте включити зірочку, тому що ми маємо справу з покажчиками
в значній мірі всюди всередині з Objective-C.
>> Однак, це все ще не вирішує проблема, як ви можете бачити тут.
І причина в тому, що, коли ми хочете підключити мітку шиб файлу або
Кнопка з програмою, або заголовок і файл реалізації, ми хочемо
додати цей шматок коду -
на виході.
Зверніть увагу, що це ключове слово.
>> І, як тільки я закінчу друкувати що з, він повинен мати ці
два кола, тут.
Як правило, вони не заповнення
Я не впевнений, чому вони.
Але, як правило, ви будете мати, щоб вручну з'єднати їх, зайшовши в цю сторону
площа утиліти.
>> І ось, прямо зараз, я отримав свій лейбл обраний, і я хочу, щоб перетягнути цей новий
посилаючись вихід власнику мого файлу, а потім натисніть на Label.
Так що тепер, нарешті, ця мітка пов'язані з цим ярликом.
І ця мітка, що ми збираємося використовувати програмно змінити його
Текст, його шрифт, його фон колір, і так далі.
>> Так, чому б нам не зробити те те ж саме для кнопки?
І, як ви помітите, для кнопки, це трохи складніше.
Тому що, я маю на увазі, ви повинні натисніть на кнопку, так що є багато
варіантів, як користувачі можете натиснути на кнопку.
І потім, ми побачимо пізніше, що ми можемо підключити його до нашої
Код щоб змусити його працювати.
>> Так, на даний момент, хоча, ми хочемо підключитися це фактичному кнопки
всередині нашого коду.
Так ми йдемо в нове відділення посилається, , А потім зробити кнопку.
Тепер, давайте запустимо це знову.
Ой-ой.
ОК.
Я не знаю, що зараз тут відбувається.
Ух ти.
Просто в один момент, тут.
>> Насправді, чому б нам не взяти розглянемо ще один приклад в
процентна часу.
ОК.
Отже, ось більш легко отримують приклад для ViewController.
Як ви можете бачити тут, я включив властивості для
етикетка та кнопка.
І потім, цей шматок коду тут -
це IBAction -
був зв'язок з цією кнопкою тут.
Отже, як ви можете бачити тут, Сенсорний всередині з'єднаний з селектором
називається натиснутій кнопці.
>> Так, ми можемо фактично пройти рух знову, тут, приймаючи підправити
Всередині і перетягнувши його на Власник файлів, а потім
натисніть на кнопку натиснутою.
Тепер, давайте запустимо наш код.
Так що тепер, ця кнопка тепер працює і приведе нас до наступної сторінки.
>> І, з точки зору нашої точки зору контролера, це шматок коду, який взяв
піклуватися про натиснутій кнопці.
І важливо відзначити,, що Я створив ще один тип представлення
контролер називається таблицю вид контролера.
Так, це було схоже на спині в розкадровка, коли я витягнув один з
ці з контролерами в розкадруванні.
Я створюю другий
>> Покажчик на контролері подання стіл, Alloc та ініціалізації-ня його, а потім робити
самостійно точка навігації контролер, натиснути ViewController, ця нова
ViewController.
І я поставив анімацію так, тому що тепер всередині мого програми, і я
хочете, щоб дійсно побачити анімація збирається з головної сторінки до столу
вид контролера.
>> АУДИТОРІЯ: Ви все ще турбуватися про збірку сміття?
>> RHED SHI: Що це?
Ні.
Таким чином, питання було, чи є у вас працювати із збіркою сміття?
Так, Xcode 4 мали як АРК, який є автоматичний підрахунок посилань.
Так от, як правило, коли ви починаєте новий Проект, ви б перевірити це, тому що
ніхто не хоче мати справу з звільнення пам'яті та інше.
Але я думаю, в Xcode 5, немає навіть цей варіант на новому проекті.
Так, він автоматично зробить це за вас.
Так?
>> АУДИТОРІЯ: Чи можете ви експортувати PDF у вашому розкадровки?
>> RHED SHI: Так, безумовно.
Таким чином, всі вони будуть включені в вихідний код, так що ви, хлопці, можете перевірити
фактичний проект Xcode для нього.
Так?
>> Зали: Але, я маю на увазі, як, я можу роздрукувати PDF з моїм розкадровки?
Якщо я просто хочу, щоб експортувати зображення, щоб показати комусь.
>> RHED SHI: О так.
Я думаю, що, може бути, ви можете просто зробити знімок екрана.
Так, і відправити їм екран постріл або щось.
Так.
>> Так, давайте подивимося.
З метою економії часу, я думаю, от і все я можу охопити сьогодні.
Але, я знаю, що це, насправді, просто ледь торкаючись поверхні прошивкою
розвиток.
Тому, будь ласка, не соромтеся зв'язатися зі мною, якщо у вас є які-небудь питання про прошивкою
розвиток.
І, сподіваюся, я буду в змозі прибрати деякі з коду для джерела
код файлів, так що ви будете мати деякі дійсно гарні приклади для роботи с.
>> Крім цього, якщо ви, хлопці збираються до CS50 Hackathon, Я можу або може
же не бути там, і я можу допомогти з деяким розвитку IOS теж.
Так, велике спасибі, хлопці.