>> DANIEL Armendáriz: Усім прывітанне, Сардэчна запрашаем у развіццё IOS прыкладання
з SWIFT.
Я Дэн Armendariz.
Я precepter кампутара навука тут у школе
інжынерных і прыкладных навук.
І Свіфт на самай справе выгляд з сапраўды акуратны мове.
І ў мяне ёсць некаторыя планы на сённяшні дзень.
Так на працягу наступнага гадзіны ці такім чынам мы збіраемся паглядзець на само развіццё IOS прыкладання
з дапамогай Xcode і фактычна ствараючы некаторыя вельмі просты, вельмі простыя прыкладання.
І, гледзячы на ​​тое, як вы на самай справе прыняць гэтыя прыкладання,
і будаваць іх, а на самай справе пакласці іх на прыладзе IOS.
Некаторыя з рэчаў, якія мы не будзем глядзець на
будзе ўключаць у сябе такія рэчы, як на самай справе прымае заяўку
і пакласці яго на App Store.
Там гэта шмат навучальных дапамог у Інтэрнэце, што дапаможа вам у гэтым аспекце яго.
Але і таму, што, як частка CS50, вы атрымаеце
каб далучыцца да развіцця кампаніі Apple Каманда, каманда распрацоўшчыкаў прыкладання CS50-х гадоў.
Калі вы не зрабілі, што яшчэ і вы звязаны з CS50,
Я рэкамендую вам зрабіць гэта, таму што гэта
як вы зможаце стварыць некаторыя праграмы ў Xcode,
будаваць іх, а на самай справе пакласці іх на некаторыя з вашых IOS прылад
Калі ў вас сапраўды ёсць фізічная прылада IOS.
Калі ў вас няма фізічнага IOS Прылада, якое больш чым у парадку.
Вы на самой справе можам распрацаваць для IOS.
І Xcode мае сімулятар, які дазваляе
каб убачыць вашу заяўку ў дзеянні на кампутары.
Але ён накшталт ёсць прыемная рэч на самай справе гуляць і ўзаемадзейнічаць
з дадаткам на рэальным прыладзе.
Так што пара патрабаванняў да на самай справе ўсё гэта развіццё.
Адзін з іх з'яўляецца тое, што Вы павінны мець Mac.
Ён павінен быць запушчаны 10.9.4 або больш позняй версіі для таго, каб зрабіць развіццё з імклівым.
>> Вы можаце выкарыстоўваць раней версія для развіцця
з Objective-C для МО і Mac.
Але я рэкамендую, і шмат Прыклады, якія мы бачым сёння,
выкарыстоўваць 10,10 Йосемити.
Так што калі вы яшчэ не выканана, гэта добрая нагода, каб зрабіць гэта.
Цяпер Xcode 6.1 апошняя версія інтэграванае асяроддзе распрацоўкі
што кампанія Apple прадастаўляе бясплатна, што для Вы можаце спампаваць з крамы прыкладанняў.
І я рэкамендую вам таксама запусціць апошнюю версію.
>> Калі вам здарыцца быць запушчаны раней версія, Xcode 5 і ніжэй проста
проста не падтрымліваюць хуткія б там ні было.
І бэта-версіі шасці, якія былі вызваленыя на працягу лета,
падтрымліваюць хуткія, але ёсць быў велізарны нумар
змяненняў у мове, досыць так што код, які вы
будзем глядзець на і што вы можа знайсці ў Інтэрнэце
не можа быць скампіляваны правільна ў гэтых папярэдніх версіях Xcode.
Такім чынам, яшчэ раз, яшчэ, калі вы не ёсць уліковы запіс распрацоўніка,
Я рэкамендую вам пайсці developer.apple.com.
Зарэгістравацца стварыце ўліковы запіс распрацоўніка, і далучыцца да каманды распрацоўшчыкаў CS50 дадатак.
Гэта забяспечыць вам магчымасць для кампіляцыі прыкладанняў
і паклаў іх на вашым прыладзе.
Такім чынам, давайце пачнем.
Самае першае, што мы збіраемся зрабіць, гэта
на самай справе стварыць вельмі просты праект у Xcode
што дазволіць вам падаць заяўку.
>> Так што калі вы яшчэ не маюць Xcode адкрыты, ісці наперад і адкрыць яго
і стварыць новы праект.
Спецыяльная застаўка адкрыецца, і дасць вам
некаторыя варыянты пра тое, што гэта тое, што вы хочаце зрабіць.
Адразу скажам, што вы хочаце стварыць Новы праект, новае прыкладанне.
Гэта акно з'явіцца, пры ўмове, што вы карыстаецеся Xcode 6.1.
Прама зараз, і Працягласць гэтага семінара,
мы будзем выкарыстоўваць адзінкавыя прыкладання Від, проста
свайго роду базавай заяўцы каб атрымаць вашыя ногі мокрыя.
І вы можаце пашырыцца па сваім меркаванні адтуль.
>> Націсніце кнопку Далей на гэтым этапе.
Цяпер тут ёсць некалькі рэчаў, што вы, магчыма, захочаце, каб увайсці.
Назва прадукту Імя Вашага праекта.
У гэтым выпадку, я проста буду называць яго Seminar1
таму што гэта наш першы прыклад.
Назва арганізацыі, у у гэтым выпадку гэта толькі маё імя.
Вы, вядома, можаце змяніць яго у сваё ўласнае імя, ці CS50.
Ідэнтыфікатар арганізацыі, калі вас здараецца, ёсць вэб-сайт, проста ўзяць
Даменнае імя рэверс, com.yourname.
а затым назва прадукту павінен з'явіцца аўтаматычна
Пасля гэтага ў якасці ідэнтыфікатара расслаення.
>> Відавочна, мова, які мы збіраецеся выкарыстоўваць на сённяшні дзень з'яўляецца хуткім.
Можна, вядома, выкарыстоўваць Objective C для гэтага, але сёння будзе хуткім.
І мы будзем цяпер казаць, універсальныя прылады, так
што ён працуе на абодвух IPAD і iPhone.
І мы выйдзем ядро Дадзеныя, паводле, каб захаваць
Праект адносна проста да пары да часу.
Так што давайце ісці наперад і націсніце кнопку Далей.
І гэта будзе пытацца мяне дзе я хачу, каб выратаваць яго.
Я проста захаваць яго на маім працоўным стале зараз.
>> Добра, так што зараз гэта тое, што будзе адбудзецца, калі вы на самой справе адкрыты Xcode.
І заўважце, што Самае першае, што вы бачыце
гэта клічнік, што кажа не асобу падпісанне знойдзены.
Я наўмысна зрабіў гэта на маім кампутары, і я
спадзеючыся, што я збіраюся быць у стане фактычна гэта выправіць,
таму што я хачу, каб вы, як гэта сапраўды будзе працаваць на вашай машыне.
>> Ідзіце наперад і націсніце Выпраўленая праблема.
Яна будзе прасіць вас, калі ў вас ёсць існуючую ўліковы запіс Apple, распрацоўшчыкаў.
Гэта дзе далучэнне CS50 каманда распрацоўшчыкаў прыкладання
Важна, каб вы не толькі ёсць прыкладанне кошт,
але вы таксама павінны Магчымасць падпісаць прыкладання
і паклаў іх на вашым прыладзе IOS.
Гэта не-- пстрычка Выпраўленая праблема не варта
Калі вы толькі збіраецеся будаваць і развіваць на мясцовым узроўні,
цалкам у сімулятары IOS.
>> Але цяпер я збіраюся распрацаваць і паставіць іх
на маім Ipad, які будзе магчымасць трансляваць, а таксама.
Так што я хачу на самай справе дадаць гэта.
І гэта-то спытае, мне ў маім Apple ID.
Так што гэта будзе гэта.
І ў мяне ёсць за маім пароль, які сюды.
Так дайце мне толькі адну секунду, каб знайсці, што, і скапіруйце і ўстаўце яго сюды.
>> Націсніце кнопку Дадаць.
Гэта будзе прасіць мяне якая каманда Я хачу далучыцца да яе.
Я збіраюся зрабіць інжынернай школе.
Націсніце Гуляць.
Ой, што гэта не той.
Давайце зробім гэта.
Спадзяюся, што адзін будзе працаваць.
Гэта адзін да гэтага часу не працуе.
Мы бяжым з добрых тут.
ОК, на гэты раз павінна працаваць.
Зараз зачыніце гэта.
Зараз давайце зробім школу машынабудаванне, націсніце абраць.
>> А цяпер, спадзяюся, пасля пару секунд Вы can-- ОК,
Я адклікаць і запыт.
Аб чалавек, гэта будзе не працуюць.
Добра, я паспрабую іншы.
Давайце зробім гэты тут.
Жывыя дэмкі не ўдаецца мне.
Мы, магчыма, прыйдзецца вярнуцца да толькі што будынак, цалкам лакальна,
але гэта было б ОК ў гэтым выпадку.
>> Дык вось, у той час як гэта на самай справе Рабочая, што мы збіраемся зрабіць, гэта проста
стварыць вельмі просты Прывітанне свет прыкладанняў.
Так што гэта Xcode.
І калі вы яго яшчэ не бачыў, яго можа быць трохі страшным на першы погляд.
Там гэта шмат шкла, ёсць шмат дэкарацый у розных галінах.
Але толькі разумею, што ёсць сапраўды некалькі асноўных кампанентаў
у гэтым асяроддзі распрацоўкі.
На далёкай левай ўсе файлы якія дастасавальныя толькі да вашай праграме
ці вашага канкрэтнага праекта.
Мы будзем націснуўшы вакол на некаторых з іх, і мы
адзначыць найбольш важныя з цягам часу.
На крайні справа, мы ёсць набор атрыбутаў.
І ўсе гэтыя атрыбуты, ёсць розныя шкла для атрыбутаў.
Шкла будзе мяняцца ў залежнасці ад кантэкст асноўнага зместу, якія
аказваецца ў сярэдзіне.
Цяпер сярэдні можа на самай справе паказваюць Вы мноства рэчаў, напрыклад
Ваш код сам па сабе.
Ці вы можаце на самой справе have--, калі Вы націскаеце на раскадроўкі, якія
гэта, дарэчы, проста графічны прадстаўніцтва Вашай карыстальніка
інтэрфейс для вашага application-- то атрыбуты панэлі
на вельмі далёкім правам на самай справе змяніць.
Зараз ёсць некалькі іншых рэчы, якія я хачу звярнуць увагу.
Вы можаце сартаваць вывучыць вакол у асяроддзі па сваім меркаванні.
Але адна з рэчаў, якая была вельмі карысная
гэта кнопка тут, у правым верхнім куце акна.
Там гэтая кнопка, Падобна на тое, на далёка
злева ад яго пункт ў суправаджэнні двух колах і сартавання
з двух стрэлкі, якія паказваюць адзін ад аднаго.
Пры пераключэнні паміж стандартны рэдактар, які
гэта далёка левага, адзін які абраны па змаўчанні,
і дзве акружнасці перакрываюцца адзін аднаго, што вы на самай справе атрымліваеце
падвойныя выгляд панэлі.
>> І гэта на самай справе будзе карысна для нас
калі мы павінны звязаць элементы у карыстацкім інтэрфейсе да кода.
І мы будзем гаварыць больш пра што ў хвіліну.
Але зразумейце, што калі вы атрымаеце яшчэ больш шкла, як гэта,
вы можаце спрасціць ваш погляд проста трохі, націснуўшы таму
на адной рэдактары.
Усё ідзе нармальна.
Таму ў асноўным мы маем код, пазначаны на левы, атрыбуты справа,
і тое, што гэта мы працуем тут, у самым цэнтры.
>> Дык вось, я націснуў на галоўнай раскадроўкі.
І раскадроўкі, зноў жа, спосаб Xcode
што вы можаце стварыць свой карыстачу інтэрфейс з дапамогай проста перацягнуць
метады.
І так наша вельмі Першае прымяненне гэтага
гэта менавіта тое, што мы збіраемся рабіць.
Мы збіраемся спусціцца да вельмі далёка ў правай ніжняй частцы
на экране, які змяшчае Разнастайнасць элементаў карыстацкага
што вы можаце націснуць і перацягнуць стварыць свой карыстацкі інтэрфейс.
>> Зараз усё гэта элементы называюцца праглядаў
паколькі ў іх нейкі пункту гледжання.
Там жа выгляд малюнка, для Напрыклад, на самай справе паказваюць,
малюнак на карыстацкім інтэрфейсе.
Там гэта выгляд табліца на самай справе паказваюць табліцу.
Гэтак далей, і гэтак далей.
Там гэта шырокі спектр погляды, якія вы можаце выбраць тут.
Так што цяпер мы ідзем шукаць этыкетцы.
Вы можаце проста прагартаць усе спісы, што там.
Але ёсць пошук бар у самым нізе
што робіць яго лягчэй вызначыць, канкрэтныя думкі, што вы на самай справе
хачу, каб перацягнуць ў карыстацкім інтэрфейсе.
>> Знойдзена мой лэйбл.
Я збіраюся цягнуць яго тут, прама на мой прыкладання.
Прама там, у сярэдняй выглядае добра.
І я збіраюся ўвесці "Hello World!"
Націсніце Enter.
Цяпер у мяне ёсць ярлык.
Гэта не выглядае, як быццам гэта у цэнтры цалкам прыстойна.
Так што я магу паспрабаваць паўторна яго ў цэнтр.
На шчасце, гэта прапаноўвае гэтыя даведнікаў, каб зрабіць рэчы нашмат лягчэй.
Я збіраюся паспрабаваць скампіляваць яго.
Спадзяемся, што яна на самай справе працаваць тут.
А калі гэта не так, праз хвіліну гэта будзе на самой справе з'яўляюцца на маім Ipad.
Гэта прама тут.
Там яно і ёсць.
>> Такім чынам, вось яно што.
Мы скончылі.
Мы стварылі наш вельмі Першае прыкладанне.
Цяпер, відавочна, гэта нічога не рабіць.
Гэта проста пазнака.
Там няма ніякай сувязі паміж Карыстацкі інтэрфейс і код.
Так што, калі мы на самай справе хацелі стварыць гэтую сувязь,
калі мы сапраўды хацелі мець нейкі сувязі паміж элементамі
якія існуюць на экранам і код, які
дазваляе нам кантраляваць гэтыя элементы, то
мы на самай справе трэба паглядзець на сам код.
>> Так што гэта тое, што называецца ViewController.swift.
І, у асаблівасці для Вашы першыя некалькі праграм,
Гэта будзе свайго роду Большая частка кода, які вы enter--
будзе ў гэтым дакуменце тут.
Там вельмі шмат рэчаў гэта тут да гэтага часу, ці не так?
Там гэта камплект UI Імпарт класа, перавызначыць, [? фанк ,?] ўсе гэтыя розныя рэчы.
І гэта не зусім зразумела, што гэта тое, што ўсё гэта значыць.
Такім чынам, давайце зробім крок назад ад ад Xcode для трохі
і паглядзець на саму мову, імклівае.
>> Такім чынам, з хуткім, гэта было ў дызайн і распрацоўка
на Apple, на працягу прыблізна чатырох гадоў да майго разумення.
І ёсць некалькі функцый пра яе, што сапраўды выдатна.
Перш за ўсё, гэта складзены мовы, гэтак жа, як С.
Такім чынам, вы спачатку павінны скампіляваць яго і запусціце яго
Перш чым вы сапраўды выканаць код, які прыводзіць.
Але ёсць, у адрозненне ад C, інтэрактыўны падкажыце што можна рэальна працаваць
і ўвядзіце адвольныя каманды ў.
І вельмі падобна на кансолі JavaScript, якія вы можаце быць знаёмыя з цяпер,
гэта на самай справе будзе ацэньваць тых, каманды і забяспечыць Вам выхад.
І яны нават узялі што да наступнага ўзроўню
і яны стварылі нешта званыя гульнявыя пляцоўкі ў Xcode
што дазволіць вам візуальна працаваць з кодам.
І мы сапраўды ўбачыць некаторыя прыклады таго, што ў ледзь-ледзь.
Ён заснаваны на C. C ляжыць у аснове гэта, таму што ўсе кампілятары
стварыць код з С і стварыць аб'ектны код ад яго.
Але гэта сапраўды акцыі параўнальна мала сінтаксіс.
Гэта будзе выглядаць даволі розныя.
Там будзе некаторае падабенства.
Але ёсць будзе даволі мала адрозненняў
у параўнанні, скажам, JavaScript або PHP.
І мы будзем паказваць гэтыя у хвіліну.
>> Цяпер адзін з самых вялікіх рэчаў, аб імклівы, што прыемна
у тым, што, асабліва ў параўнанні З, гэта азначала, каб быць бяспечным.
Усё ў ім прызначана для быць вельмі моцна набраў ст.
На самай справе гэта амаль раздражняе Па-першае, калі вы ўпершыню
пачаць працаваць з хуткім, наколькі колькі гэта ўзмацняе тыпаў ва ўсім свеце.
Усё гэта радок павінен заставацца радок.
Гэта вельмі цяжка разабрацца ў пераўтварэнні гэта ці прымусіць яе ў нейкай іншай форме.
>> І зноў жа, мы пакажам прыклады гэтага.
Але ў канчатковым выніку зразумець, што гэта азначала, каб абараніць вас,
і вам я маю на ўвазе ваш код, ад збой у нейкі жудасны шлях, калі
ў вас ёсць нейкія неадпаведныя тыпу.
І зноў жа, працаваць з ёй.
Таму што гэта будзе непрыемна спачатку як вы спрабуеце высветліць, чаму менавіта
Вы атрымліваеце гэта незвычайнае памылкі справу з тыпамі.
Але гэта будзе стаіць у канцы.
>> Гэта справа з аўтаматычным кіраванне памяццю,
таму ўжо не зрабіць вас мець справу з рэчамі,
як Таноса і бясплатна, і ўсё з гэтых відаў рэчаў.
І гэта таксама прызначаны для абагульненняў.
Такім чынам, хоць мы можам выкарыстоўваць Xcode для стварыць IOS прыкладанняў і прыкладанняў для Mac,
мы таксама можам проста выкарыстоўваць яго ў якасці скрыптовай мовы.
І таму мы можам выкарыстоўваць яго роду не замест PHP або замест
Пітона на самай справе хутка разабраць і апрацаваць
некаторыя дадзеныя, якія ў нас ёсць на нашым кампутары.
>> Ён мае шырокі спектр сучасных Асаблівасці, дадатковыя прыналежнасці, зменлівасць,
джынэрыкі, замкі, і многае з гэтага рэчы, якія вы можаце ці не можаце прызнаць.
І гэта толькі выгляд шкадавання частка мовы, што некаторыя з іх
Сартаваць футурыстычных сучасных элементаў, якія ўтрымліваюцца ў элементы
так глыбока ўкаранілася, што я на самой справе будзе ёсць, каб навучыць вас CS50.5 няшмат.
>> Мы павінны даведацца крыху больш аб некаторых асаблівасцях таго,
каб зразумець, што адбываецца далей, і так што вы можаце паглядзець на код
і не адчуваць сябе цалкам страчаныя.
І вы ўбачыце, што я маю на ўвазе з тым, што літаральна за хвіліну.
Такім чынам, let's-- дастаткова гэтага Сартаваць тэарэтычнага матэрыялу.
Давайце рэальна зірнуць на наш Самы першы Swift праграма.
Гэта адна радок кода.
Радок 14 тут, гэта кажа друку L N прывітанне CS50.
>> Так што некалькі рэчаў, якія гэта вельмі розныя пра гэта ў параўнанні
да рэчаў, якія вы маглі б выкарыстоўваецца, каб з З, напрыклад.
Адзін з іх з'яўляецца тое, што няма ніякага intmain, няма ўключаюць раздзел,
няма ні гэтага дадатковага матэрыялу.
Ўключаюць у сябе, як стандарт I / O, як у бібліятэках
што на самой справе забяспечваюць Стандартныя функцыі мовы,
аўтаматычна ўключаюцца, як частка стандартнай бібліятэкі Свіфта
і што аўтаматычна імпартуюцца.
Вы не павінны рабіць што імпарт ўручную.
>> Intmain не існуе, паколькі Галоўная кропка ўваходу для кода
на самай справе ў пачатку кода.
Такім чынам, любы код, які ў вас ёсць з пачатку
на самай справе будзе выконвацца з самага пачатку.
Так што гэта сапраўды істотна спрашчае.
Звярніце ўвагу таксама, што няма коскі.
Там няма кропкі з коскі ў гэтай мове.
Вы ставіце заяву на індывідуальнай лініі
а затым наступная радок ўяўляе іншую заяву.
Калі Вы жадаеце пакласці mulitiple заявы онлайн,
то ў вас ёсць аддзяліць яго кропкай з коскі.
Але па большай частцы, Добры стыль, мы
ніколі не ўбачыце коскі для мэты, якія падзяляюць справаздачнасці
у SWIFT.
Так як гэта сапраўды працуе?
Ну вельмі падобна на C мы на самай справе трэба сабраць гэта.
І таму мы можам зрабіць, што з дапамогай Свіфт З, а затым 1.Swift.
А потым праз пару хвілін будзе скампіляваны
і тады я магу запусціць адзін пункт.
І чым гэта будзе проста сказаць "Прывітанне CS50."
Высокі, так што мы ідзем.
Там наш першы прывітанне свет праграма.
Давайце пяройдзем да нумар два.
>> Зараз у this-- гэта змянілася ледзь-ледзь, таму што ў той час як правіла, вы
do-- на самай справе заўсёды вы павінны скласці хуткі прыкладанне перад вамі
рэальна працаваць it-- адзін з выдатных асаблівасцяў
што я згадваў раней, што Свіфт сапраўды можа быць выкарыстаны ў той
з псеўда-рэжыме інтэрпрэтацыі, ёсць на самай справе, як перакладчыка.
Але тое, што гэта будзе зрабіць, гэта ёсць з'яўляецца, па сутнасці, хуткія прыкладання
што вы можаце запусціць.
>> Так, напрыклад, калі вы проста ўвядзіце Свіфт тут, што адбудзецца
з'яўляецца тое, што вы атрымаеце падказку.
І вы можаце ўвесці хуткія Код, раздрукаваць прывітанне, і запусціць яго.
І гэта будзе на самой справе print-- Ну, гэта не друкавалі ў гэтым выпадку
таму што гэта друкуецца па цэнтры з, якіх не відаць тут.
Але гэта на самай справе можа функцыянаваць.
І таму ў дадзеным выпадку, я проста збіраецца выкарыстоўваць гэта ў якасці сцэнара.
І я магу на самой справе запусціць гэты код.
Так так, што я на самой справе запусціць гэта будзе трохі адрознівацца,
але вы ўбачыце, што праз хвіліну.
Цяпер, у гэтым выпадку, што мы збіраемся зрабіць гэта спачатку вызначыць зменную.
Так што гэта, як мы вызначаем пераменная хутка,
што мы выкарыстоўваем, хай ключавое слова, а затым па імя зменнай,
а затым мы прывядзем некаторыя ініцыялізацыі дадзеных неабавязкова.
Так што гэта справа мы вызначаем канстанта, названая імя,
і мы збіраемся выкарыстаць, што Выхад нашай друку лініі
у самым нізе, прывітанне імем.
>> Зараз звернеце ўвагу, што замест выкарыстання% S, мы можам інкапсуляваць імя гэтага
Пераменная в / () і быць у стане аб'яднаць у змесціве гэта
Радок у гэты радок.
Цяпер у адрозненне ад C, радок бягучая рэальная увядзіце SWIFT.
І так сядзіць побач Інтс і побач
падвойваецца вельмі лёгка і, натуральна, у параўнанні
некаторыя з іншай мовы, якія мы ўжо бачылі.
Так што гэта будзе на самой справе працаваць гэтак жа, як можна было б чакаць.
>> Я магу запусціць 2.swift.
І мы бачым, што мяне клічуць на самай справе зрошчвання ў "Hello Dan."
Добра, выдатна.
Пераходзячы да нумар тры.
Зараз гэта было трохі белага хлусня, што я
сказаў, што шлях, які мы заяўляем, зменныя, каб выкарыстоўваць выпушчаных ключавое слова.
Як шмат разоў, як вы, магчыма, вы можаце зрабіць Каб выкарыстоўваць давайце, таму што, што гэта робіць
гэта вызначае канстанту.
І гэта кажа імклівы, што ён можа аптымізаваць хуткасць вашага прыкладання
таму што ён ведае, што пераменная не зменіцца.
>> Так старанна ацэньваць калі вы збіраецеся выкарыстоўваць
пераменная для Мэты яго змянення.
І калі вы збіраецеся стварыць зменную проста
правесці некаторыя дадзеныя, і гэта на самай справе не збіраецца мяняць.
Так што гэта паняцце нязменнасці, гэта на самай справе не збіраецца мяняць,
з'яўляецца важным нават далёка ўніз, як вызначэння зменных.
Дык вось, калі мы задалі імя, Хай імя, і ў гэтым выпадку
гэта пастаянная, то ёсць тыпу радок, і яна роўная Дан.
>> Так у той час як у да версія, яна infers-- і "гэта"
Я маю на ўвазе swift-- Свіфт выводзіць тып дадзеных
што мы ўступілі ў зменную.
У гэтым выпадку, мы можам быць відавочным.
Дык няхай тады імя гэтага пераменная імя, затым двукроп'е.
І пасля двукроп'я ня мы пазначыць тып дадзеных.
Так больш не гэта INT імя або Назва радок або што-то падобнае.
Але замест таго, каб дазволіць этыкетку, мы вызначэнне або няма
гэта пастаянная або пераменная, за якім варта імя,
затым тып дадаткова.
>> Такім чынам, у гэтым выпадку мы вызначаем гэтае імя радок.
Мы кажам, што Дэн.
І зараз у мяне іншая пераменная, у гэтым выпадку ён называецца пазнакай.
Але заўважце, што гэта з прэфіксам Вар ключавым слове.
Сродкі вар ключавых слоў што гэтая пераменная можа
змяніць на больш познім этапе ў Час, дзесьці ў кодзе
мы можам на самай справе змяніць яго, і ён не дасць нам якой-небудзь канкрэтнай памылкі.
>> Мы можам зрабіць стандартны аб'яднання аператар тут з дапамогай сімвала плюс
на самай справе дадаць наш імя ў гэтым радку.
І тады мы зможам раздрукаваць як мы толькі што бачылі хвіліну таму.
Зараз давайце казаць, што вы Каб стварыць зменную
але вы не хочаце, каб ініцыялізаваць яго яшчэ.
Вы яшчэ не хачу пакласці любыя дадзеныя ў ім.
Ну што вы павінны сказаць хуткім, што тып дадзеных,
будзе, перш чым вы можаце фактычна вызначаюць яго правільна.
>> Такім чынам, у гэтым выпадку, калі мы вызначылі пераменная з імем класа, мы павінны быць
Відавочнае пра яго тыпе, паколькі ён не можа зрабіць выснову, проста гледзячы
на ініцыялізаваць дадзеныя што вы дае да яго.
Гэта дасць нам пра памылку, калі проста ўвядзіце вар клас, напрыклад,
таму што яна не мае тыпу таму.
Так клас = 100.
Так што 100 ўяўляе сабой цэлае лік, яго падыходзіць вельмі добра ў гэтым.
Ён будзе працягваць функцыянаваць.
Мы бачым, як тое можа аб'яднаць гэта ў.
Цяпер вы можаце быць спакуса, калі вы на самой справе
хацеў аб'яднаць пераходзяць у іншы тэкставай радкі,
ў іншую радок, што вы проста выкарыстоўваць той жа аператар канкатэнацыі.
І гэта, як правіла, дакладна.
Але Свіфт не дазволіць вам няяўна змяніць тып дадзеных.
Такім чынам, у дадзеным выпадку гэта лінія, 25, не ўдасца
таму што гатунак цэлы лік, а не радок.
І такім чынам, ёсць неадпаведнасць набор тыпаў.
Такім чынам, вы павінны быць відавочнымі, калі Вы хочаце змяніць гэтыя дадзеныя,
калі вы хочаце, каб прымусіць гэта дадзеных у іншы тып
і сказаць, добра, я хачу ўзяць Гэты гатунак, які з'яўляецца цэлым лікам,
і пераўтварыць яго ў радок.
>> Такім чынам, я бяру капіталу S тыпу String ўсе тыпы, вы заўважыце ,, капитализируются,
Int, Double, String, гэтак далей, і гэтак далей.
Усе яны капитализируются проста каб зрабіць рэчы прасцей.
І мы будзем казаць выгаду Радок пераходзяць у яго класе.
І гэта створыць Радок з гэтага ліку.
І тады мы зможам аб'яднаць два вельмі прыгожа.
Любыя пытанні па гэтай рэчы да гэтага часу?
Добра, давайце араць да нумар чатыры.
>> Зараз давайце пагаворым аб некаторых больш прасунутых структуры, як масівы і цыклы.
І ў адрозненне ад C, масівы ў Swift не прадстаўлены паказальнікамі.
Ўказальнікі ў SWIFT, Хоць яны існуюць, называецца
як небяспечных паказальнікаў або некаторыя падобны тып, як гэта,
яны не падвяргаюцца вас нармальна.
Такім чынам, становіцца вельмі цяжка для Вас, каб маніпуляваць
памяці прама з вашага кампутара.
>> Так масівы толькі тып дадзеных.
І яны спасылаюцца, выкарыстоўваючы гэты від зараз стандартным квадратным абазначэння кранштэйны
што вы бачылі раней.
Але калі вы на самой справе хочаце, каб вызначыць тып зменнай
ў выглядзе масіва некаторых Асаблівы тып, то вы
пакласці, што тып ў квадратных дужках.
Так што я кажу тут з'яўляецца тое, што Я ствараю зменную з імем
гатункі тыпу INT масіва.
І я ўсталёўваю, што роўна некаторыя ініцыялізаваць дадзеныя, якія ў гэтым выпадку
100, 0, 90, 85, які знаходзіцца ўсяго ў Калекцыя адвольных класаў тут.
У цяперашні час у гэтым выпадку я мог бы, памятаеце, выдаліць тып,
і было б у стане вывесці яго на аснове ініцыялізавацца дадзеных.
Але калі я выдаліў гэта і Мне трэба, каб усталяваць яго пазней,
то я б, каб пераканацца, што ў мяне ёсць тып там.
Добра, давайце рухацца далей.
Такім чынам, мы can-- масівы падаеце нам выбар
метадаў праз такі кропкавай натацыі у вас, верагодна, ужо знаёмыя з.
Так grades.count, напрыклад, кажа нам менавіта столькі
элементаў, якія якая змяшчаецца ў дадзеным масіве.
>> Калі я хачу, каб дадаць additional-- Зараз звернеце ўвагу, што гэта Var
і не-- гэта зменная і не з'яўляецца пастаяннай, якая
азначае, што я магу змяніць змесціва гэтага масіва, я магу дадаць аб'екты да яго.
Але я не магу проста сказаць гатунку а затым у квадратных дужках
чатыры, таму што гэта будзе з памылкі межаў у гэтым выпадку.
Калі я хачу на самай справе змена памер масіва,
Я павінен выкарыстоўваць метад кропка дадаць да дадаць сёе-тое да ў самым яго канцы.
Я магу, аднак, змена індывідуальныя паказчыкі.
>> Так што я мог бы выкарыстаць ацэнкі а затым у квадратных дужках
нулявы маніпуляваць гэты першы індэкс і гэтак далей, як вы звычайна чакаеце.
І што я магу зрабіць тое ж самае на самай справе атрымаць дадзеныя з гэтага таксама.
Зараз ёсць таксама свайго роду фантазіі метад зрабіць гэта, ацэнкі плюс роўных
а затым яшчэ адзін індэкс, які будзе append--
ці не іншы index-- але іншы спіс, які
будзе дадаваць гэты спіс да задняй часткі гатункаў.
І ацэнка будзе затым змяшчаць усё гэта.
Але гэта свайго роду дадатковай рэч што я проста пакажу вам, для задавальнення.
>> Зараз ёсць цыкл.
І гэта пачатак, дзе рэчы пачынаюць крыху змяніцца.
Звярніце ўвагу, як гэта для завесы адрозніваецца ад для завес ў З
Цяпер адзначу, што для завес ў Swift можа
быць зроблены, каб выглядаць, як на завес ў С, але ёсць шмат больш карысных канструкцый
што істотна ліквідаваць неабходнасць мець для вар я роўная 0 з коскі я
менш, чым нейкі даўжыні, гэтак далей, і гэтак далей, ці не так?
І гэтая канструкцыя з'яўляецца толькі адным з іх.
>> Для індэкса, індэкс новага Пераменная, у гэтым выпадку, у дыяпазоне.
І тое, што я хачу сказаць, што ёсць Дыяпазон ад 0 усё аж да
але не уключаючы grades.count.
Так што гэта кропка кропка менш чым знак уяўляе
Дыяпазон значэнняў, пачынаючы з нуля усё, аж да grades.count мінус 1.
Існуе асобны аператар, які існуе,
што кропка кропка кропка, якая б азначае, што я хачу дыяпазоне ад нуля
гатункам разлічваць ўключна.
>> Але ў гэтым выпадку, так як яны масівы нулявой адзнакі, мы, вядома,
не хочуць ісці на Максімальную колькасць класаў.
Я магу сумаваць ацэнкі, як вы, магчыма, чакаць, і выхад ўсе гэтыя рэчы.
ОК, як рухацца далей.
Зараз давайце пагаворым пра функцыі.
Для таго, каб вызначыць функцыю Вы карыстаецеся ключавое слова фанк.
І зноў жа, у Свіфта вы павінны быць вельмі асцярожныя з тыпамі.
Вы дае яму параметры вызначаючы, напрыклад,
імя параметру і Затым у Colin, тып дадзеных
што вы чакаеце, што Параметр прыняць.
>> Такім чынам, у дадзеным выпадку мы маем Функцыя называецца граф класа друку.
Ён прымае зменную заліковую кніжку, ці, хутчэй, параметр, званы заліковую кніжку.
І мы чакаем, што заліковую кніжку быць масіў цэлых лікаў.
Калі заліковую кніжку пусты, Мы надрукуем адну рэч.
У адваротным выпадку мы будзем друкаваць нумар марак, што гэта на самай справе.
>> Цяпер, калі мы хочам, каб вярнуцца некаторы значэнне, то шлях
што мы Мадыфікуючы гэта вызначэнне на самай справе выкарыстаць гэта ключавое слова стрэлкай,
або выкарыстоўваць гэтую стрэлку якое азначае.
Дык вось, мы збіраемся вызначыць Функцыя называецца сярэдняй.
Мы збіраемся прыняць спіс нумароў.
І мы збіраемся вярнуцца двайны, які, мы спадзяемся,
як сярэдняе гэтага масіва.
А для таго, каб зрабіць гэта, для таго, на самай справе вылічыць гэта сярэдняе,
мы будзем прымаць суму і мы, Вядома падсумаваць ўсе аб'екты
у гэтым масіве.
>> Звярніце ўвагу, што ёсць новы стыль для цыклу тут.
Мы не павінны быць відавочнымі аб перабору кожнага элемента,
але мы можам замест сказаць класа і заліковую кніжку, сэнс
што для кожнага элемент, які мы маем у гэтым,
прадугледзець, што пункт у гэтым пераменная з імем класа.
І я хачу зрабіць што-то з ім.
Так што я збіраюся падвесці ўсе гэтыя дадзеныя а на самай справе вярнуцца двайную дзяленне.
>> Зараз звернеце ўвагу зноў тут ёсць Канцэпцыя цэлалікавага дзялення ў Свіфт.
Калі вы хочаце падвоіць падзел таму што вы хочаце знакаў пасля коскі,
то вы павінны быць яснымі, не толькі аб адным баку,
таму што ён не збіраецца, каб дазволіць вам прымусіць дадзеныя па абодва бакі ад гэтага,
ў вас ёсць на самой справе, вядома абодва бакі ў парным разрадзе
так што вы вельмі Відавочнае аб пераканаўшыся,
што вы робіце двайны дзяленне.
>> Давайце рухацца далей.
Так што, калі я сапраўды хачу, каб accept-- Такім чынам, у гэтым канкрэтным прыкладзе,
гэта па-ранейшаму каманда лінія дадатак.
І мы пачынаем бачыць некаторыя з абмежаванні малады мовы
у тым, што хоць мы можам доступ да аргументы з дапамогай
гэта process.arguments, гэта да гэтага часу не абавязкова чыстым
рэч, якую мы калі-небудзь бачылі.
Але ў асноўным я заклікаю вас да выгляду Зірніце на гэты код
і паспрабаваць высветліць, што менавіта адбываецца.
>> Па сутнасці тое, што адбываецца ў тым, што мы бярэм спіс аргументаў
і былі прымусіць іх у цэлыя лікі, а затым мы
збіраецца выкарыстоўваць гэта ў якасці шляху для друку з ў сярэднім ўсе нашы класы.
Рухацца далей.
Зараз ёсць яшчэ адзін тып data-- яшчэ тып дадзеных, а не масівы
званыя слоўнікі, якія вельмі падобна на хеши або хэш-карты
і падобныя да таксама Асацыятыўныя масівы ў PHP.
Такім чынам, яны маюць уяўленне ключоў і значэнняў.
>> І яны вызначаюцца таксама з Гэтая плошча абазначэння кранштэйн,
але розніца ў тым, што слоўнікі маюць
ўнутры квадратных дужак, двукроп'я.
І Двукроп'е падзяляе дадзеныя тып, які з'яўляецца ключавым і значэнне.
Такім чынам, у дадзеным выпадку, я збіраюся стварыць Слоўнікі прыняць некаторыя ацэнкі.
І гэта будзе тып радкі: INT,
Гэта азначае, што ўсе ключы збіраюцца быць радкамі,
і ўсе значэння тых ключы збіраюцца быць цэлымі лікамі.
>> Што гэта азначае, што я магу затым спасылацца на канкрэтныя дадзеныя
што я хачу выкарыстоўваць гэтыя ключы, а чым пры выкарыстанні лічбавых паказчыкаў, як I
б для стандартнага масіва.
Зараз давайце разбярэмся, ёсць адна важная рэч,
што я таксама хачу згадаць аб Гэты канкрэтны паслядоўнасць кода.
І гэта тое, што ёсць Яшчэ адзін тып дадзеных,
ці, хутчэй, там гэта Ідэя дадзеных, што з'яўляецца
змяшчаецца ў Swift называецца АБСТАЛЯВАННЯ.
>> І тое, што опцыямі азначае, што ён прызнае той факт,
што часам вы не збіраецеся атрымаць дадзеныя, якія вы на самой справе чакаць.
І так, што я маю на ўвазе, што is-- давайце зірніце на гэтай паслядоўнасці кода
які паслядоўна перабірае на сябе ўсе Аргументы, якія былі перададзеныя гэтаму коду
і спрабуе пераўтварыць іх, спрабуе падзяліць на мноства радкоў,
таму што ён прымае вельмі Асаблівы тып аргументу.
І тады ён будзе спрабаваць прымусіць радкі, якія ўяўляюць нумары
у цэлых лічбах, якія з'яўляюцца гатунку, што я магу затым вылічыць.
>> Таму ў асноўным я збіраюся выкарыстаць гэты раскол функцыю, якая
існуе ў Swift стандартная бібліятэка.
Я збіраюся прайсці ў яго радок, што я хачу, каб падзяліць.
А потым, у выкарыстанні гэтага Сартаваць фанкі сінтаксісу, які
Я не ведаю, ці будзем мы дабрацца, але можа быць, мы
будзе на самой справе вызначыць дакладнае сімвал, які мы хочам падзяліць на.
Такім чынам, што ж гэта на самай справе выглядае?
Давайце зірнем на на самай справе працуе гэты код.
>> Так, напрыклад, скажам, у мяне ёсць Тэст і я атрымаў 50 на гэтым.
І ў мяне ёсць PSETs і Я атрымаў сто па гэтым пытанні.
І я got-- ёсць яшчэ адзін Тэст і я атрымаў 40 на гэтым.
Я ўдарыў Enter, і ў канчатковым выніку тое, што адбудзецца гэта тое, што ён робіць
прымае гэтыя параметры, расшчапленне радкі ў гэтых двукроп'я,
прызнаючы, што ёсць два элемента ў кожным з,
і гэта па сутнасці адсочваць кожнага з іх.
>> Так што я ў маім слоўніку віктарыну, чыя Значэнне, прадстаўленае лікам 50,
У мяне ёсць PSET, што мае значэнне 100, і віктарыны, які мае значэнне 40.
Пазней у кодзе I на самай справе ў сярэднім ўсе тыя значэння
і пералічыць усе ключы што асаблівая слоўнік.
Але гэта важна так што вы можаце заўважыць,
што адбываецца, гэта тое, што мы хачу зрабіць, гэта прыняць гэты радок
і падзяліць яго на гэтага персанажа, якія мы можам зрабіць зноў і гэты раскол,
Функцыя выкарыстанні такога тыпу Цікава, сінтаксіс, які існуе тут.
>> Проста зараз выказаць здагадку, што гэта нармальна.
Мы будзем глядзець больш на гэта за ўсё на некаторы час.
Але зараз ёсць цікавае аспект, які мы на самай справе
хачу паспрабаваць пераўтварыць гэта радкі ў лік.
Але ў іншых мовах што можа здарыцца,
што мы, верагодна, паспрабуе гэта зрабіць, і альбо атрымаць назад
нейкая варта значэнне як адмоўны
ці, можа быць нулявым ці нешта падобнае.
Ці, можа быць, было б проста выклікаў памылку.
І мы павінны былі б затым злавіць гэтую памылку
а затым паспрабаваць зрабіць тое, палягае на тым,
што гэтага пераўтварэнні у цэлы лік не ўдалося.
Вось дзе гэтая ідэя з дадатковых опцый ўваходзіць.
Вы на самой справе можна стварыць тып дадзеных, гэта знак пытання INT, напрыклад.
Гэта азначае, што гэтага ж колькасці гэта, па сутнасці, дадаткова.
А што будзе ў тым, што ён можа ўтрымліваць цэлы лік, або гэта не можа.
Гэта можа, у рэчаіснасці, будзе гэты іншы Ідэя, цалкам называецца Нилл.
У якім гэта азначае, што існуе няма значэння наогул у гэтым.
Гэта нават не нуль, там проста ніякага значэння.
Там абсалютна ніякага значэння прадстаўлены.
>> І гэта тое, што гэтая лінія 71 робіць.
З'яўляецца тое, што кажу, што я хачу паспрабаваць ўсталяваць значэнне,
пераменная з імем класа, роўна пераўтварэнне гэтага радка ў міжнар.
Так што я ўзяў гэты радок, гэта першыя кампаненты,
ці, хутчэй, другі Кампаненты, так як гэта
роўная нуля індэксуюцца, гэта Радок, я падзяліць.
І я хачу, каб пераўтварыць што на цэлы лік.
Але гэта не заўсёды можа перайсці нармальна, таму што ўявіць сабе
Што б адбылося, калі б, замест таго, тыпу Колькасць, я друкую вядома, як ASDF.
>> Гэта будзе правал.
Гэта на самай справе не будзе магчымасць канвертаваць, што ў цэлы лік
як я хацеў бы чакаць.
Такім чынам, замест стартуе нейкі памылкі,
у нас ёсць гэтая ідэя неабавязкова.
А гэта значыць, што з дапамогай гэта знак пытання я магу сказаць
ОК, гэта магчыма, што я магу ўзяць гэта, ператварылі яго ў INT,
і паклаў яго ў зменнай, які таксама будзе Int.
Калі гэта так, то гэта азначае, што гэта было паспяховым
і гэта першая частка Блок можа працягвацца.
>> У адваротным выпадку, яна не змагла.
Там няма значэння ў grade-- або а няма значэнне ў існуючых,
і я на самой справе ёсць, каб паспрабаваць справіцца з гэтай памылкі.
Вы будзеце бачыць гэта пытальнік ўвесь час
у Свіфта і ў прыкладзе кода для Swift.
І на самай справе Нилл аператар, такога роду пытальнік, частка опцыямі,
будзе, верагодна, адзін з больш цяжкіх рэчаў,
да выгляду абгарнуць вакол галавы як вы на самой справе з ім працаваць.
>> Гэта можа мець сэнс цяпер.
І на самай справе, калі я быў пісаць прыклад кода для гэтага,
Вядома, я разумеў, што адбываецца,
але ўсё ж такі злавіў мяне сюрпрыз кожны так часта
калі я знайду, што некаторыя дадзеныя на самай справе
нуль версія, апцыянальна версія дадзеныя, якія я чакаў.
Так што проста разумець, што калі вы ёсць дадатковы варыянт
Вы павінны распакаваць, што Дадзеныя з гэтага акна.
>> Так што гэта накшталт як я-- Уявіце, што вы ёсць скрынка, і ён ўтрымлівае нешта.
І тое, што вам трэба зрабіць, гэта, каб задаць пытанне,
гэта магчыма, што гэтая скрынка на самай справе змяшчае дадзеныя, якія я шукаю?
Калі гэта так, то цягнуць, што з дадзеных і пакласці яго ў гэтую зменную існуючага.
Калі няма, то я проста павінны ігнараваць змесціва гэтай рамкі
наогул таму, што ён літаральна не ўтрымоўвае нічога.
>> Ёсць пытанні па гэтай нагоды?
Добра, давайце адыдзем ад гэтага накшталт аснове каманднага радка рэч
і пачаць глядзець на некаторыя тэхналогіі
што Xcode дае нам ў выглядзе дзіцячых пляцовак.
Так што шмат Магчымасць тут з Swift.
І калі вы адкрыеце Xcode і яго пытаецца вас, што вы хочаце зрабіць,
Вы можаце адкрыць пляцоўка і проста пагуляць
з вялікай колькасцю розных структур і аспекты мовы
перш чым нават пачаць дакранаючыся IOS SDK або Mac SDK.
>> Так што гэта так, давайце скажам, што я have-- У мяне ёсць адносна надуманы прыклад
тут, але мядзведзь са мной, як мы накшталт ад таго, працуюць праз гэты прыклад.
Давайце выкажам здагадку, што мы павінны зрабіць шмат экспанент з фіксаванай коштам,
як мы ведаем, што мы збіраемся трэба зрабіць шмат квадратных паўнамоцтваў, напрыклад.
Такім чынам, мы збіраемся, каб заняць некаторы значэнне х, мы збіраемся збудуем ў квадрат
мы збіраемся заняць некаторы значэнне у, і мы збіраемся ўзвесці ў квадрат яго.
Гэтак далей, і гэтак далей.
>> Цяпер мы можам на самай справе проста стварыць Магутнасць 2 функцыі для гэтага, ці не так?
Такім чынам, мы б стварыць ўладу 2 функцыі.
Мы прымаем у два разы.
Мы output-- або мы будзем вярнуць двайную тып.
Мы возьмем гэты вынік а затым у два разы
тое, што мы на самай справе ўзяць вынікі, якія быў ініцыялізаваны да значэння аднаго з іх,
і памножыць яго на х.
Такім чынам, у сутнасці, мы маем х раз х тут.
>> І так, то я магу тое, як мы маглі б чакаць, вазьмі гэта, запусціце магутнасцю 2,
забяспечыць яму некаторыя дадзеныя, я люблю 2.0.
І мы атрымліваем, каб убачыць вынікі тут 4,0.
Запусціце сілу 2 на 3,2 і мы атрымаць, каб убачыць наш вынік 10,24.
Да гэтага часу так добра, ці не так?
Цяпер мы думаем, ну і добра.
Цяпер я на самой справе трэба зрабіць шмат паўнамоцтваў 3.
Так што я буду капіяваць ўставіць ўвесь гэты код, змяніць імя функцыі з
Магутнасць 2 да ўлады 3, і ўсё будзе такім жа, за выключэннем гэтага значэння
тут, гэта дыяпазон ад 1 ... 2.
>> Такім чынам, замест таго, каб паўтараць Гэты цыкл у два разы,
Я хачу паўтарыць гэты цыкл тры разы.
Так што я проста змяніць гэта значэнне ад 1 3-- ці, хутчэй, ад 2 да 3.
Такім чынам, яшчэ раз, і той жа код, гэта адзінае змяненне.
Зараз гэта таксама працуе.
Магутнасць 3 прыводзіцца ў некаторым значэнні 2.
Мы атрымліваем 8.
Так 2 кубе.
І 3,2 кубе складае 32,768.
І да гэтага часу так добра, ці не так?
Але спадзяюся, гэта крыху трохі чырвонага сцяга для вас
у тым, што цяпер у нас ёсць некаторы дубляванне кода
для некаторых вельмі нязначныя, за выключэннем пераход ад аднаго да іншага.
Так ці ёсць нейкі спосаб, што мы маглі б спрасціць
Гэтая праблема, дзе мы можам на самай справе, падчас выканання, высветліць некаторыя,
даць нам нейкую функцыю, якая мае Менавіта сіла, што мы хочам.
>> І ёсць гэтая ідэя замкі, якія, сапраўды, вельмі
важна ў кантэксце Свіфта, і ў многіх іншых мовах.
Але, напэўна, вы ўбачыце ён выкарыстаў больш, што ў Swift
таму што яна ўбудаваная ў мове
чым вы будзеце ў іншай таксама сучасныя мовы.
Такім чынам, ідэя закрыцця гэта, тое, што мы
можа мець функцыю, якая прызначаецца для быць агульная функцыя, агульны харчавання
функцыі.
>> І гэтая функцыя будзе прымаць гэты паказчык, што мы на самай справе
хочаце стварыць.
Так, напрыклад, самы першы Напрыклад, мы хацелі магутнасць 2.
Такім чынам, мы б забяспечыць ўлада а затым у дужках 2.
А цяпер звярніце ўвагу, што Гэта на самай справе вяртае.
Гэта прымае ўвод праймера называецца ў, што ўяўляе сабой цэлае лік,
і вяртае гэты вар'ят глядзіць рэч у parentheses-- дужках
Двухмесны а затым падвойную стрэлку.
>> Што гэта азначае, што я збіраецца вярнуцца функцыю.
Я не вяртаўся Іншы тып дадзеных, я
фактычна вяртае функцыю які мае гэты параметр, які
прымае двайны якасці ўваходных дадзеных і выводзіць двойчы ў якасці вяртаецца значэння.
І ў выніку, таму што цяпер я назваў магутнасць, пераходзячы ў некаторы значэнне для ў,
і я ствараю гэты іншы function-- звярніце ўвагу, што ёсць
Яшчэ адна функцыя, які ствараецца ўнутры this--, што я раблю
, Я можа змяніць гэта значэнне, што адна
Значэнне, якое я змяніў ад 2 да 3, цяпер я зрабіць гэта ў.
>> І гэта захоўваецца.
Такім чынам, кожны раз, калі я называю ўлада з, па сутнасці, што адбываецца
з'яўляецца тое, што я атрымліваю вярнуўся функцыю.
Звярніце ўвагу, што тут я вызначыў Новая пераменная называецца квадратам.
Я усталяваў яго роўным сіле, ўмове, што гэта значэнне 2 да ўлады.
І тое, што гэта вяртаецца функцыяй.
Так плошчы, пераменная квадрат, цяпер функцыі тыпу
што мае this-- ой прагортку уверх трохі bit--, што мае гэтую подпіс,
прыняць двухспальная ложак і выхад у два разы.
>> Так што цяпер, што я зрабіў тым, што я па сутнасці
стварылі функцыю, званую квадрат, які прымае любы значэнне і будуць улагоджвае яе.
Мы можам бачыць, што адбываецца тут.
Плошчу 3, напрыклад, азначае, што я збіраюся ўзяць значэнне 3 і квадрат яго.
Так як менавіта гэта працуе?
Калі я праходжу ўлада з 2--, калі я прайсці 2 у гэтай уладзе функцыі,
гэтая зменная ў з'яўляецца запаўняецца гэтым значэннем 2.
І гэта свайго роду захоўваецца ў памяці.
Гэта накшталт як адбылася ў стан дзе-то ў кампутары,
мы сапраўды не хвалюе, як або, дзе ў дадзены момант.
>> Але я вярнуся гэтую функцыю называецца exponentiate.
І зноў жа, гэта сапраўды не мае значэння што гэтая функцыя выклікаецца,
мы сапраўды можам назваць гэта што-небудзь, што прымае двайны і вяртае двайны,
але выкарыстоўвае гэта значэнне ў ўнутры яго.
Такім чынам, нават калі гэта функцыя, Гэтая функцыя exponentiater гэта
былі вернутыя назад у мой Пераменная, якая я патэлефанаваў плошчы,
ён змяшчаецца ў ім гэта паняцце аб тым, што ў быў.
І ён памятае гэта.
>> Такім чынам, кожны раз, калі я выкліку гэтай функцыі, што цяпер называецца квадрат, ён выкарыстоўвае гэта.
Але гэта таксама азначае, што я магу стварыць яшчэ адну зменную з дапамогай
адрозніваецца магутнасць.
Так што я магу стварыць зменную куба для Напрыклад, забяспечыць да яго сілу 3.
Цяпер куб на самай справе ўзяць некаторыя Значэнне і куб, і вярнуць яго.
Такім чынам, мы бачым, што я атрымліваю Значэнне 8 з гэтага.
>> Але гэта значэнне ў не мае змянілася, таму што яны
адбудзецца ў свайго роду незалежных зменных.
Яны з'яўляюцца свайго роду праводзіцца ў незалежныя прасторы ў памяці.
Так куб заўсёды будзе мець х да ўлады 3.
І квадрат заўсёды будзе мець х да ўлады 2, які
азначае, што плошча будзе заўсёды кв-нумары, як я думаю.
І куба заўсёды будзе ў кубе нумары, як я чакаю.
Гэта таксама азначае, што часам вы можаце атрымаць нейкую фанкі гледзячы сінтаксісу
дзе ў вас ёсць ўлада, па меншай вельмі Унізе экрана тут, магутнасць 5.
І вы праходзьце ў выніку.
Вы называеце гэтую функцыю, гэта былі вернутыя з нумарам 4.
І так, што па сутнасці гэта ад 4 да пятай ступені,
мы можам бачыць вынікі там.
Са мной да гэтага часу?
>> Так гэтая ідэя называецца замыканне, таму што мы ў асноўным робім
гэта мы інкапсуляцыі некаторыя дадзеныя into-- роду
агароджваюць гэтыя дадзеныя у функцыі, і мы
магчымасць паўторнага выкарыстання гэтай функцыі.
Цяпер гэты сінтаксіс, хоць можа на самай справе спрасціць вялікая колькасць.
І ёсць шмат магчымасці у Свіфта для гэтага спрашчэння.
І вось што-то наступныя рэальна зірнуць на.
Такім чынам, у 7b, напрыклад, мы прыняць гэта сапраўды такі жа код.
>> Але зараз замест таго, на самай справе вызначыць функцыю
Унутры гэтай улады працаваць і даць яму імя,
а затым вярнуць імя гэтай функцыі, якая
Затым выкарыстоўваецца як частка гэта замыканне, а мы
проста хачу, каб спрасціць яго.
Нам не трэба гэтую функцыю, каб быць названым.
Так што гэта паняцце ананімная функцыя, дзе мы можам затым
прымае ў якасці ўваходных дадзеных, у дужках тут, пераменная х, які тыпу Double.
>> Мы збіраемся вярнуцца тыпу двайнік.
А потым па ключавых словах, п, Пачатак гэтай функцыі.
Так заўважыць, што ўсё гэта знаходзіцца ў фігурных дужках
і мы вызначаем працаваць тут ананімна.
Проста просты спосаб вызначэнне тую ж самую рэч.
ОК?
Але трымайся, Swift на самай справе дазваляе пайсці далей і спрасціць яшчэ больш,
таму што сапраўды мы не ўсё роўна, што гэты параметр
назваў ні канкрэтную рэч.
Гэта сапраўды можа быць названа інакш, і мы ўсё яшчэ можам выкарыстоўваць гэты першы параметр.
>> Такім чынам, на самай справе ёсць гэты асаблівы Тып дадзеных у ананімных функцый,
ёсць гэта асаблівая назву зменныя ў ананімных функцый
якія пачынаюцца з знак даляра і ўяўляюць сабой
лік параметраў, нуль індэксавацца гэтай функцыі.
Так што некалькі рэчаў адбываецца.
Тут я збіраюся вярнуцца, і тады фігурная дужка прадстаўлення функцыі,
ці не так?
>> Заўважце, што я не вызначылі Тыпы параметраў або які вяртаецца тып.
Гэта на самай справе можна зрабіць выснову, з-за подпісы
гэтай зыходнай функцыі.
Такім чынам, мы можам ліквідаваць што ў якасці магчымасці.
Але таксама я магу выкарыстоўваць знак даляра нуля да прадстаўляць гэты першы параметр, гэта
перайшла ў гэтай ананімнай функцыі.
Так што спрашчае яго яшчэ больш.
ОК?
Усё ідзе нармальна?
>> Цяпер менавіта гэта type-- зрабіць вас памятаю гэты даляра нуля знак
што мы бачылі ў гэтым фігурнай дужкай што мы толькі што бачылі некаторы час
таму ў гэтым Swift шэсць напрыклад?
Гэта было прама тут.
Звярніце ўвагу, што менавіта тое, што мы глядзім,
з'яўляецца тое, што мы прайшлі у гэтым расшчапленне функцыі
ананімная функцыя, што правярае першы параметр
каб убачыць, калі ён роўны сімвал двукроп'е.
І гэта менавіта тое, што адбываецца, з'яўляецца тое, што ўсе
мы doing-- вяртанне Ключавое слова маецца на ўвазе
у гэтым case-- мы вяртаемся Гэта значэнне, пры якім мы параўноўваем
Першы параметр супраць Гэты сімвал двукроп'е.
І так, што-то растлумачвае гэта.
І вы ўбачыце гэтую канструкцыю Шмат у Swift сінтаксісу, так што майце гэта
на ўвазе, калі вы зірнуць на гэта.
Цяпер мы можам выйсці рэйкі трохі
і сапраўды працуе фантазія, якая паказвае нават некаторыя больш ўлады Свіфта.
Вы нават можаце ўбачыць некаторыя з іх у тыпавых кодаў.
Дык вось чаму я збіраюся паказаць гэта вам.
>> У асноўным тое, што мы можам зрабіць, гэта, па-першае за ўсё, гэта быў свайго роду непатрэбным для мяне
ажыццявіць усе, што ўлады Код таму што калі вы імпартаваць Дарвін
бібліятэка, гэта на самай справе ўключае ў сябе функцыю называецца ваеннапалонных, што робіць гэта для вас.
Такім чынам, мы можам спрасціць яго яшчэ больш і ёсць нашу функцыю харчавання цяпер проста
быць выдатны адзін лайнер, дзе мы толькі што вярнуць гэтую ананімную функцыю, якая
прымае знак даляра 0 ЯК ЯЕ Падстава і ў як паказчык яго.
>> Але мы можам атрымаць сапраўды, сапраўды фантазіі, калі мы
зразумець, што Свіфт шмат энергіі пад капотам.
Многія з аператараў, мы займаемся,
Знакі плюс і дзяленне сімвалы і усе гэтыя рэчы, якія вы звычайна
працаваць з з тыпамі дадзеных на мове праграмавання,
на самай справе які пашыраецца ў Свіфта.
Так што гэта азначае, што ў тым, што мы можна вызначыць нашы ўласныя аператары.
>> Так што цяпер я стаміўся друкаваць ва ўсім гэтым POW, а затым дужкі, а затым
база.
Я не хачу, каб зрабіць гэта.
Я сапраўды хачу, каб мець Аператар, які дазваляе мне зрабіць гэта.
Так што я магу сказаць, Свіфт, што я хачу стварыць аператара, зорку
star-- я, дарэчы, не можа выкарыстоўваць карат таму карат аператар,
робіць нешта зусім іншае.
Так што я не хачу, каб адсартаваць з сутыкнення з гэтым.
І так, што вы бачыце ў розных моў, у тым ліку Python,
гэта як зорка зорка аператара прадстаўляць паказчыкі.
>> Дык вось адзіная прычына, чаму я зрабіў гэта.
І гэта будзе аператар тыпу инфикс.
І я павінен даць да яго некаторую інфармацыю
аб прыярытэце ў гэтым Аператар так што левоассоциативны.
Гэта як адносна высокі прыярытэт у параўнанні
да сумаванне або множанне.
Гэта больш высокі прыярытэт, чым усе з іх.
Гэтак далей, і гэтак далей.
І тады я вызначаю функцыя, якая на самой справе
дыктуе, што гэты аператар робіць.
Так калі выказаць здагадку, што ў мяне ёсць левы бок і правая бок,
які быў бы, магчыма, лепш імя зменнай для гэтага.
Левы бок і правая бок.
Затым я магу прыняць гэта ўлада Левая частка з правага боку
і вярнуць гэта значэнне.
Так што цяпер гэта супер салодкія.
Усё, што мы павінны зрабіць, гэта 2 зорка зорка 3 і гэта 2 у трэцяй ступені,
і мы атрымліваем значэнне 8.
2 зорка зорка 10 складае ад 2 да 10-й ступені, мы атрымліваем 1024.
>> Так што цяпер наша ўлада функцыі, што зноў-такі розныя,
таму што ўся ідэя гэтага было тое, што ў нас ёсць адна функцыя, якая
заўсёды мае нейкую каштоўнасць і памнажае it-- ці, хутчэй,
займае паказчык, такой жа магутнасці.
Так што цяпер гэта нават прасцей.
Так што цяпер гэта проста даляр увайдзіце 0 зоркаўтварэньня у.
Мы нават не давядзецца выкарыстоўваць ваеннапалонных больш.
>> Добра, хто страціў?
Робім мы ў парадку?
Любыя пытанні па гэтай рэчы?
Так?
>> АЎДЫТОРЫЯ: Калі you-- [неразборліва] фанк сіла ў двайніка.
Такім чынам, калі вы вяртанне функцыі.
DANIEL Armendáriz: Funk сіла ў двайніка.
Ах да, я не ведаю, тое, што ў нумары.
На жаль пра гэта.
>> Зала: А чаму вы вяртання Функцыя [неразборліва] корпус.
Хіба гэта не даляр нуля зорка зорка ў [неразборліва]
знайсці, што аператар з гэтым вяртанне двойчы [неразборліва] у два разы?
>> DANIEL Armendáriz: Такім чынам, давайце мне адказаць на ваша пытанне
як я разумею гэта, і вы можаце сказаць мне, калі я не разумею ваша пытанне.
Так што гэта канструкт, фігурная дужка Знак даляра нуля зорка зорка у,
з'яўляецца функцыяй.
І ён прымае параметр, які прадстаўленая гэтым знакам даляра нулявы.
Ключавое слова вяртання маецца на ўвазе ў гэтым вельмі кароткі, ананімны сінтаксіс функцыі.
>> Гэта азначае, што па сутнасці Аб чым гэта кажа
з'яўляецца тое, што я вызначаю function-- і тады я буду
проста назваць яго something-- дзе ў мяне ёсць некаторы значэнне у.
У мяне ёсць г, што ў два разы.
І я вяртаюся ў два разы.
І ў мяне ёсць у гэтай вяртанні y-- прабачце, Я не павінен быў назваць гэта y-- х.
Ах, божа мой, божа мой, божа мой.
X-- nope-- зорка зорка у.
>> Так што гэта проста Спрошчаная версія гэтага.
І так прычына таго, што ў мяне ёсць даляр знак нуля з'яўляецца тое, што з дапамогай гэтага корпус
азначае, што я больш не прыйдзецца не ўводзіць ваеннапалонных, або больш не рабіць
Я павінен зрабіць што-то як 3 зорка зорка 2.
Я магу проста аднаго Функцыя называецца плошчу
што заўсёды будзе мець некаторы значэнне ў якасці ўваходных дадзеных
а на самай справе вярнуцца на плошчу, што.
>> Так увесь сэнс закрыцця з'яўляецца проста накшталт інкапсуляцыі той факт,
што я заўсёды хачу, каб выкарыстоўваць у кожны раз, калі Я называю гэтую функцыю, як улада
пры прыняцці гэтага паказчыка.
Так вяртаючыся затым, функцыя, якая прымае
двайны, які з'яўляецца базай, і вяртанне выніку гэтага паказчыка
з'яўляецца тут ключавы.
І гэта галоўнае адрозненне.
Быў проста трохі квітнець.
>> Гэта нічым не адрозніваецца у параўнанні з папярэднімі прыкладамі,
але гэта было толькі крыху квітнець, мы можам на самай справе
стварыць аператар у Swift і на самай справе рабіць рэчы з ім,
якая з'яўляецца своеасаблівай крута.
Я адказаў на ваша пытанне?
Салодкі.
Што-небудзь яшчэ, перш чым мы пяройдзем?
ОК.
>> Цяпер гэты від просіць Пытанне ў тым, that-- Ну добра,
Цяпер у нас ёсць магчымасць для Функцыі павінны быць вернутыя.
Ці можам мы таксама перадаем функцыі як дадзеныя або ў якасці параметраў іншых функцый?
І на самай справе мы можам.
Так што давайце казаць, што ў нас ёсць усё той жа код.
У нас ёсць квадратны зменную што будуць улагоджвае гэты код.
І ў нас ёсць пераменная куб што будзе куб некаторыя дадзеныя.
І мы сапраўды хочам, каб прымяніць ў шырокім дыяпазоне лікаў.
>> Такім чынам, што мы маглі б паспрабаваць зрабіць, Вядома, што, безумоўна, справядліва,
гэта прайсьці па гэтым спісе нумароў і прымяняць мае функцыі квадратных і кубічных
і атрымаць два новых спісаў у якасці вынікаў якія гэта першапачатковы спіс квадрат
і ў кубе, адпаведна.
Цалкам прымальна.
Але тое, што рэч, якая тут мы бачым, што ў нас ёсць,
зноў, дубляванне кода.
І ёсць, магчыма, магчымасць для нас, каб спрасціць гэта няшмат.
Што, калі б быў спосаб для нас на самай справе заўсёды перабраць некаторы спіс
і проста пераходзяць на гэты чароўны функцыянаваць зменную, якая
ўяўляе сабой функцыю што мы хочам прымяніць
для кожнага элемента ў гэтым спісе.
Гэта падымае канцэпцыю аб тым, што называюцца функцыі вышэйшага парадку.
І гэта, па сутнасці, тое, што гэта з'яўляецца, тое, што мы можам стварыць функцыю.
>> І ў гэтым выпадку яна завецца Mapper, проста каб даць яму імя, проста
адлюстраванне над кожнай адзін элемент у спісе.
Дзе я вазьму спіс і я ўзяць функцыю.
І, што функцыі, вядома, мае пэўную подпіс.
Ён прымае ў якасці параметру ўдвая і гэта будзе выхад у два разы.
І ўвесь вынік Гэтая функцыя будзе
быць новы спіс, які мае тып Double.
ОК?
>> І тое, што я збіраюся зрабіць з'яўляецца прымяненне гэтай функцыі F
для кожнага элемента ў маім спісе.
І reply-- і даволі вярнуцца гэты новы Спіс, як вынік, які на самай справе крута.
Цяпер я магу перадаць функцыі вакол.
І гэтая ідэя больш высокага парадку функцыі, што сапраўды важна.
І гэта пераўтваральнік на самай справе проста Рэалізацыя бедняка
функцыі, якія ўбудаваныя у Swift называецца карту.
І гэта робіць менавіта гэта, можа быць, нават трохі лепш.
>> Гэта проста свайго роду агульным, спрошчаная версія, што
дазваляе нам убачыць канцэпцыя, якая ўжываецца тут.
Цяпер паглядзім на тое, як я можа на самай справе прымяніць свае плошчы
і мае куб функцыі у гэтым спісе лікаў.
Я вяду свой Mapper.
Я прадставіць яму мой спіс лікаў.
Я прадставіць яму на функцыя, якая збіраецца
ўжываць да кожнага з гэтых паказчыкаў.
І гэта будзе Выхад у выніку.
І я буду атрымліваць, каб убачыць, што я ў квадраце і ў кубе мае нумара ў выніку.
>> І, вядома, картографа адбудзецца любы від ананімнай функцыі.
Мы нават можам бачыць, што я стварыў Новы ананімную функцыю, якая
проста прымае якой-небудзь параметр і дзеліць яго на 2.
І мы бачым, што я, на самай справе, падзяліць мой спіс 2 замест гэтага.
Прахладны?
Усё ідзе нармальна?
Добра, зараз давайце вярнуцца да гэтай ідэі.
Давайце рэалізуем гэта яшчэ ў Кантэкст заліковую кніжку.
>> І калі я гэта зраблю, мы можам бачыць, што я магу ўжываюць шырокі спектр гэтых options--
або вялікая разнастайнасць іх Функцыі вышэйшага парадку
на самай справе спрасціць сваю здольнасць рабіць Разнастайнасць рэчаў на спісы нумароў.
Так, напрыклад, калі ўзяць спіс нумароў,
адзін з вышэйшых функцый парадку што існуе, называецца паменшыць.
Што знізіць робіць, а чым карты, зводзіцца будзе
прыняць два элемента ў спісе, зойме некаторы функцыю, якая
параўноўвае два элемента Спіс, і ён будзе затым
накшталт output-- Выхад з гэтай функцыі
будзе адзін элемент, які Вы тады ў параўнанні з іншымі.
>> Такім чынам, вы маглі б выкарыстоўваць гэта на самай справе сума лікаў у вашым спісе.
Напрыклад, калі ў вас Спіс 1, 2, 3, 4, 5,
вы бераце першыя элементы, 1 і 2.
Вы можаце звярнуцца да яе дадатак функцыя, якая прымае гэтыя два элемента
і выплёўвае адзін з тых элементаў, якая была б значэнне 3.
Затым мы бярэм гэта значэнне 3 з шэрагам элемент спісу, падвесці тых, два,
а затым працягваць ісці ўніз па спісе.
>> Мы скарачэнне спіс да аднаго значэння.
І так ужо здарылася, што сімвал плюс
з'яўляецца аператар, як мы толькі што бачылі.
Гэты аператар на самай справе гэта функцыя, якая
мае менавіта гэты спіс, які мы хацеў, а гэтыя ўласцівасці
што мы хацелі б.
Таму я заклікаю вас, каб зірніце на гэта.
Я хачу, каб адсартаваць ходу на некаторых з гэтага кода
так што мы можам рэальна зірнуць на некаторыя рэальна існае, праўдзівая Swift ў Xcode,
у развіцці IOS.
Але зірніце на гэта і паглядзець, калі вы можаце
разабраць праз тое, што адбываецца на з некаторымі з гэтых больш высокага парадку
функцыі, уключаючы фільтр, зніжэнне, а вы нават
см дзе-то тут карту, а таксама.
Гэта прама тут.
Дзе ён будзе прымаць паслядоўнасць гатункаў і ён будзе на самой справе
супаставіць іх з дапамогай канструкцыі перамыкача, якія Вы маглі б прызнаць ад C,
але на самой справе гэта значна больш, магутны, чым канструкцыі перамыкача
што мы маем на З
>> І мы будзем прымяняць, што кожны элемент у спісе
і на самай справе забяспечваюць Ліст адзнака кожнага
з тых марак, выкарыстоўваючы ўсе гэтыя паняцці што мы толькі што гаварылі раней.
Зараз давайце абыйсці ўсяго за хвіліну і размовы пра структур.
І так Структуры з'яўляюцца чакання ў C, што мы змаглі вызначыць новы тып дадзеных.
Структуры існуюць у Свіфт.
І гэтак жа шмат іншых канструкцый званыя пералічэння і класы, якія на самай справе
прыняць гэтую ідэю зусім іншы ўзровень.
>> І ў асноўным гэта проста спосаб вызначэння новага тыпу дадзеных.
Так што калі вы get-- калі вы прыехалі па класе або структур або пералічэнняў,
ня палохайцеся гэтага.
Гэта проста спосаб вызначэння некаторыя новыя асаблівасці тып дадзеных.
І гэта вельмі важна, калі мы гаворым пра развіццё IOS прыкладання
таму што ўсё, што існуе ў дадатак IOS
па сутнасці аб'ектам некаторага выгляду.
І аб'ект у асноўным клас або пералiчэнне або структурай.
>> Такім чынам, у дадзеным выпадку я вызначэнні новага тыпу дадзеных
што я тэлефаную ацэнку гэта некаторыя ўласцівасці, у тым ліку
Імя і паслядоўнасць класаў.
Так адзін тып ацэнкі што я мог бы мець на ўвазе
б віктарыны, напрыклад.
Я хацеў бы мець узносаў, якая была віктарына
і што было мноства класаў звязана з тым, для віктарыны адной,
Тэст два, гэтак далей, і гэтак далей.
>> Ці я мог бы мець розны тып ацэнкі для задачы мностваў.
І я магу рабіць.
Я магу на самой справе ёсць Функцыі ў рамках гэтага тыпу
дадзеных, якія зараз называюцца метадамі.
Так што калі вы калі-небудзь бачылі Метад слова, гэта сапраўды
гэта проста функцыя, якая ўжываецца ў вельмі пэўнага класа,
або вельмі канкрэтнага тыпу дадзеных.
Гэта дазваляе нам змяняць дадзеныя ў.
>> Такім чынам, іншымі словамі, калі я хачу, каб дадаць клас да маёй ацэнкай,
то ўсё, што трэба зрабіць, гэта дадаць кошт, які быў уведзены
з дапамогай гэтай функцыі да мой ўнутранае ўласцівасць.
Там яшчэ адзін акуратны канструкцыя тут у Свіфта, які гэта кропка кропка кропка
аператар, які азначае, што вынікі могуць зараз прымаю любую колькасць цэлых лікаў.
І вынікі будуць масіў цэлых лікаў,
былі перададзеныя на маёй функцыі, якія азначае, што я магу рабіць рэчы, як гэта.
>> Што я магу зрабіць дадаць ацэнкі і проста забяспечыць адвольныя ліку цэлых лікаў у ім
і сапраўды будзе прадастаўлена масіў з гэтых каштоўнасцяў у маёй функцыі
ці мой метад, як гэта мае месца.
Зараз гэта важна, таму што усё ў Xcode, усё ў ІА,
на самай справе аб'ект.
Так што майце гэта на ўвазе калі мы бюст адкрыты Xcode
і прапусціць наперад за прашыўкай версіі два і тры
і на самай справе ісці на версіі чатыры.
>> І зноў жа, усё гэта будзе будуць размешчаны на старонцы семінара.
IOS чатыры з'яўляецца свайго роду поўнамаштабнай рэалізацыя вельмі просты дадатак.
І тое, што гэта дадатак робіць гэта загружае карыстацкі інтэрфейс, які выглядае наступным чынам.
Зноў жа, калі мы націснем на раскадроўкі мы можам бачыць, што гэта, як ён выглядае.
Гэта інтэрфейс.
Ён мае назву на самым версе.
Я назваў яго вэб-галерэі.
>> У сярэдзіне ёсць элемент называецца выгляд малюнка карыстацкага інтэрфейсу.
А ўнізе ёсць Панэль інструментаў з дапамогай адной кнопкі, што
мае эластычныя прасторы, якія дазваляюць яго цэнтр у сярэдзіне гэтай панэлі інструментаў.
І тое, што адбываецца, што, калі гэта загружае яго запампоўвае файл JSON, што гэта
якія змяшчаюцца на сэрвэры ў іншым месцы, граматычны разбор JSON файл,
і файл JSON выглядае трохі як гэта.
Файл JSON выглядае так.
Там яно і ёсць.
>> Ён мае назву альбома і яна мае мноства фатаграфій.
Кожны з гэтых фатаграфій ёсць імя, а таксама
URL самі, якія ўяўляюць JPEG версія гэтай асобнай фатаграфіі.
Так, што здарылася, што, калі гэтая праграма Грузы, ён загружае файл у фармаце JSON,
аналізуе яго, кладзе усё гэта ў эквівалент масіва ў ІА
прыкладанне развіцця, які з'яўляецца NSArray.
І тады я магу затым загрузіць Гэтыя дадзеныя ў дадатак
і загрузіць яго на маім экране.
>> Існуе вобраз, які быў загружаны з дапамогай кнопкі ў самым нізе.
Калі я націскаю Атрымаць Наступны, тады цягне гэты вобраз з інтэрнэту
і замяняе гэта выява на думку малюнкаў UI.
Такім чынам, вы можаце спампаваць гэта і на самай справе зірнуць на яго на вашым кампутары.
І будаваць яго і на самай справе скампіляваць яго на ваша прылада.
Але па сутнасці працэс быў гэта, стварыце storyboard--
або, хутчэй, не create-- але выбраць раскадроўкі.
А на самай справе we'll-- калі вы не mind-- мы будзем прымаць толькі некалькі секунд
на самай справе паказаць вам, як гэта было зроблена.
>> Сапраўды гэтак жа, што, як мы можам на самай справе дасягнення гэтай мэты вырабляецца трохі больш
відавочнай.
Аднамесны Прагляд прыкладання, я буду называць гэты семінар
чатыры які прадстаўляе гэта прыватнасці лік.
Захавайце яго на працоўным стале.
Добра, збіраецца націснуць на раскадроўкі.
І тое, што я збіраюся зрабіць каб знайсці мой погляд выявы,
перацягнуць яго на маім карыстальнік інтэрфейс і ў цэнтр.
Цяпер проста цэнтравання яго, на жаль, не збіраецца рабіць кучу,
для экрана, акрамя што гэта дакладны памер.
>> Такім чынам, мы пераконваемся, што, націснуўшы на гэтай двайны рэчы акружнасці,
зніжэння гэтага поп меню тут і змены
каб праглядзець, дзе мы на самай справе атрымаць шанец убачыць, як
гэта будзе на самой справе глядзець на іншых прыладах.
Як мы бачым, мы нават не ўбачыць яго на гэтым канкрэтным выпадку.
Так што я збіраюся зачыніць гэта цяпер.
>> І я збіраюся выбраць гэты значок ўніз на вельмі
Ніжняя частка экрана.
Гэта кажа Дазвол Автокомпоновка пытанні.
На жаль, гэта адрэзаць ўнізе.
Але калі я націскаю на што, што я атрымаць гэтая поп-up-- сысці.
Што я атрымліваю гэта ўсплывальнае меню, якое дазваляе мне дадаць якія адсутнічаюць абмежаванняў.
І таму, каб ён Затым роду заблакаваць яго
ў цэнтральнай частцы Экран, як я мог бы чакаць.
>> Зараз для таго, каб атрымаць гэтую кнопку на верх яе, мне трэба ісці ў рэдакцыю.
Перайсці да Уставіць у сістэму і націсніце Навігацыйны кантролер.
Тое, што гэта будзе рабіць тое, што будзе дадаць Увесь гэты іншы кампанент да яго,
але на самой справе спасылаюцца гэта назад да маёй першапачатковай UI.
І дэталі, зноў жа, мы не сапраўды трэба клапаціцца аб прама цяпер.
Але я хачу, каб мець Панэль інструментаў у самым нізе.
Так што я буду праверка паказвае, панэль інструментаў.
>> І гэта дае ў майго пункту гледжання, якія цяпер дзе-то яшчэ,
мы бачым, гэта звязана сюды.
Гэта ў цяперашні час забяспечвае панэль інструментаў У ніжняй частцы маёй UI.
Так што цяпер, замест выбару прагляд малюнкаў, я магу знайсці ярлык,
ці, хутчэй, toolbar-- давайце паглядзім, дзе гэта?
Як ён называецца?
Пункт button-- bar-- item-- sorry-- панэль кнопак пункт.
Plop што там і прымяніць пару гнуткіх прасторы па абодва бакі
на самай справе цэнтр, які.
Так што цяпер я стварыў свой карыстацкі інтэрфейс, у асноўным.
І я магу даць яму імя, Двайны пстрычка на самым версе
тут і казаць вэб-галерэі і гэтак далей.
Цяпер зноў, гэта элементы якія існуюць самі па сабе.
І ў мяне ёсць для падлучэння ім мой код, які
Што я магу зрабіць, зноў прыносячы да гэтага падвойнага значком у выглядзе круга,
змены ад прагляду.
Што, дарэчы, зараз мы бачым, з'яўляецца прыгожа па цэнтры і будзе добра глядзецца
на розных прыладах.
>> Пераключыцеся на аўтаматычны, які будзе выхоўваць код ViewController.
А цяпер гэтая частка вельмі важная.
Для таго, каб падключыць іх два элемента, каб ваш код карыстацкага інтэрфейсу,
Пры выбары пункта, што Вы хочаце падключыць.
Такім чынам, у гэтым выпадку мы на самай справе хочаце, каб закадаваць
змяніць імідж, якая змяшчаецца у межах гэтага прадстаўлення выявы карыстацкага інтэрфейсу.
Так што, калі вы кантралюеце націсніце ад Паглядзець малюнак і перацягнуць,
Вы заўважыце, што вы атрымліваеце невялікі бар, калі вы адпускаеце усё гэта поп-
да адбудзецца.
>> І ён кажа, што мы будзем стварыць падключэнне.
А адсюль я хачу даць яго імя, нешта накшталт галерэі.
Націсніце Enter.
І гэта на самай справе забяспечвае пераменная з імем галерэя
што я магу затым спасылацца ў сваім кодзе змяніць імідж, напрыклад.
Так як жа, што код на самай справе выглядае?
Ну зноў жа, я не хачу, каб марнаваць занадта шмат часу на гэта.
І я заклікаю вас спампаваць і паглядзець.
Але адзін з самых Важным аспектам з'яўляецца код
што на самой справе атрымлівае малюнак.
>> Такім чынам, у дадзеным выпадку я хачу каб атрымаць на працягу маіх фатаграфій
масіў, які ўтрымліваецца ў маім класе.
Я хачу задаць імя і URL які быў разабраны з гэтага JSON.
На самай справе спытаеце прылада, каб атрымаць URL, каб прынесці URL з гэтага,
а затым выбаркі дадзеных з змесціва гэтага URL.
Тады пераўтварэнні дадзеных у малюнак шляхам прапускання яго ў малюнак карыстацкага інтэрфейсу.
Такім чынам, яшчэ раз, гэта ўсё розныя тыпы аб'ектаў, розных тыпаў класаў.
>> І тады я магу затым ўсталяваць мой gallery.image роўна гэтых дадзеных.
І гэта свайго роду мяса яго, што на самой справе тое
ў стане змяніць змяніць дадзеныя из-- фатаграфія ад аднаго да іншага.
Такім чынам, яшчэ раз, спадзяюся, цяпер шмат канструкцый
зробіць крыху больш сэнсу.
Звярніце ўвагу, што ёсць нейкая клічнікаў тут.
Клічнік з'яўляюцца па сутнасці звязаны з дадатковымі опцыямі.
>> Тое, што я ў асноўным кажу, што нават не правяраючы
каб убачыць, калі ёсць дадзеныя у гэты неабавязковы,
Я збіраюся ісці наперад і выказаць здагадку, што існуе і разгарнуць яго.
Памятаеце, што мы выкарыстоўвалі аналогію Сартаваць пакета для опцыямі
і мы павінны разгарнуць ўпакоўка і выцягнуць дадзеныя.
Клічнік сілы, якія на самай справе адбылося.
>> Але я ведаю, што гэта бяспечна, таму што я праверыў
каб убачыць, калі дадзеныя выявы роўная да нуля, я на самой справе праверыць
каб убачыць, калі гэта опцыя быў, па сутнасці, не ўдалося.
Калі б гэта было на самай справе, не ўдалося ўжо.
І таму я ўпэўнены, што як толькі я атрымліваю на гэта Тут я магу з упэўненасцю разгортваць гэтыя дадзеныя.
Вы таксама можаце ўбачыць яго ў форма пытальніка.
Так што, калі мы пракручваем ўніз туды, дзе я трэба на самай справе сінтаксічны аналіз дадзеных.
>> Так што не палохайцеся гэта свайго роду працяглых імёнаў.
Вы можаце знайсці ў Apple, Распрацоўшчык сайта шмат
спасылак на ўсе аб'екты і ўсе працэсы
што на самой справе зрабіць гэта магчымым.
Але звярніце ўвагу, што гэта па сутнасці Функцыя, дзе я перадаць яму некаторыя дадзеныя.
І я вярнуся нейкі дадзеных.
І мне трэба выкарыстоўваць гэта ў якасці ключавога слова пераўтварыць яго ў гэтым NSDictionary?
Што зноў-такі, па жаданні NSDictionary.
Які я тады трэба праверыць, калі ён існуе.
>> Так што я магу выкарыстоўваць, што калі дазволіць паспяховыя роўна разбіраецца,
то я ведаю, што неабавязкова на самай справе змяшчае некаторыя дадзеныя.
Ці тое, што я зрабіў тут было проста выказаць здагадку, што, калі ёсць
не было ніякіх памылак, якія ён на самай справе бяспечна.
Добра, я хачу падзякаваць Вы ўсё вельмі вялікае, што прыйшлі.
Я ведаю, што гэта было шмат, але гэта было толькі гадзіну
казаць аб некаторых даволі прасунуты матэрыял.
І так, мы спадзяемся, вы атрымаеце шанец загрузіць увесь код
і прыняць лепш, старанна зірнуць на яго.
Сартаваць пераканаць сябе ўсе матэрыялу, які адбываецца.
І я хачу падзякаваць вас усё, зноў жа, што прыйшлі.
І поспехі ў фінальных праектаў.
Добрага дня.