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 Колеры. А цяпер, давайце паставіць кнопку там, ці не так? Таму што мы хочам, каб зрабіць гэта інтэрактыўнае. Такім чынам, давайце паставіць кнопку тут. I мы будзем называць гэтую кнопку "кран тут працягнуць ". Мы ў цэнтры яго, таксама На самай справе, гэта ўжо па цэнтры. Так. Такім чынам, зараз у нас ёсць кнопка. І калі мы запусцім гэта зноў, мы збіраемся каб мець добрую маленькую кнопку тут. І я магу націснуць яе, але яна не робіць нічога, таму што мы яшчэ не зрабілі нічога з дапамогай кнопкі пакуль. Так, давайце створым яшчэ адзін від, ці не так? Так, скажам, я хачу націсніце што кнопка, і я хачу перайдзіце на іншую старонку - іншае меркаванне. Тое, што я збіраюся зрабіць, гэта, я магу стварыць кантролер выгляд, ці не так? Цяпер я буду націсніце на маёй кнопкі, а затым, галоўнае, што я збіраюся націсніце - ці - так, націсніце кіравання на клавіятуры. Кантроль. Націсніце на кнопку, а затым перацягнуць. Такім чынам, памятаеце ўтрымліваць клавішу кіравання. Давайце зробім гэта зноў. Так, правесці кантроль, націсніце і перацягнуць да таго, што вы хочаце зрабіць. ОК. А цяпер, у мяне ёсць некалькі варыянтаў тут. Я магу альбо штурхаць, ці я магу зрабіць мадальны, ці я магу зрабіць звычай. Націсніце толькі калі ў вас ёсць рух кантролер. Прама цяпер, наш самы першы выгляд Кантролер ці не знаходзіцца ўнутры любога рух кантролер. Так, кантролер навігацыі з'яўляецца адным што дае зваротную кнопку на дадатак 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 таксама. Так, вялікі дзякуй, хлопцы.