1 00:00:00,000 --> 00:00:11,270 2 00:00:11,270 --> 00:00:14,340 >> DANIEL Armendáriz: Усім прывітанне, Сардэчна запрашаем у развіццё IOS прыкладання 3 00:00:14,340 --> 00:00:15,020 з SWIFT. 4 00:00:15,020 --> 00:00:15,870 Я Дэн Armendariz. 5 00:00:15,870 --> 00:00:18,920 Я precepter кампутара навука тут у школе 6 00:00:18,920 --> 00:00:21,200 інжынерных і прыкладных навук. 7 00:00:21,200 --> 00:00:24,310 І Свіфт на самай справе выгляд з сапраўды акуратны мове. 8 00:00:24,310 --> 00:00:27,190 І ў мяне ёсць некаторыя планы на сённяшні дзень. 9 00:00:27,190 --> 00:00:31,430 Так на працягу наступнага гадзіны ці такім чынам мы збіраемся паглядзець на само развіццё IOS прыкладання 10 00:00:31,430 --> 00:00:36,640 з дапамогай Xcode і фактычна ствараючы некаторыя вельмі просты, вельмі простыя прыкладання. 11 00:00:36,640 --> 00:00:40,070 І, гледзячы на ​​тое, як вы на самай справе прыняць гэтыя прыкладання, 12 00:00:40,070 --> 00:00:42,887 і будаваць іх, а на самай справе пакласці іх на прыладзе IOS. 13 00:00:42,887 --> 00:00:44,970 Некаторыя з рэчаў, якія мы не будзем глядзець на 14 00:00:44,970 --> 00:00:47,540 будзе ўключаць у сябе такія рэчы, як на самай справе прымае заяўку 15 00:00:47,540 --> 00:00:48,940 і пакласці яго на App Store. 16 00:00:48,940 --> 00:00:52,930 Там гэта шмат навучальных дапамог у Інтэрнэце, што дапаможа вам у гэтым аспекце яго. 17 00:00:52,930 --> 00:00:56,230 Але і таму, што, як частка CS50, вы атрымаеце 18 00:00:56,230 --> 00:00:59,780 каб далучыцца да развіцця кампаніі Apple Каманда, каманда распрацоўшчыкаў прыкладання CS50-х гадоў. 19 00:00:59,780 --> 00:01:02,790 Калі вы не зрабілі, што яшчэ і вы звязаны з CS50, 20 00:01:02,790 --> 00:01:04,810 Я рэкамендую вам зрабіць гэта, таму што гэта 21 00:01:04,810 --> 00:01:08,820 як вы зможаце стварыць некаторыя праграмы ў Xcode, 22 00:01:08,820 --> 00:01:11,890 будаваць іх, а на самай справе пакласці іх на некаторыя з вашых IOS прылад 23 00:01:11,890 --> 00:01:14,087 Калі ў вас сапраўды ёсць фізічная прылада IOS. 24 00:01:14,087 --> 00:01:16,670 Калі ў вас няма фізічнага IOS Прылада, якое больш чым у парадку. 25 00:01:16,670 --> 00:01:19,810 Вы на самой справе можам распрацаваць для IOS. 26 00:01:19,810 --> 00:01:22,390 І Xcode мае сімулятар, які дазваляе 27 00:01:22,390 --> 00:01:26,570 каб убачыць вашу заяўку ў дзеянні на кампутары. 28 00:01:26,570 --> 00:01:30,440 Але ён накшталт ёсць прыемная рэч на самай справе гуляць і ўзаемадзейнічаць 29 00:01:30,440 --> 00:01:34,235 з дадаткам на рэальным прыладзе. 30 00:01:34,235 --> 00:01:37,360 Так што пара патрабаванняў да на самай справе ўсё гэта развіццё. 31 00:01:37,360 --> 00:01:39,151 Адзін з іх з'яўляецца тое, што Вы павінны мець Mac. 32 00:01:39,151 --> 00:01:44,770 Ён павінен быць запушчаны 10.9.4 або больш позняй версіі для таго, каб зрабіць развіццё з імклівым. 33 00:01:44,770 --> 00:01:47,770 >> Вы можаце выкарыстоўваць раней версія для развіцця 34 00:01:47,770 --> 00:01:50,810 з Objective-C для МО і Mac. 35 00:01:50,810 --> 00:01:53,990 Але я рэкамендую, і шмат Прыклады, якія мы бачым сёння, 36 00:01:53,990 --> 00:01:55,700 выкарыстоўваць 10,10 Йосемити. 37 00:01:55,700 --> 00:02:00,910 Так што калі вы яшчэ не выканана, гэта добрая нагода, каб зрабіць гэта. 38 00:02:00,910 --> 00:02:05,480 Цяпер Xcode 6.1 апошняя версія інтэграванае асяроддзе распрацоўкі 39 00:02:05,480 --> 00:02:08,979 што кампанія Apple прадастаўляе бясплатна, што для Вы можаце спампаваць з крамы прыкладанняў. 40 00:02:08,979 --> 00:02:11,220 І я рэкамендую вам таксама запусціць апошнюю версію. 41 00:02:11,220 --> 00:02:14,700 >> Калі вам здарыцца быць запушчаны раней версія, Xcode 5 і ніжэй проста 42 00:02:14,700 --> 00:02:16,741 проста не падтрымліваюць хуткія б там ні было. 43 00:02:16,741 --> 00:02:19,490 І бэта-версіі шасці, якія былі вызваленыя на працягу лета, 44 00:02:19,490 --> 00:02:21,770 падтрымліваюць хуткія, але ёсць быў велізарны нумар 45 00:02:21,770 --> 00:02:25,220 змяненняў у мове, досыць так што код, які вы 46 00:02:25,220 --> 00:02:28,320 будзем глядзець на і што вы можа знайсці ў Інтэрнэце 47 00:02:28,320 --> 00:02:33,294 не можа быць скампіляваны правільна ў гэтых папярэдніх версіях Xcode. 48 00:02:33,294 --> 00:02:35,460 Такім чынам, яшчэ раз, яшчэ, калі вы не ёсць уліковы запіс распрацоўніка, 49 00:02:35,460 --> 00:02:38,560 Я рэкамендую вам пайсці developer.apple.com. 50 00:02:38,560 --> 00:02:42,240 Зарэгістравацца стварыце ўліковы запіс распрацоўніка, і далучыцца да каманды распрацоўшчыкаў CS50 дадатак. 51 00:02:42,240 --> 00:02:45,530 Гэта забяспечыць вам магчымасць для кампіляцыі прыкладанняў 52 00:02:45,530 --> 00:02:47,840 і паклаў іх на вашым прыладзе. 53 00:02:47,840 --> 00:02:49,222 Такім чынам, давайце пачнем. 54 00:02:49,222 --> 00:02:50,930 Самае першае, што мы збіраемся зрабіць, гэта 55 00:02:50,930 --> 00:02:55,140 на самай справе стварыць вельмі просты праект у Xcode 56 00:02:55,140 --> 00:02:59,530 што дазволіць вам падаць заяўку. 57 00:02:59,530 --> 00:03:03,170 >> Так што калі вы яшчэ не маюць Xcode адкрыты, ісці наперад і адкрыць яго 58 00:03:03,170 --> 00:03:04,270 і стварыць новы праект. 59 00:03:04,270 --> 00:03:06,570 Спецыяльная застаўка адкрыецца, і дасць вам 60 00:03:06,570 --> 00:03:08,800 некаторыя варыянты пра тое, што гэта тое, што вы хочаце зрабіць. 61 00:03:08,800 --> 00:03:12,170 Адразу скажам, што вы хочаце стварыць Новы праект, новае прыкладанне. 62 00:03:12,170 --> 00:03:15,650 Гэта акно з'явіцца, пры ўмове, што вы карыстаецеся Xcode 6.1. 63 00:03:15,650 --> 00:03:17,650 Прама зараз, і Працягласць гэтага семінара, 64 00:03:17,650 --> 00:03:19,990 мы будзем выкарыстоўваць адзінкавыя прыкладання Від, проста 65 00:03:19,990 --> 00:03:22,590 свайго роду базавай заяўцы каб атрымаць вашыя ногі мокрыя. 66 00:03:22,590 --> 00:03:25,200 І вы можаце пашырыцца па сваім меркаванні адтуль. 67 00:03:25,200 --> 00:03:27,660 >> Націсніце кнопку Далей на гэтым этапе. 68 00:03:27,660 --> 00:03:30,796 Цяпер тут ёсць некалькі рэчаў, што вы, магчыма, захочаце, каб увайсці. 69 00:03:30,796 --> 00:03:32,670 Назва прадукту Імя Вашага праекта. 70 00:03:32,670 --> 00:03:34,859 У гэтым выпадку, я проста буду называць яго Seminar1 71 00:03:34,859 --> 00:03:36,150 таму што гэта наш першы прыклад. 72 00:03:36,150 --> 00:03:38,290 Назва арганізацыі, у у гэтым выпадку гэта толькі маё імя. 73 00:03:38,290 --> 00:03:41,760 Вы, вядома, можаце змяніць яго у сваё ўласнае імя, ці CS50. 74 00:03:41,760 --> 00:03:46,160 Ідэнтыфікатар арганізацыі, калі вас здараецца, ёсць вэб-сайт, проста ўзяць 75 00:03:46,160 --> 00:03:49,940 Даменнае імя рэверс, com.yourname. 76 00:03:49,940 --> 00:03:54,200 а затым назва прадукту павінен з'явіцца аўтаматычна 77 00:03:54,200 --> 00:03:55,820 Пасля гэтага ў якасці ідэнтыфікатара расслаення. 78 00:03:55,820 --> 00:03:59,200 >> Відавочна, мова, які мы збіраецеся выкарыстоўваць на сённяшні дзень з'яўляецца хуткім. 79 00:03:59,200 --> 00:04:02,590 Можна, вядома, выкарыстоўваць Objective C для гэтага, але сёння будзе хуткім. 80 00:04:02,590 --> 00:04:04,920 І мы будзем цяпер казаць, універсальныя прылады, так 81 00:04:04,920 --> 00:04:06,900 што ён працуе на абодвух IPAD і iPhone. 82 00:04:06,900 --> 00:04:10,040 І мы выйдзем ядро Дадзеныя, паводле, каб захаваць 83 00:04:10,040 --> 00:04:12,830 Праект адносна проста да пары да часу. 84 00:04:12,830 --> 00:04:14,430 Так што давайце ісці наперад і націсніце кнопку Далей. 85 00:04:14,430 --> 00:04:16,471 І гэта будзе пытацца мяне дзе я хачу, каб выратаваць яго. 86 00:04:16,471 --> 00:04:19,250 Я проста захаваць яго на маім працоўным стале зараз. 87 00:04:19,250 --> 00:04:22,267 >> Добра, так што зараз гэта тое, што будзе адбудзецца, калі вы на самой справе адкрыты Xcode. 88 00:04:22,267 --> 00:04:24,100 І заўважце, што Самае першае, што вы бачыце 89 00:04:24,100 --> 00:04:28,770 гэта клічнік, што кажа не асобу падпісанне знойдзены. 90 00:04:28,770 --> 00:04:31,520 Я наўмысна зрабіў гэта на маім кампутары, і я 91 00:04:31,520 --> 00:04:34,220 спадзеючыся, што я збіраюся быць у стане фактычна гэта выправіць, 92 00:04:34,220 --> 00:04:37,860 таму што я хачу, каб вы, як гэта сапраўды будзе працаваць на вашай машыне. 93 00:04:37,860 --> 00:04:40,400 >> Ідзіце наперад і націсніце Выпраўленая праблема. 94 00:04:40,400 --> 00:04:45,400 Яна будзе прасіць вас, калі ў вас ёсць існуючую ўліковы запіс Apple, распрацоўшчыкаў. 95 00:04:45,400 --> 00:04:48,330 Гэта дзе далучэнне CS50 каманда распрацоўшчыкаў прыкладання 96 00:04:48,330 --> 00:04:51,240 Важна, каб вы не толькі ёсць прыкладанне кошт, 97 00:04:51,240 --> 00:04:53,690 але вы таксама павінны Магчымасць падпісаць прыкладання 98 00:04:53,690 --> 00:04:56,420 і паклаў іх на вашым прыладзе IOS. 99 00:04:56,420 --> 00:04:58,957 Гэта не-- пстрычка Выпраўленая праблема не варта 100 00:04:58,957 --> 00:05:01,040 Калі вы толькі збіраецеся будаваць і развіваць на мясцовым узроўні, 101 00:05:01,040 --> 00:05:03,520 цалкам у сімулятары IOS. 102 00:05:03,520 --> 00:05:05,820 >> Але цяпер я збіраюся распрацаваць і паставіць іх 103 00:05:05,820 --> 00:05:08,160 на маім Ipad, які будзе магчымасць трансляваць, а таксама. 104 00:05:08,160 --> 00:05:10,770 Так што я хачу на самай справе дадаць гэта. 105 00:05:10,770 --> 00:05:13,670 І гэта-то спытае, мне ў маім Apple ID. 106 00:05:13,670 --> 00:05:15,700 Так што гэта будзе гэта. 107 00:05:15,700 --> 00:05:18,940 І ў мяне ёсць за маім пароль, які сюды. 108 00:05:18,940 --> 00:05:27,760 Так дайце мне толькі адну секунду, каб знайсці, што, і скапіруйце і ўстаўце яго сюды. 109 00:05:27,760 --> 00:05:28,580 >> Націсніце кнопку Дадаць. 110 00:05:28,580 --> 00:05:31,095 Гэта будзе прасіць мяне якая каманда Я хачу далучыцца да яе. 111 00:05:31,095 --> 00:05:33,240 Я збіраюся зрабіць інжынернай школе. 112 00:05:33,240 --> 00:05:35,680 Націсніце Гуляць. 113 00:05:35,680 --> 00:05:37,780 Ой, што гэта не той. 114 00:05:37,780 --> 00:05:40,730 Давайце зробім гэта. 115 00:05:40,730 --> 00:05:42,060 Спадзяюся, што адзін будзе працаваць. 116 00:05:42,060 --> 00:05:44,220 Гэта адзін да гэтага часу не працуе. 117 00:05:44,220 --> 00:05:46,610 Мы бяжым з добрых тут. 118 00:05:46,610 --> 00:05:48,260 ОК, на гэты раз павінна працаваць. 119 00:05:48,260 --> 00:05:50,816 Зараз зачыніце гэта. 120 00:05:50,816 --> 00:05:54,450 Зараз давайце зробім школу машынабудаванне, націсніце абраць. 121 00:05:54,450 --> 00:06:00,190 >> А цяпер, спадзяюся, пасля пару секунд Вы can-- ОК, 122 00:06:00,190 --> 00:06:02,550 Я адклікаць і запыт. 123 00:06:02,550 --> 00:06:05,410 Аб чалавек, гэта будзе не працуюць. 124 00:06:05,410 --> 00:06:08,890 Добра, я паспрабую іншы. 125 00:06:08,890 --> 00:06:11,167 Давайце зробім гэты тут. 126 00:06:11,167 --> 00:06:17,020 127 00:06:17,020 --> 00:06:19,310 Жывыя дэмкі не ўдаецца мне. 128 00:06:19,310 --> 00:06:22,540 Мы, магчыма, прыйдзецца вярнуцца да толькі што будынак, цалкам лакальна, 129 00:06:22,540 --> 00:06:25,050 але гэта было б ОК ў гэтым выпадку. 130 00:06:25,050 --> 00:06:28,560 >> Дык вось, у той час як гэта на самай справе Рабочая, што мы збіраемся зрабіць, гэта проста 131 00:06:28,560 --> 00:06:31,190 стварыць вельмі просты Прывітанне свет прыкладанняў. 132 00:06:31,190 --> 00:06:32,340 Так што гэта Xcode. 133 00:06:32,340 --> 00:06:37,300 І калі вы яго яшчэ не бачыў, яго можа быць трохі страшным на першы погляд. 134 00:06:37,300 --> 00:06:41,430 Там гэта шмат шкла, ёсць шмат дэкарацый у розных галінах. 135 00:06:41,430 --> 00:06:44,300 Але толькі разумею, што ёсць сапраўды некалькі асноўных кампанентаў 136 00:06:44,300 --> 00:06:46,580 у гэтым асяроддзі распрацоўкі. 137 00:06:46,580 --> 00:06:51,090 На далёкай левай ўсе файлы якія дастасавальныя толькі да вашай праграме 138 00:06:51,090 --> 00:06:52,997 ці вашага канкрэтнага праекта. 139 00:06:52,997 --> 00:06:55,080 Мы будзем націснуўшы вакол на некаторых з іх, і мы 140 00:06:55,080 --> 00:06:57,660 адзначыць найбольш важныя з цягам часу. 141 00:06:57,660 --> 00:06:59,650 На крайні справа, мы ёсць набор атрыбутаў. 142 00:06:59,650 --> 00:07:02,920 І ўсе гэтыя атрыбуты, ёсць розныя шкла для атрыбутаў. 143 00:07:02,920 --> 00:07:06,770 Шкла будзе мяняцца ў залежнасці ад кантэкст асноўнага зместу, якія 144 00:07:06,770 --> 00:07:08,290 аказваецца ў сярэдзіне. 145 00:07:08,290 --> 00:07:11,740 Цяпер сярэдні можа на самай справе паказваюць Вы мноства рэчаў, напрыклад 146 00:07:11,740 --> 00:07:13,290 Ваш код сам па сабе. 147 00:07:13,290 --> 00:07:17,070 Ці вы можаце на самой справе have--, калі Вы націскаеце на раскадроўкі, якія 148 00:07:17,070 --> 00:07:21,270 гэта, дарэчы, проста графічны прадстаўніцтва Вашай карыстальніка 149 00:07:21,270 --> 00:07:25,350 інтэрфейс для вашага application-- то атрыбуты панэлі 150 00:07:25,350 --> 00:07:27,334 на вельмі далёкім правам на самай справе змяніць. 151 00:07:27,334 --> 00:07:29,750 Зараз ёсць некалькі іншых рэчы, якія я хачу звярнуць увагу. 152 00:07:29,750 --> 00:07:33,360 Вы можаце сартаваць вывучыць вакол у асяроддзі па сваім меркаванні. 153 00:07:33,360 --> 00:07:35,730 Але адна з рэчаў, якая была вельмі карысная 154 00:07:35,730 --> 00:07:38,470 гэта кнопка тут, у правым верхнім куце акна. 155 00:07:38,470 --> 00:07:41,230 Там гэтая кнопка, Падобна на тое, на далёка 156 00:07:41,230 --> 00:07:46,090 злева ад яго пункт ў суправаджэнні двух колах і сартавання 157 00:07:46,090 --> 00:07:49,540 з двух стрэлкі, якія паказваюць адзін ад аднаго. 158 00:07:49,540 --> 00:07:52,640 Пры пераключэнні паміж стандартны рэдактар, які 159 00:07:52,640 --> 00:07:55,560 гэта далёка левага, адзін які абраны па змаўчанні, 160 00:07:55,560 --> 00:08:01,040 і дзве акружнасці перакрываюцца адзін аднаго, што вы на самай справе атрымліваеце 161 00:08:01,040 --> 00:08:02,210 падвойныя выгляд панэлі. 162 00:08:02,210 --> 00:08:04,240 >> І гэта на самай справе будзе карысна для нас 163 00:08:04,240 --> 00:08:07,330 калі мы павінны звязаць элементы у карыстацкім інтэрфейсе да кода. 164 00:08:07,330 --> 00:08:09,330 І мы будзем гаварыць больш пра што ў хвіліну. 165 00:08:09,330 --> 00:08:12,050 Але зразумейце, што калі вы атрымаеце яшчэ больш шкла, як гэта, 166 00:08:12,050 --> 00:08:15,830 вы можаце спрасціць ваш погляд проста трохі, націснуўшы таму 167 00:08:15,830 --> 00:08:20,680 на адной рэдактары. 168 00:08:20,680 --> 00:08:21,580 Усё ідзе нармальна. 169 00:08:21,580 --> 00:08:24,560 Таму ў асноўным мы маем код, пазначаны на левы, атрыбуты справа, 170 00:08:24,560 --> 00:08:28,260 і тое, што гэта мы працуем тут, у самым цэнтры. 171 00:08:28,260 --> 00:08:30,390 >> Дык вось, я націснуў на галоўнай раскадроўкі. 172 00:08:30,390 --> 00:08:33,350 І раскадроўкі, зноў жа, спосаб Xcode 173 00:08:33,350 --> 00:08:38,110 што вы можаце стварыць свой карыстачу інтэрфейс з дапамогай проста перацягнуць 174 00:08:38,110 --> 00:08:39,130 метады. 175 00:08:39,130 --> 00:08:41,190 І так наша вельмі Першае прымяненне гэтага 176 00:08:41,190 --> 00:08:42,720 гэта менавіта тое, што мы збіраемся рабіць. 177 00:08:42,720 --> 00:08:45,950 Мы збіраемся спусціцца да вельмі далёка ў правай ніжняй частцы 178 00:08:45,950 --> 00:08:49,900 на экране, які змяшчае Разнастайнасць элементаў карыстацкага 179 00:08:49,900 --> 00:08:53,270 што вы можаце націснуць і перацягнуць стварыць свой карыстацкі інтэрфейс. 180 00:08:53,270 --> 00:08:55,550 >> Зараз усё гэта элементы называюцца праглядаў 181 00:08:55,550 --> 00:08:57,370 паколькі ў іх нейкі пункту гледжання. 182 00:08:57,370 --> 00:09:00,190 Там жа выгляд малюнка, для Напрыклад, на самай справе паказваюць, 183 00:09:00,190 --> 00:09:01,740 малюнак на карыстацкім інтэрфейсе. 184 00:09:01,740 --> 00:09:04,310 Там гэта выгляд табліца на самай справе паказваюць табліцу. 185 00:09:04,310 --> 00:09:05,190 Гэтак далей, і гэтак далей. 186 00:09:05,190 --> 00:09:08,250 Там гэта шырокі спектр погляды, якія вы можаце выбраць тут. 187 00:09:08,250 --> 00:09:11,100 Так што цяпер мы ідзем шукаць этыкетцы. 188 00:09:11,100 --> 00:09:13,550 Вы можаце проста прагартаць усе спісы, што там. 189 00:09:13,550 --> 00:09:15,460 Але ёсць пошук бар у самым нізе 190 00:09:15,460 --> 00:09:19,460 што робіць яго лягчэй вызначыць, канкрэтныя думкі, што вы на самай справе 191 00:09:19,460 --> 00:09:22,020 хачу, каб перацягнуць ў карыстацкім інтэрфейсе. 192 00:09:22,020 --> 00:09:23,560 >> Знойдзена мой лэйбл. 193 00:09:23,560 --> 00:09:28,430 Я збіраюся цягнуць яго тут, прама на мой прыкладання. 194 00:09:28,430 --> 00:09:30,130 Прама там, у сярэдняй выглядае добра. 195 00:09:30,130 --> 00:09:33,180 І я збіраюся ўвесці "Hello World!" 196 00:09:33,180 --> 00:09:33,810 Націсніце Enter. 197 00:09:33,810 --> 00:09:34,877 Цяпер у мяне ёсць ярлык. 198 00:09:34,877 --> 00:09:36,960 Гэта не выглядае, як быццам гэта у цэнтры цалкам прыстойна. 199 00:09:36,960 --> 00:09:38,500 Так што я магу паспрабаваць паўторна яго ў цэнтр. 200 00:09:38,500 --> 00:09:42,100 На шчасце, гэта прапаноўвае гэтыя даведнікаў, каб зрабіць рэчы нашмат лягчэй. 201 00:09:42,100 --> 00:09:44,130 Я збіраюся паспрабаваць скампіляваць яго. 202 00:09:44,130 --> 00:09:46,570 Спадзяемся, што яна на самай справе працаваць тут. 203 00:09:46,570 --> 00:09:52,870 А калі гэта не так, праз хвіліну гэта будзе на самой справе з'яўляюцца на маім Ipad. 204 00:09:52,870 --> 00:09:54,360 Гэта прама тут. 205 00:09:54,360 --> 00:09:55,060 Там яно і ёсць. 206 00:09:55,060 --> 00:09:56,590 >> Такім чынам, вось яно што. 207 00:09:56,590 --> 00:09:57,160 Мы скончылі. 208 00:09:57,160 --> 00:09:58,868 Мы стварылі наш вельмі Першае прыкладанне. 209 00:09:58,868 --> 00:10:01,330 Цяпер, відавочна, гэта нічога не рабіць. 210 00:10:01,330 --> 00:10:02,280 Гэта проста пазнака. 211 00:10:02,280 --> 00:10:07,350 Там няма ніякай сувязі паміж Карыстацкі інтэрфейс і код. 212 00:10:07,350 --> 00:10:10,130 Так што, калі мы на самай справе хацелі стварыць гэтую сувязь, 213 00:10:10,130 --> 00:10:14,790 калі мы сапраўды хацелі мець нейкі сувязі паміж элементамі 214 00:10:14,790 --> 00:10:17,540 якія існуюць на экранам і код, які 215 00:10:17,540 --> 00:10:19,810 дазваляе нам кантраляваць гэтыя элементы, то 216 00:10:19,810 --> 00:10:23,570 мы на самай справе трэба паглядзець на сам код. 217 00:10:23,570 --> 00:10:27,000 >> Так што гэта тое, што называецца ViewController.swift. 218 00:10:27,000 --> 00:10:30,080 І, у асаблівасці для Вашы першыя некалькі праграм, 219 00:10:30,080 --> 00:10:33,120 Гэта будзе свайго роду Большая частка кода, які вы enter-- 220 00:10:33,120 --> 00:10:35,980 будзе ў гэтым дакуменце тут. 221 00:10:35,980 --> 00:10:38,390 Там вельмі шмат рэчаў гэта тут да гэтага часу, ці не так? 222 00:10:38,390 --> 00:10:42,660 Там гэта камплект UI Імпарт класа, перавызначыць, [? фанк ,?] ўсе гэтыя розныя рэчы. 223 00:10:42,660 --> 00:10:45,820 І гэта не зусім зразумела, што гэта тое, што ўсё гэта значыць. 224 00:10:45,820 --> 00:10:48,570 Такім чынам, давайце зробім крок назад ад ад Xcode для трохі 225 00:10:48,570 --> 00:10:52,420 і паглядзець на саму мову, імклівае. 226 00:10:52,420 --> 00:10:56,370 >> Такім чынам, з хуткім, гэта было ў дызайн і распрацоўка 227 00:10:56,370 --> 00:10:58,645 на Apple, на працягу прыблізна чатырох гадоў да майго разумення. 228 00:10:58,645 --> 00:11:01,270 І ёсць некалькі функцый пра яе, што сапраўды выдатна. 229 00:11:01,270 --> 00:11:03,910 Перш за ўсё, гэта складзены мовы, гэтак жа, як С. 230 00:11:03,910 --> 00:11:06,120 Такім чынам, вы спачатку павінны скампіляваць яго і запусціце яго 231 00:11:06,120 --> 00:11:09,580 Перш чым вы сапраўды выканаць код, які прыводзіць. 232 00:11:09,580 --> 00:11:14,250 Але ёсць, у адрозненне ад C, інтэрактыўны падкажыце што можна рэальна працаваць 233 00:11:14,250 --> 00:11:16,680 і ўвядзіце адвольныя каманды ў. 234 00:11:16,680 --> 00:11:20,280 І вельмі падобна на кансолі JavaScript, якія вы можаце быць знаёмыя з цяпер, 235 00:11:20,280 --> 00:11:24,506 гэта на самай справе будзе ацэньваць тых, каманды і забяспечыць Вам выхад. 236 00:11:24,506 --> 00:11:26,380 І яны нават узялі што да наступнага ўзроўню 237 00:11:26,380 --> 00:11:29,100 і яны стварылі нешта званыя гульнявыя пляцоўкі ў Xcode 238 00:11:29,100 --> 00:11:31,720 што дазволіць вам візуальна працаваць з кодам. 239 00:11:31,720 --> 00:11:34,910 І мы сапраўды ўбачыць некаторыя прыклады таго, што ў ледзь-ледзь. 240 00:11:34,910 --> 00:11:41,680 Ён заснаваны на C. C ляжыць у аснове гэта, таму што ўсе кампілятары 241 00:11:41,680 --> 00:11:46,820 стварыць код з С і стварыць аб'ектны код ад яго. 242 00:11:46,820 --> 00:11:49,240 Але гэта сапраўды акцыі параўнальна мала сінтаксіс. 243 00:11:49,240 --> 00:11:50,721 Гэта будзе выглядаць даволі розныя. 244 00:11:50,721 --> 00:11:51,970 Там будзе некаторае падабенства. 245 00:11:51,970 --> 00:11:54,140 Але ёсць будзе даволі мала адрозненняў 246 00:11:54,140 --> 00:11:57,200 у параўнанні, скажам, JavaScript або PHP. 247 00:11:57,200 --> 00:11:59,070 І мы будзем паказваць гэтыя у хвіліну. 248 00:11:59,070 --> 00:12:01,420 >> Цяпер адзін з самых вялікіх рэчаў, аб імклівы, што прыемна 249 00:12:01,420 --> 00:12:05,650 у тым, што, асабліва ў параўнанні З, гэта азначала, каб быць бяспечным. 250 00:12:05,650 --> 00:12:08,100 Усё ў ім прызначана для быць вельмі моцна набраў ст. 251 00:12:08,100 --> 00:12:10,780 На самай справе гэта амаль раздражняе Па-першае, калі вы ўпершыню 252 00:12:10,780 --> 00:12:15,610 пачаць працаваць з хуткім, наколькі колькі гэта ўзмацняе тыпаў ва ўсім свеце. 253 00:12:15,610 --> 00:12:17,860 Усё гэта радок павінен заставацца радок. 254 00:12:17,860 --> 00:12:22,100 Гэта вельмі цяжка разабрацца ў пераўтварэнні гэта ці прымусіць яе ў нейкай іншай форме. 255 00:12:22,100 --> 00:12:23,800 >> І зноў жа, мы пакажам прыклады гэтага. 256 00:12:23,800 --> 00:12:26,830 Але ў канчатковым выніку зразумець, што гэта азначала, каб абараніць вас, 257 00:12:26,830 --> 00:12:32,010 і вам я маю на ўвазе ваш код, ад збой у нейкі жудасны шлях, калі 258 00:12:32,010 --> 00:12:34,330 ў вас ёсць нейкія неадпаведныя тыпу. 259 00:12:34,330 --> 00:12:36,040 І зноў жа, працаваць з ёй. 260 00:12:36,040 --> 00:12:40,210 Таму што гэта будзе непрыемна спачатку як вы спрабуеце высветліць, чаму менавіта 261 00:12:40,210 --> 00:12:43,070 Вы атрымліваеце гэта незвычайнае памылкі справу з тыпамі. 262 00:12:43,070 --> 00:12:45,350 Але гэта будзе стаіць у канцы. 263 00:12:45,350 --> 00:12:47,267 >> Гэта справа з аўтаматычным кіраванне памяццю, 264 00:12:47,267 --> 00:12:49,100 таму ўжо не зрабіць вас мець справу з рэчамі, 265 00:12:49,100 --> 00:12:51,400 як Таноса і бясплатна, і ўсё з гэтых відаў рэчаў. 266 00:12:51,400 --> 00:12:53,066 І гэта таксама прызначаны для абагульненняў. 267 00:12:53,066 --> 00:12:58,360 Такім чынам, хоць мы можам выкарыстоўваць Xcode для стварыць IOS прыкладанняў і прыкладанняў для Mac, 268 00:12:58,360 --> 00:13:00,380 мы таксама можам проста выкарыстоўваць яго ў якасці скрыптовай мовы. 269 00:13:00,380 --> 00:13:03,660 І таму мы можам выкарыстоўваць яго роду не замест PHP або замест 270 00:13:03,660 --> 00:13:07,800 Пітона на самай справе хутка разабраць і апрацаваць 271 00:13:07,800 --> 00:13:09,800 некаторыя дадзеныя, якія ў нас ёсць на нашым кампутары. 272 00:13:09,800 --> 00:13:13,290 >> Ён мае шырокі спектр сучасных Асаблівасці, дадатковыя прыналежнасці, зменлівасць, 273 00:13:13,290 --> 00:13:17,900 джынэрыкі, замкі, і многае з гэтага рэчы, якія вы можаце ці не можаце прызнаць. 274 00:13:17,900 --> 00:13:22,810 І гэта толькі выгляд шкадавання частка мовы, што некаторыя з іх 275 00:13:22,810 --> 00:13:26,700 Сартаваць футурыстычных сучасных элементаў, якія ўтрымліваюцца ў элементы 276 00:13:26,700 --> 00:13:34,520 так глыбока ўкаранілася, што я на самой справе будзе ёсць, каб навучыць вас CS50.5 няшмат. 277 00:13:34,520 --> 00:13:37,305 >> Мы павінны даведацца крыху больш аб некаторых асаблівасцях таго, 278 00:13:37,305 --> 00:13:40,180 каб зразумець, што адбываецца далей, і так што вы можаце паглядзець на код 279 00:13:40,180 --> 00:13:42,450 і не адчуваць сябе цалкам страчаныя. 280 00:13:42,450 --> 00:13:44,820 І вы ўбачыце, што я маю на ўвазе з тым, што літаральна за хвіліну. 281 00:13:44,820 --> 00:13:47,830 Такім чынам, let's-- дастаткова гэтага Сартаваць тэарэтычнага матэрыялу. 282 00:13:47,830 --> 00:13:52,450 Давайце рэальна зірнуць на наш Самы першы Swift праграма. 283 00:13:52,450 --> 00:13:53,590 Гэта адна радок кода. 284 00:13:53,590 --> 00:13:57,690 Радок 14 тут, гэта кажа друку L N прывітанне CS50. 285 00:13:57,690 --> 00:14:01,160 >> Так што некалькі рэчаў, якія гэта вельмі розныя пра гэта ў параўнанні 286 00:14:01,160 --> 00:14:04,140 да рэчаў, якія вы маглі б выкарыстоўваецца, каб з З, напрыклад. 287 00:14:04,140 --> 00:14:08,390 Адзін з іх з'яўляецца тое, што няма ніякага intmain, няма ўключаюць раздзел, 288 00:14:08,390 --> 00:14:10,790 няма ні гэтага дадатковага матэрыялу. 289 00:14:10,790 --> 00:14:13,790 Ўключаюць у сябе, як стандарт I / O, як у бібліятэках 290 00:14:13,790 --> 00:14:16,580 што на самой справе забяспечваюць Стандартныя функцыі мовы, 291 00:14:16,580 --> 00:14:19,180 аўтаматычна ўключаюцца, як частка стандартнай бібліятэкі Свіфта 292 00:14:19,180 --> 00:14:20,680 і што аўтаматычна імпартуюцца. 293 00:14:20,680 --> 00:14:23,740 Вы не павінны рабіць што імпарт ўручную. 294 00:14:23,740 --> 00:14:27,360 >> Intmain не існуе, паколькі Галоўная кропка ўваходу для кода 295 00:14:27,360 --> 00:14:29,470 на самай справе ў пачатку кода. 296 00:14:29,470 --> 00:14:32,000 Такім чынам, любы код, які ў вас ёсць з пачатку 297 00:14:32,000 --> 00:14:34,940 на самай справе будзе выконвацца з самага пачатку. 298 00:14:34,940 --> 00:14:36,520 Так што гэта сапраўды істотна спрашчае. 299 00:14:36,520 --> 00:14:38,470 Звярніце ўвагу таксама, што няма коскі. 300 00:14:38,470 --> 00:14:41,040 Там няма кропкі з коскі ў гэтай мове. 301 00:14:41,040 --> 00:14:43,261 Вы ставіце заяву на індывідуальнай лініі 302 00:14:43,261 --> 00:14:45,510 а затым наступная радок ўяўляе іншую заяву. 303 00:14:45,510 --> 00:14:47,420 Калі Вы жадаеце пакласці mulitiple заявы онлайн, 304 00:14:47,420 --> 00:14:49,086 то ў вас ёсць аддзяліць яго кропкай з коскі. 305 00:14:49,086 --> 00:14:50,940 Але па большай частцы, Добры стыль, мы 306 00:14:50,940 --> 00:14:56,530 ніколі не ўбачыце коскі для мэты, якія падзяляюць справаздачнасці 307 00:14:56,530 --> 00:14:58,420 у SWIFT. 308 00:14:58,420 --> 00:14:59,820 Так як гэта сапраўды працуе? 309 00:14:59,820 --> 00:15:04,080 Ну вельмі падобна на C мы на самай справе трэба сабраць гэта. 310 00:15:04,080 --> 00:15:10,640 І таму мы можам зрабіць, што з дапамогай Свіфт З, а затым 1.Swift. 311 00:15:10,640 --> 00:15:13,850 А потым праз пару хвілін будзе скампіляваны 312 00:15:13,850 --> 00:15:16,340 і тады я магу запусціць адзін пункт. 313 00:15:16,340 --> 00:15:19,691 І чым гэта будзе проста сказаць "Прывітанне CS50." 314 00:15:19,691 --> 00:15:20,690 Высокі, так што мы ідзем. 315 00:15:20,690 --> 00:15:22,273 Там наш першы прывітанне свет праграма. 316 00:15:22,273 --> 00:15:24,790 Давайце пяройдзем да нумар два. 317 00:15:24,790 --> 00:15:30,450 >> Зараз у this-- гэта змянілася ледзь-ледзь, таму што ў той час як правіла, вы 318 00:15:30,450 --> 00:15:34,720 do-- на самай справе заўсёды вы павінны скласці хуткі прыкладанне перад вамі 319 00:15:34,720 --> 00:15:37,180 рэальна працаваць it-- адзін з выдатных асаблівасцяў 320 00:15:37,180 --> 00:15:40,230 што я згадваў раней, што Свіфт сапраўды можа быць выкарыстаны ў той 321 00:15:40,230 --> 00:15:43,390 з псеўда-рэжыме інтэрпрэтацыі, ёсць на самай справе, як перакладчыка. 322 00:15:43,390 --> 00:15:46,690 Але тое, што гэта будзе зрабіць, гэта ёсць з'яўляецца, па сутнасці, хуткія прыкладання 323 00:15:46,690 --> 00:15:47,520 што вы можаце запусціць. 324 00:15:47,520 --> 00:15:51,050 >> Так, напрыклад, калі вы проста ўвядзіце Свіфт тут, што адбудзецца 325 00:15:51,050 --> 00:15:52,330 з'яўляецца тое, што вы атрымаеце падказку. 326 00:15:52,330 --> 00:15:59,040 І вы можаце ўвесці хуткія Код, раздрукаваць прывітанне, і запусціць яго. 327 00:15:59,040 --> 00:16:01,867 І гэта будзе на самой справе print-- Ну, гэта не друкавалі ў гэтым выпадку 328 00:16:01,867 --> 00:16:04,450 таму што гэта друкуецца па цэнтры з, якіх не відаць тут. 329 00:16:04,450 --> 00:16:06,660 Але гэта на самай справе можа функцыянаваць. 330 00:16:06,660 --> 00:16:09,580 І таму ў дадзеным выпадку, я проста збіраецца выкарыстоўваць гэта ў якасці сцэнара. 331 00:16:09,580 --> 00:16:11,259 І я магу на самой справе запусціць гэты код. 332 00:16:11,259 --> 00:16:13,800 Так так, што я на самой справе запусціць гэта будзе трохі адрознівацца, 333 00:16:13,800 --> 00:16:15,710 але вы ўбачыце, што праз хвіліну. 334 00:16:15,710 --> 00:16:18,890 Цяпер, у гэтым выпадку, што мы збіраемся зрабіць гэта спачатку вызначыць зменную. 335 00:16:18,890 --> 00:16:22,160 Так што гэта, як мы вызначаем пераменная хутка, 336 00:16:22,160 --> 00:16:25,900 што мы выкарыстоўваем, хай ключавое слова, а затым па імя зменнай, 337 00:16:25,900 --> 00:16:29,280 а затым мы прывядзем некаторыя ініцыялізацыі дадзеных неабавязкова. 338 00:16:29,280 --> 00:16:34,660 Так што гэта справа мы вызначаем канстанта, названая імя, 339 00:16:34,660 --> 00:16:37,775 і мы збіраемся выкарыстаць, што Выхад нашай друку лініі 340 00:16:37,775 --> 00:16:39,590 у самым нізе, прывітанне імем. 341 00:16:39,590 --> 00:16:43,260 >> Зараз звернеце ўвагу, што замест выкарыстання% S, мы можам інкапсуляваць імя гэтага 342 00:16:43,260 --> 00:16:49,960 Пераменная в / () і быць у стане аб'яднаць у змесціве гэта 343 00:16:49,960 --> 00:16:51,790 Радок у гэты радок. 344 00:16:51,790 --> 00:16:56,510 Цяпер у адрозненне ад C, радок бягучая рэальная увядзіце SWIFT. 345 00:16:56,510 --> 00:16:59,240 І так сядзіць побач Інтс і побач 346 00:16:59,240 --> 00:17:02,220 падвойваецца вельмі лёгка і, натуральна, у параўнанні 347 00:17:02,220 --> 00:17:05,450 некаторыя з іншай мовы, якія мы ўжо бачылі. 348 00:17:05,450 --> 00:17:07,980 Так што гэта будзе на самой справе працаваць гэтак жа, як можна было б чакаць. 349 00:17:07,980 --> 00:17:10,540 >> Я магу запусціць 2.swift. 350 00:17:10,540 --> 00:17:14,390 І мы бачым, што мяне клічуць на самай справе зрошчвання ў "Hello Dan." 351 00:17:14,390 --> 00:17:16,050 Добра, выдатна. 352 00:17:16,050 --> 00:17:17,485 Пераходзячы да нумар тры. 353 00:17:17,485 --> 00:17:19,359 Зараз гэта было трохі белага хлусня, што я 354 00:17:19,359 --> 00:17:23,369 сказаў, што шлях, які мы заяўляем, зменныя, каб выкарыстоўваць выпушчаных ключавое слова. 355 00:17:23,369 --> 00:17:27,640 Як шмат разоў, як вы, магчыма, вы можаце зрабіць Каб выкарыстоўваць давайце, таму што, што гэта робіць 356 00:17:27,640 --> 00:17:29,280 гэта вызначае канстанту. 357 00:17:29,280 --> 00:17:33,010 І гэта кажа імклівы, што ён можа аптымізаваць хуткасць вашага прыкладання 358 00:17:33,010 --> 00:17:36,230 таму што ён ведае, што пераменная не зменіцца. 359 00:17:36,230 --> 00:17:38,760 >> Так старанна ацэньваць калі вы збіраецеся выкарыстоўваць 360 00:17:38,760 --> 00:17:41,382 пераменная для Мэты яго змянення. 361 00:17:41,382 --> 00:17:43,340 І калі вы збіраецеся стварыць зменную проста 362 00:17:43,340 --> 00:17:47,010 правесці некаторыя дадзеныя, і гэта на самай справе не збіраецца мяняць. 363 00:17:47,010 --> 00:17:50,150 Так што гэта паняцце нязменнасці, гэта на самай справе не збіраецца мяняць, 364 00:17:50,150 --> 00:17:53,740 з'яўляецца важным нават далёка ўніз, як вызначэння зменных. 365 00:17:53,740 --> 00:17:56,870 Дык вось, калі мы задалі імя, Хай імя, і ў гэтым выпадку 366 00:17:56,870 --> 00:18:02,120 гэта пастаянная, то ёсць тыпу радок, і яна роўная Дан. 367 00:18:02,120 --> 00:18:05,580 >> Так у той час як у да версія, яна infers-- і "гэта" 368 00:18:05,580 --> 00:18:08,220 Я маю на ўвазе swift-- Свіфт выводзіць тып дадзеных 369 00:18:08,220 --> 00:18:10,850 што мы ўступілі ў зменную. 370 00:18:10,850 --> 00:18:12,930 У гэтым выпадку, мы можам быць відавочным. 371 00:18:12,930 --> 00:18:17,590 Дык няхай тады імя гэтага пераменная імя, затым двукроп'е. 372 00:18:17,590 --> 00:18:21,350 І пасля двукроп'я ня мы пазначыць тып дадзеных. 373 00:18:21,350 --> 00:18:24,694 Так больш не гэта INT імя або Назва радок або што-то падобнае. 374 00:18:24,694 --> 00:18:26,860 Але замест таго, каб дазволіць этыкетку, мы вызначэнне або няма 375 00:18:26,860 --> 00:18:29,090 гэта пастаянная або пераменная, за якім варта імя, 376 00:18:29,090 --> 00:18:31,870 затым тып дадаткова. 377 00:18:31,870 --> 00:18:34,730 >> Такім чынам, у гэтым выпадку мы вызначаем гэтае імя радок. 378 00:18:34,730 --> 00:18:35,790 Мы кажам, што Дэн. 379 00:18:35,790 --> 00:18:39,270 І зараз у мяне іншая пераменная, у гэтым выпадку ён называецца пазнакай. 380 00:18:39,270 --> 00:18:42,090 Але заўважце, што гэта з прэфіксам Вар ключавым слове. 381 00:18:42,090 --> 00:18:44,430 Сродкі вар ключавых слоў што гэтая пераменная можа 382 00:18:44,430 --> 00:18:48,720 змяніць на больш познім этапе ў Час, дзесьці ў кодзе 383 00:18:48,720 --> 00:18:52,480 мы можам на самай справе змяніць яго, і ён не дасць нам якой-небудзь канкрэтнай памылкі. 384 00:18:52,480 --> 00:18:56,760 >> Мы можам зрабіць стандартны аб'яднання аператар тут з дапамогай сімвала плюс 385 00:18:56,760 --> 00:19:00,130 на самай справе дадаць наш імя ў гэтым радку. 386 00:19:00,130 --> 00:19:02,921 І тады мы зможам раздрукаваць як мы толькі што бачылі хвіліну таму. 387 00:19:02,921 --> 00:19:04,920 Зараз давайце казаць, што вы Каб стварыць зменную 388 00:19:04,920 --> 00:19:06,586 але вы не хочаце, каб ініцыялізаваць яго яшчэ. 389 00:19:06,586 --> 00:19:08,590 Вы яшчэ не хачу пакласці любыя дадзеныя ў ім. 390 00:19:08,590 --> 00:19:11,760 Ну што вы павінны сказаць хуткім, што тып дадзеных, 391 00:19:11,760 --> 00:19:16,430 будзе, перш чым вы можаце фактычна вызначаюць яго правільна. 392 00:19:16,430 --> 00:19:20,360 >> Такім чынам, у гэтым выпадку, калі мы вызначылі пераменная з імем класа, мы павінны быць 393 00:19:20,360 --> 00:19:24,450 Відавочнае пра яго тыпе, паколькі ён не можа зрабіць выснову, проста гледзячы 394 00:19:24,450 --> 00:19:27,300 на ініцыялізаваць дадзеныя што вы дае да яго. 395 00:19:27,300 --> 00:19:30,050 Гэта дасць нам пра памылку, калі проста ўвядзіце вар клас, напрыклад, 396 00:19:30,050 --> 00:19:31,830 таму што яна не мае тыпу таму. 397 00:19:31,830 --> 00:19:33,353 Так клас = 100. 398 00:19:33,353 --> 00:19:35,790 Так што 100 ўяўляе сабой цэлае лік, яго падыходзіць вельмі добра ў гэтым. 399 00:19:35,790 --> 00:19:36,998 Ён будзе працягваць функцыянаваць. 400 00:19:36,998 --> 00:19:40,350 401 00:19:40,350 --> 00:19:43,022 Мы бачым, як тое можа аб'яднаць гэта ў. 402 00:19:43,022 --> 00:19:44,730 Цяпер вы можаце быць спакуса, калі вы на самой справе 403 00:19:44,730 --> 00:19:48,610 хацеў аб'яднаць пераходзяць у іншы тэкставай радкі, 404 00:19:48,610 --> 00:19:52,560 ў іншую радок, што вы проста выкарыстоўваць той жа аператар канкатэнацыі. 405 00:19:52,560 --> 00:19:54,630 І гэта, як правіла, дакладна. 406 00:19:54,630 --> 00:20:00,540 Але Свіфт не дазволіць вам няяўна змяніць тып дадзеных. 407 00:20:00,540 --> 00:20:03,440 Такім чынам, у дадзеным выпадку гэта лінія, 25, не ўдасца 408 00:20:03,440 --> 00:20:06,650 таму што гатунак цэлы лік, а не радок. 409 00:20:06,650 --> 00:20:08,760 І такім чынам, ёсць неадпаведнасць набор тыпаў. 410 00:20:08,760 --> 00:20:11,780 Такім чынам, вы павінны быць відавочнымі, калі Вы хочаце змяніць гэтыя дадзеныя, 411 00:20:11,780 --> 00:20:14,080 калі вы хочаце, каб прымусіць гэта дадзеных у іншы тып 412 00:20:14,080 --> 00:20:17,250 і сказаць, добра, я хачу ўзяць Гэты гатунак, які з'яўляецца цэлым лікам, 413 00:20:17,250 --> 00:20:19,050 і пераўтварыць яго ў радок. 414 00:20:19,050 --> 00:20:23,970 >> Такім чынам, я бяру капіталу S тыпу String ўсе тыпы, вы заўважыце ,, капитализируются, 415 00:20:23,970 --> 00:20:26,280 Int, Double, String, гэтак далей, і гэтак далей. 416 00:20:26,280 --> 00:20:28,930 Усе яны капитализируются проста каб зрабіць рэчы прасцей. 417 00:20:28,930 --> 00:20:32,240 І мы будзем казаць выгаду Радок пераходзяць у яго класе. 418 00:20:32,240 --> 00:20:35,020 І гэта створыць Радок з гэтага ліку. 419 00:20:35,020 --> 00:20:37,970 І тады мы зможам аб'яднаць два вельмі прыгожа. 420 00:20:37,970 --> 00:20:40,500 Любыя пытанні па гэтай рэчы да гэтага часу? 421 00:20:40,500 --> 00:20:43,770 Добра, давайце араць да нумар чатыры. 422 00:20:43,770 --> 00:20:47,870 >> Зараз давайце пагаворым аб некаторых больш прасунутых структуры, як масівы і цыклы. 423 00:20:47,870 --> 00:20:54,920 І ў адрозненне ад C, масівы ў Swift не прадстаўлены паказальнікамі. 424 00:20:54,920 --> 00:20:58,730 Ўказальнікі ў SWIFT, Хоць яны існуюць, называецца 425 00:20:58,730 --> 00:21:02,840 як небяспечных паказальнікаў або некаторыя падобны тып, як гэта, 426 00:21:02,840 --> 00:21:04,950 яны не падвяргаюцца вас нармальна. 427 00:21:04,950 --> 00:21:07,300 Такім чынам, становіцца вельмі цяжка для Вас, каб маніпуляваць 428 00:21:07,300 --> 00:21:10,020 памяці прама з вашага кампутара. 429 00:21:10,020 --> 00:21:11,670 >> Так масівы толькі тып дадзеных. 430 00:21:11,670 --> 00:21:16,830 І яны спасылаюцца, выкарыстоўваючы гэты від зараз стандартным квадратным абазначэння кранштэйны 431 00:21:16,830 --> 00:21:18,280 што вы бачылі раней. 432 00:21:18,280 --> 00:21:21,130 Але калі вы на самой справе хочаце, каб вызначыць тып зменнай 433 00:21:21,130 --> 00:21:24,330 ў выглядзе масіва некаторых Асаблівы тып, то вы 434 00:21:24,330 --> 00:21:27,150 пакласці, што тып ў квадратных дужках. 435 00:21:27,150 --> 00:21:30,260 Так што я кажу тут з'яўляецца тое, што Я ствараю зменную з імем 436 00:21:30,260 --> 00:21:33,930 гатункі тыпу INT масіва. 437 00:21:33,930 --> 00:21:37,380 І я ўсталёўваю, што роўна некаторыя ініцыялізаваць дадзеныя, якія ў гэтым выпадку 438 00:21:37,380 --> 00:21:42,960 100, 0, 90, 85, які знаходзіцца ўсяго ў Калекцыя адвольных класаў тут. 439 00:21:42,960 --> 00:21:46,480 У цяперашні час у гэтым выпадку я мог бы, памятаеце, выдаліць тып, 440 00:21:46,480 --> 00:21:49,580 і было б у стане вывесці яго на аснове ініцыялізавацца дадзеных. 441 00:21:49,580 --> 00:21:51,990 Але калі я выдаліў гэта і Мне трэба, каб усталяваць яго пазней, 442 00:21:51,990 --> 00:21:56,840 то я б, каб пераканацца, што ў мяне ёсць тып там. 443 00:21:56,840 --> 00:21:58,750 Добра, давайце рухацца далей. 444 00:21:58,750 --> 00:22:03,010 Такім чынам, мы can-- масівы падаеце нам выбар 445 00:22:03,010 --> 00:22:07,130 метадаў праз такі кропкавай натацыі у вас, верагодна, ужо знаёмыя з. 446 00:22:07,130 --> 00:22:10,360 Так grades.count, напрыклад, кажа нам менавіта столькі 447 00:22:10,360 --> 00:22:13,680 элементаў, якія якая змяшчаецца ў дадзеным масіве. 448 00:22:13,680 --> 00:22:17,260 >> Калі я хачу, каб дадаць additional-- Зараз звернеце ўвагу, што гэта Var 449 00:22:17,260 --> 00:22:20,140 і не-- гэта зменная і не з'яўляецца пастаяннай, якая 450 00:22:20,140 --> 00:22:24,410 азначае, што я магу змяніць змесціва гэтага масіва, я магу дадаць аб'екты да яго. 451 00:22:24,410 --> 00:22:28,870 Але я не магу проста сказаць гатунку а затым у квадратных дужках 452 00:22:28,870 --> 00:22:33,280 чатыры, таму што гэта будзе з памылкі межаў у гэтым выпадку. 453 00:22:33,280 --> 00:22:36,190 Калі я хачу на самай справе змена памер масіва, 454 00:22:36,190 --> 00:22:41,140 Я павінен выкарыстоўваць метад кропка дадаць да дадаць сёе-тое да ў самым яго канцы. 455 00:22:41,140 --> 00:22:46,900 Я магу, аднак, змена індывідуальныя паказчыкі. 456 00:22:46,900 --> 00:22:48,920 >> Так што я мог бы выкарыстаць ацэнкі а затым у квадратных дужках 457 00:22:48,920 --> 00:22:52,480 нулявы маніпуляваць гэты першы індэкс і гэтак далей, як вы звычайна чакаеце. 458 00:22:52,480 --> 00:22:56,530 І што я магу зрабіць тое ж самае на самай справе атрымаць дадзеныя з гэтага таксама. 459 00:22:56,530 --> 00:23:00,420 Зараз ёсць таксама свайго роду фантазіі метад зрабіць гэта, ацэнкі плюс роўных 460 00:23:00,420 --> 00:23:02,525 а затым яшчэ адзін індэкс, які будзе append-- 461 00:23:02,525 --> 00:23:04,400 ці не іншы index-- але іншы спіс, які 462 00:23:04,400 --> 00:23:07,340 будзе дадаваць гэты спіс да задняй часткі гатункаў. 463 00:23:07,340 --> 00:23:09,780 І ацэнка будзе затым змяшчаць усё гэта. 464 00:23:09,780 --> 00:23:13,850 Але гэта свайго роду дадатковай рэч што я проста пакажу вам, для задавальнення. 465 00:23:13,850 --> 00:23:14,910 >> Зараз ёсць цыкл. 466 00:23:14,910 --> 00:23:18,970 І гэта пачатак, дзе рэчы пачынаюць крыху змяніцца. 467 00:23:18,970 --> 00:23:22,920 Звярніце ўвагу, як гэта для завесы адрозніваецца ад для завес ў З 468 00:23:22,920 --> 00:23:26,470 Цяпер адзначу, што для завес ў Swift можа 469 00:23:26,470 --> 00:23:30,650 быць зроблены, каб выглядаць, як на завес ў С, але ёсць шмат больш карысных канструкцый 470 00:23:30,650 --> 00:23:37,840 што істотна ліквідаваць неабходнасць мець для вар я роўная 0 з коскі я 471 00:23:37,840 --> 00:23:40,340 менш, чым нейкі даўжыні, гэтак далей, і гэтак далей, ці не так? 472 00:23:40,340 --> 00:23:42,940 І гэтая канструкцыя з'яўляецца толькі адным з іх. 473 00:23:42,940 --> 00:23:49,030 >> Для індэкса, індэкс новага Пераменная, у гэтым выпадку, у дыяпазоне. 474 00:23:49,030 --> 00:23:52,730 І тое, што я хачу сказаць, што ёсць Дыяпазон ад 0 усё аж да 475 00:23:52,730 --> 00:23:55,870 але не уключаючы grades.count. 476 00:23:55,870 --> 00:23:58,470 Так што гэта кропка кропка менш чым знак уяўляе 477 00:23:58,470 --> 00:24:05,040 Дыяпазон значэнняў, пачынаючы з нуля усё, аж да grades.count мінус 1. 478 00:24:05,040 --> 00:24:07,070 Існуе асобны аператар, які існуе, 479 00:24:07,070 --> 00:24:13,320 што кропка кропка кропка, якая б азначае, што я хачу дыяпазоне ад нуля 480 00:24:13,320 --> 00:24:16,310 гатункам разлічваць ўключна. 481 00:24:16,310 --> 00:24:19,130 >> Але ў гэтым выпадку, так як яны масівы нулявой адзнакі, мы, вядома, 482 00:24:19,130 --> 00:24:23,290 не хочуць ісці на Максімальную колькасць класаў. 483 00:24:23,290 --> 00:24:26,390 Я магу сумаваць ацэнкі, як вы, магчыма, чакаць, і выхад ўсе гэтыя рэчы. 484 00:24:26,390 --> 00:24:29,620 ОК, як рухацца далей. 485 00:24:29,620 --> 00:24:32,270 Зараз давайце пагаворым пра функцыі. 486 00:24:32,270 --> 00:24:35,465 Для таго, каб вызначыць функцыю Вы карыстаецеся ключавое слова фанк. 487 00:24:35,465 --> 00:24:38,090 І зноў жа, у Свіфта вы павінны быць вельмі асцярожныя з тыпамі. 488 00:24:38,090 --> 00:24:41,530 Вы дае яму параметры вызначаючы, напрыклад, 489 00:24:41,530 --> 00:24:45,440 імя параметру і Затым у Colin, тып дадзеных 490 00:24:45,440 --> 00:24:47,690 што вы чакаеце, што Параметр прыняць. 491 00:24:47,690 --> 00:24:50,700 >> Такім чынам, у дадзеным выпадку мы маем Функцыя называецца граф класа друку. 492 00:24:50,700 --> 00:24:54,630 Ён прымае зменную заліковую кніжку, ці, хутчэй, параметр, званы заліковую кніжку. 493 00:24:54,630 --> 00:24:59,267 І мы чакаем, што заліковую кніжку быць масіў цэлых лікаў. 494 00:24:59,267 --> 00:25:01,350 Калі заліковую кніжку пусты, Мы надрукуем адну рэч. 495 00:25:01,350 --> 00:25:06,090 У адваротным выпадку мы будзем друкаваць нумар марак, што гэта на самай справе. 496 00:25:06,090 --> 00:25:09,470 >> Цяпер, калі мы хочам, каб вярнуцца некаторы значэнне, то шлях 497 00:25:09,470 --> 00:25:14,595 што мы Мадыфікуючы гэта вызначэнне на самай справе выкарыстаць гэта ключавое слова стрэлкай, 498 00:25:14,595 --> 00:25:16,870 або выкарыстоўваць гэтую стрэлку якое азначае. 499 00:25:16,870 --> 00:25:19,440 Дык вось, мы збіраемся вызначыць Функцыя называецца сярэдняй. 500 00:25:19,440 --> 00:25:21,940 Мы збіраемся прыняць спіс нумароў. 501 00:25:21,940 --> 00:25:25,430 І мы збіраемся вярнуцца двайны, які, мы спадзяемся, 502 00:25:25,430 --> 00:25:31,270 як сярэдняе гэтага масіва. 503 00:25:31,270 --> 00:25:34,570 А для таго, каб зрабіць гэта, для таго, на самай справе вылічыць гэта сярэдняе, 504 00:25:34,570 --> 00:25:38,651 мы будзем прымаць суму і мы, Вядома падсумаваць ўсе аб'екты 505 00:25:38,651 --> 00:25:39,400 у гэтым масіве. 506 00:25:39,400 --> 00:25:41,480 >> Звярніце ўвагу, што ёсць новы стыль для цыклу тут. 507 00:25:41,480 --> 00:25:45,450 Мы не павінны быць відавочнымі аб перабору кожнага элемента, 508 00:25:45,450 --> 00:25:48,280 але мы можам замест сказаць класа і заліковую кніжку, сэнс 509 00:25:48,280 --> 00:25:50,930 што для кожнага элемент, які мы маем у гэтым, 510 00:25:50,930 --> 00:25:53,482 прадугледзець, што пункт у гэтым пераменная з імем класа. 511 00:25:53,482 --> 00:25:54,940 І я хачу зрабіць што-то з ім. 512 00:25:54,940 --> 00:26:00,350 Так што я збіраюся падвесці ўсе гэтыя дадзеныя а на самай справе вярнуцца двайную дзяленне. 513 00:26:00,350 --> 00:26:04,436 >> Зараз звернеце ўвагу зноў тут ёсць Канцэпцыя цэлалікавага дзялення ў Свіфт. 514 00:26:04,436 --> 00:26:06,810 Калі вы хочаце падвоіць падзел таму што вы хочаце знакаў пасля коскі, 515 00:26:06,810 --> 00:26:09,460 то вы павінны быць яснымі, не толькі аб адным баку, 516 00:26:09,460 --> 00:26:14,030 таму што ён не збіраецца, каб дазволіць вам прымусіць дадзеныя па абодва бакі ад гэтага, 517 00:26:14,030 --> 00:26:17,030 ў вас ёсць на самой справе, вядома абодва бакі ў парным разрадзе 518 00:26:17,030 --> 00:26:19,440 так што вы вельмі Відавочнае аб пераканаўшыся, 519 00:26:19,440 --> 00:26:23,370 што вы робіце двайны дзяленне. 520 00:26:23,370 --> 00:26:26,150 >> Давайце рухацца далей. 521 00:26:26,150 --> 00:26:31,150 Так што, калі я сапраўды хачу, каб accept-- Такім чынам, у гэтым канкрэтным прыкладзе, 522 00:26:31,150 --> 00:26:34,260 гэта па-ранейшаму каманда лінія дадатак. 523 00:26:34,260 --> 00:26:37,920 І мы пачынаем бачыць некаторыя з абмежаванні малады мовы 524 00:26:37,920 --> 00:26:41,850 у тым, што хоць мы можам доступ да аргументы з дапамогай 525 00:26:41,850 --> 00:26:44,940 гэта process.arguments, гэта да гэтага часу не абавязкова чыстым 526 00:26:44,940 --> 00:26:46,200 рэч, якую мы калі-небудзь бачылі. 527 00:26:46,200 --> 00:26:49,142 Але ў асноўным я заклікаю вас да выгляду Зірніце на гэты код 528 00:26:49,142 --> 00:26:51,100 і паспрабаваць высветліць, што менавіта адбываецца. 529 00:26:51,100 --> 00:26:55,030 >> Па сутнасці тое, што адбываецца ў тым, што мы бярэм спіс аргументаў 530 00:26:55,030 --> 00:26:57,610 і былі прымусіць іх у цэлыя лікі, а затым мы 531 00:26:57,610 --> 00:27:03,620 збіраецца выкарыстоўваць гэта ў якасці шляху для друку з ў сярэднім ўсе нашы класы. 532 00:27:03,620 --> 00:27:06,150 533 00:27:06,150 --> 00:27:07,350 Рухацца далей. 534 00:27:07,350 --> 00:27:11,190 Зараз ёсць яшчэ адзін тып data-- яшчэ тып дадзеных, а не масівы 535 00:27:11,190 --> 00:27:14,940 званыя слоўнікі, якія вельмі падобна на хеши або хэш-карты 536 00:27:14,940 --> 00:27:18,560 і падобныя да таксама Асацыятыўныя масівы ў PHP. 537 00:27:18,560 --> 00:27:20,770 Такім чынам, яны маюць уяўленне ключоў і значэнняў. 538 00:27:20,770 --> 00:27:23,780 >> І яны вызначаюцца таксама з Гэтая плошча абазначэння кранштэйн, 539 00:27:23,780 --> 00:27:26,750 але розніца ў тым, што слоўнікі маюць 540 00:27:26,750 --> 00:27:29,370 ўнутры квадратных дужак, двукроп'я. 541 00:27:29,370 --> 00:27:33,850 І Двукроп'е падзяляе дадзеныя тып, які з'яўляецца ключавым і значэнне. 542 00:27:33,850 --> 00:27:38,540 Такім чынам, у дадзеным выпадку, я збіраюся стварыць Слоўнікі прыняць некаторыя ацэнкі. 543 00:27:38,540 --> 00:27:44,200 І гэта будзе тып радкі: INT, 544 00:27:44,200 --> 00:27:46,940 Гэта азначае, што ўсе ключы збіраюцца быць радкамі, 545 00:27:46,940 --> 00:27:53,080 і ўсе значэння тых ключы збіраюцца быць цэлымі лікамі. 546 00:27:53,080 --> 00:27:55,780 >> Што гэта азначае, што я магу затым спасылацца на канкрэтныя дадзеныя 547 00:27:55,780 --> 00:28:00,490 што я хачу выкарыстоўваць гэтыя ключы, а чым пры выкарыстанні лічбавых паказчыкаў, як I 548 00:28:00,490 --> 00:28:04,350 б для стандартнага масіва. 549 00:28:04,350 --> 00:28:06,470 Зараз давайце разбярэмся, ёсць адна важная рэч, 550 00:28:06,470 --> 00:28:10,790 што я таксама хачу згадаць аб Гэты канкрэтны паслядоўнасць кода. 551 00:28:10,790 --> 00:28:12,910 І гэта тое, што ёсць Яшчэ адзін тып дадзеных, 552 00:28:12,910 --> 00:28:15,580 ці, хутчэй, там гэта Ідэя дадзеных, што з'яўляецца 553 00:28:15,580 --> 00:28:18,340 змяшчаецца ў Swift называецца АБСТАЛЯВАННЯ. 554 00:28:18,340 --> 00:28:21,270 >> І тое, што опцыямі азначае, што ён прызнае той факт, 555 00:28:21,270 --> 00:28:27,500 што часам вы не збіраецеся атрымаць дадзеныя, якія вы на самой справе чакаць. 556 00:28:27,500 --> 00:28:31,400 І так, што я маю на ўвазе, што is-- давайце зірніце на гэтай паслядоўнасці кода 557 00:28:31,400 --> 00:28:38,910 які паслядоўна перабірае на сябе ўсе Аргументы, якія былі перададзеныя гэтаму коду 558 00:28:38,910 --> 00:28:43,460 і спрабуе пераўтварыць іх, спрабуе падзяліць на мноства радкоў, 559 00:28:43,460 --> 00:28:47,310 таму што ён прымае вельмі Асаблівы тып аргументу. 560 00:28:47,310 --> 00:28:51,530 І тады ён будзе спрабаваць прымусіць радкі, якія ўяўляюць нумары 561 00:28:51,530 --> 00:28:55,460 у цэлых лічбах, якія з'яўляюцца гатунку, што я магу затым вылічыць. 562 00:28:55,460 --> 00:28:58,230 >> Таму ў асноўным я збіраюся выкарыстаць гэты раскол функцыю, якая 563 00:28:58,230 --> 00:29:00,080 існуе ў Swift стандартная бібліятэка. 564 00:29:00,080 --> 00:29:03,720 Я збіраюся прайсці ў яго радок, што я хачу, каб падзяліць. 565 00:29:03,720 --> 00:29:06,980 А потым, у выкарыстанні гэтага Сартаваць фанкі сінтаксісу, які 566 00:29:06,980 --> 00:29:09,670 Я не ведаю, ці будзем мы дабрацца, але можа быць, мы 567 00:29:09,670 --> 00:29:14,320 будзе на самой справе вызначыць дакладнае сімвал, які мы хочам падзяліць на. 568 00:29:14,320 --> 00:29:16,030 Такім чынам, што ж гэта на самай справе выглядае? 569 00:29:16,030 --> 00:29:18,740 Давайце зірнем на на самай справе працуе гэты код. 570 00:29:18,740 --> 00:29:22,000 >> Так, напрыклад, скажам, у мяне ёсць Тэст і я атрымаў 50 на гэтым. 571 00:29:22,000 --> 00:29:23,960 І ў мяне ёсць PSETs і Я атрымаў сто па гэтым пытанні. 572 00:29:23,960 --> 00:29:29,180 І я got-- ёсць яшчэ адзін Тэст і я атрымаў 40 на гэтым. 573 00:29:29,180 --> 00:29:33,520 Я ўдарыў Enter, і ў канчатковым выніку тое, што адбудзецца гэта тое, што ён робіць 574 00:29:33,520 --> 00:29:37,730 прымае гэтыя параметры, расшчапленне радкі ў гэтых двукроп'я, 575 00:29:37,730 --> 00:29:41,390 прызнаючы, што ёсць два элемента ў кожным з, 576 00:29:41,390 --> 00:29:43,700 і гэта па сутнасці адсочваць кожнага з іх. 577 00:29:43,700 --> 00:29:49,226 >> Так што я ў маім слоўніку віктарыну, чыя Значэнне, прадстаўленае лікам 50, 578 00:29:49,226 --> 00:29:54,290 У мяне ёсць PSET, што мае значэнне 100, і віктарыны, які мае значэнне 40. 579 00:29:54,290 --> 00:29:57,400 Пазней у кодзе I на самай справе ў сярэднім ўсе тыя значэння 580 00:29:57,400 --> 00:30:01,160 і пералічыць усе ключы што асаблівая слоўнік. 581 00:30:01,160 --> 00:30:03,217 Але гэта важна так што вы можаце заўважыць, 582 00:30:03,217 --> 00:30:06,050 што адбываецца, гэта тое, што мы хачу зрабіць, гэта прыняць гэты радок 583 00:30:06,050 --> 00:30:11,450 і падзяліць яго на гэтага персанажа, якія мы можам зрабіць зноў і гэты раскол, 584 00:30:11,450 --> 00:30:15,690 Функцыя выкарыстанні такога тыпу Цікава, сінтаксіс, які існуе тут. 585 00:30:15,690 --> 00:30:17,880 >> Проста зараз выказаць здагадку, што гэта нармальна. 586 00:30:17,880 --> 00:30:19,980 Мы будзем глядзець больш на гэта за ўсё на некаторы час. 587 00:30:19,980 --> 00:30:23,230 Але зараз ёсць цікавае аспект, які мы на самай справе 588 00:30:23,230 --> 00:30:27,250 хачу паспрабаваць пераўтварыць гэта радкі ў лік. 589 00:30:27,250 --> 00:30:29,720 Але ў іншых мовах што можа здарыцца, 590 00:30:29,720 --> 00:30:33,440 што мы, верагодна, паспрабуе гэта зрабіць, і альбо атрымаць назад 591 00:30:33,440 --> 00:30:36,185 нейкая варта значэнне як адмоўны 592 00:30:36,185 --> 00:30:39,420 ці, можа быць нулявым ці нешта падобнае. 593 00:30:39,420 --> 00:30:41,070 Ці, можа быць, было б проста выклікаў памылку. 594 00:30:41,070 --> 00:30:42,820 І мы павінны былі б затым злавіць гэтую памылку 595 00:30:42,820 --> 00:30:44,820 а затым паспрабаваць зрабіць тое, палягае на тым, 596 00:30:44,820 --> 00:30:48,280 што гэтага пераўтварэнні у цэлы лік не ўдалося. 597 00:30:48,280 --> 00:30:50,460 Вось дзе гэтая ідэя з дадатковых опцый ўваходзіць. 598 00:30:50,460 --> 00:30:56,120 Вы на самой справе можна стварыць тып дадзеных, гэта знак пытання INT, напрыклад. 599 00:30:56,120 --> 00:30:59,140 600 00:30:59,140 --> 00:31:01,910 Гэта азначае, што гэтага ж колькасці гэта, па сутнасці, дадаткова. 601 00:31:01,910 --> 00:31:05,980 А што будзе ў тым, што ён можа ўтрымліваць цэлы лік, або гэта не можа. 602 00:31:05,980 --> 00:31:10,650 Гэта можа, у рэчаіснасці, будзе гэты іншы Ідэя, цалкам называецца Нилл. 603 00:31:10,650 --> 00:31:14,900 У якім гэта азначае, што існуе няма значэння наогул у гэтым. 604 00:31:14,900 --> 00:31:16,810 Гэта нават не нуль, там проста ніякага значэння. 605 00:31:16,810 --> 00:31:18,790 Там абсалютна ніякага значэння прадстаўлены. 606 00:31:18,790 --> 00:31:21,650 >> І гэта тое, што гэтая лінія 71 робіць. 607 00:31:21,650 --> 00:31:25,990 З'яўляецца тое, што кажу, што я хачу паспрабаваць ўсталяваць значэнне, 608 00:31:25,990 --> 00:31:31,790 пераменная з імем класа, роўна пераўтварэнне гэтага радка ў міжнар. 609 00:31:31,790 --> 00:31:34,010 Так што я ўзяў гэты радок, гэта першыя кампаненты, 610 00:31:34,010 --> 00:31:37,680 ці, хутчэй, другі Кампаненты, так як гэта 611 00:31:37,680 --> 00:31:40,770 роўная нуля індэксуюцца, гэта Радок, я падзяліць. 612 00:31:40,770 --> 00:31:42,930 І я хачу, каб пераўтварыць што на цэлы лік. 613 00:31:42,930 --> 00:31:46,730 Але гэта не заўсёды можа перайсці нармальна, таму што ўявіць сабе 614 00:31:46,730 --> 00:31:50,710 Што б адбылося, калі б, замест таго, тыпу Колькасць, я друкую вядома, як ASDF. 615 00:31:50,710 --> 00:31:51,534 >> Гэта будзе правал. 616 00:31:51,534 --> 00:31:54,200 Гэта на самай справе не будзе магчымасць канвертаваць, што ў цэлы лік 617 00:31:54,200 --> 00:31:55,510 як я хацеў бы чакаць. 618 00:31:55,510 --> 00:31:58,660 Такім чынам, замест стартуе нейкі памылкі, 619 00:31:58,660 --> 00:32:01,210 у нас ёсць гэтая ідэя неабавязкова. 620 00:32:01,210 --> 00:32:04,240 А гэта значыць, што з дапамогай гэта знак пытання я магу сказаць 621 00:32:04,240 --> 00:32:09,100 ОК, гэта магчыма, што я магу ўзяць гэта, ператварылі яго ў INT, 622 00:32:09,100 --> 00:32:12,630 і паклаў яго ў зменнай, які таксама будзе Int. 623 00:32:12,630 --> 00:32:15,420 Калі гэта так, то гэта азначае, што гэта было паспяховым 624 00:32:15,420 --> 00:32:18,720 і гэта першая частка Блок можа працягвацца. 625 00:32:18,720 --> 00:32:21,040 >> У адваротным выпадку, яна не змагла. 626 00:32:21,040 --> 00:32:25,840 Там няма значэння ў grade-- або а няма значэнне ў існуючых, 627 00:32:25,840 --> 00:32:30,220 і я на самой справе ёсць, каб паспрабаваць справіцца з гэтай памылкі. 628 00:32:30,220 --> 00:32:33,340 Вы будзеце бачыць гэта пытальнік ўвесь час 629 00:32:33,340 --> 00:32:35,990 у Свіфта і ў прыкладзе кода для Swift. 630 00:32:35,990 --> 00:32:40,980 І на самай справе Нилл аператар, такога роду пытальнік, частка опцыямі, 631 00:32:40,980 --> 00:32:45,057 будзе, верагодна, адзін з больш цяжкіх рэчаў, 632 00:32:45,057 --> 00:32:47,640 да выгляду абгарнуць вакол галавы як вы на самой справе з ім працаваць. 633 00:32:47,640 --> 00:32:48,490 >> Гэта можа мець сэнс цяпер. 634 00:32:48,490 --> 00:32:50,760 І на самай справе, калі я быў пісаць прыклад кода для гэтага, 635 00:32:50,760 --> 00:32:52,780 Вядома, я разумеў, што адбываецца, 636 00:32:52,780 --> 00:32:55,570 але ўсё ж такі злавіў мяне сюрпрыз кожны так часта 637 00:32:55,570 --> 00:32:58,370 калі я знайду, што некаторыя дадзеныя на самай справе 638 00:32:58,370 --> 00:33:04,024 нуль версія, апцыянальна версія дадзеныя, якія я чакаў. 639 00:33:04,024 --> 00:33:06,190 Так што проста разумець, што калі вы ёсць дадатковы варыянт 640 00:33:06,190 --> 00:33:09,360 Вы павінны распакаваць, што Дадзеныя з гэтага акна. 641 00:33:09,360 --> 00:33:15,870 >> Так што гэта накшталт як я-- Уявіце, што вы ёсць скрынка, і ён ўтрымлівае нешта. 642 00:33:15,870 --> 00:33:18,490 І тое, што вам трэба зрабіць, гэта, каб задаць пытанне, 643 00:33:18,490 --> 00:33:22,800 гэта магчыма, што гэтая скрынка на самай справе змяшчае дадзеныя, якія я шукаю? 644 00:33:22,800 --> 00:33:28,180 Калі гэта так, то цягнуць, што з дадзеных і пакласці яго ў гэтую зменную існуючага. 645 00:33:28,180 --> 00:33:32,080 Калі няма, то я проста павінны ігнараваць змесціва гэтай рамкі 646 00:33:32,080 --> 00:33:34,310 наогул таму, што ён літаральна не ўтрымоўвае нічога. 647 00:33:34,310 --> 00:33:36,880 648 00:33:36,880 --> 00:33:40,400 >> Ёсць пытанні па гэтай нагоды? 649 00:33:40,400 --> 00:33:44,430 Добра, давайце адыдзем ад гэтага накшталт аснове каманднага радка рэч 650 00:33:44,430 --> 00:33:47,610 і пачаць глядзець на некаторыя тэхналогіі 651 00:33:47,610 --> 00:33:53,060 што Xcode дае нам ў выглядзе дзіцячых пляцовак. 652 00:33:53,060 --> 00:33:56,669 Так што шмат Магчымасць тут з Swift. 653 00:33:56,669 --> 00:33:59,210 І калі вы адкрыеце Xcode і яго пытаецца вас, што вы хочаце зрабіць, 654 00:33:59,210 --> 00:34:01,340 Вы можаце адкрыць пляцоўка і проста пагуляць 655 00:34:01,340 --> 00:34:06,200 з вялікай колькасцю розных структур і аспекты мовы 656 00:34:06,200 --> 00:34:11,800 перш чым нават пачаць дакранаючыся IOS SDK або Mac SDK. 657 00:34:11,800 --> 00:34:15,670 >> Так што гэта так, давайце скажам, што я have-- У мяне ёсць адносна надуманы прыклад 658 00:34:15,670 --> 00:34:18,460 тут, але мядзведзь са мной, як мы накшталт ад таго, працуюць праз гэты прыклад. 659 00:34:18,460 --> 00:34:22,639 Давайце выкажам здагадку, што мы павінны зрабіць шмат экспанент з фіксаванай коштам, 660 00:34:22,639 --> 00:34:26,397 як мы ведаем, што мы збіраемся трэба зрабіць шмат квадратных паўнамоцтваў, напрыклад. 661 00:34:26,397 --> 00:34:28,980 Такім чынам, мы збіраемся, каб заняць некаторы значэнне х, мы збіраемся збудуем ў квадрат 662 00:34:28,980 --> 00:34:30,540 мы збіраемся заняць некаторы значэнне у, і мы збіраемся ўзвесці ў квадрат яго. 663 00:34:30,540 --> 00:34:31,780 Гэтак далей, і гэтак далей. 664 00:34:31,780 --> 00:34:35,549 >> Цяпер мы можам на самай справе проста стварыць Магутнасць 2 функцыі для гэтага, ці не так? 665 00:34:35,549 --> 00:34:37,090 Такім чынам, мы б стварыць ўладу 2 функцыі. 666 00:34:37,090 --> 00:34:38,600 Мы прымаем у два разы. 667 00:34:38,600 --> 00:34:41,489 Мы output-- або мы будзем вярнуць двайную тып. 668 00:34:41,489 --> 00:34:46,159 Мы возьмем гэты вынік а затым у два разы 669 00:34:46,159 --> 00:34:52,040 тое, што мы на самай справе ўзяць вынікі, якія быў ініцыялізаваны да значэння аднаго з іх, 670 00:34:52,040 --> 00:34:53,090 і памножыць яго на х. 671 00:34:53,090 --> 00:34:56,540 Такім чынам, у сутнасці, мы маем х раз х тут. 672 00:34:56,540 --> 00:35:01,860 >> І так, то я магу тое, як мы маглі б чакаць, вазьмі гэта, запусціце магутнасцю 2, 673 00:35:01,860 --> 00:35:03,680 забяспечыць яму некаторыя дадзеныя, я люблю 2.0. 674 00:35:03,680 --> 00:35:05,756 І мы атрымліваем, каб убачыць вынікі тут 4,0. 675 00:35:05,756 --> 00:35:09,200 Запусціце сілу 2 на 3,2 і мы атрымаць, каб убачыць наш вынік 10,24. 676 00:35:09,200 --> 00:35:10,840 Да гэтага часу так добра, ці не так? 677 00:35:10,840 --> 00:35:12,070 Цяпер мы думаем, ну і добра. 678 00:35:12,070 --> 00:35:15,530 Цяпер я на самой справе трэба зрабіць шмат паўнамоцтваў 3. 679 00:35:15,530 --> 00:35:19,180 Так што я буду капіяваць ўставіць ўвесь гэты код, змяніць імя функцыі з 680 00:35:19,180 --> 00:35:24,440 Магутнасць 2 да ўлады 3, і ўсё будзе такім жа, за выключэннем гэтага значэння 681 00:35:24,440 --> 00:35:26,740 тут, гэта дыяпазон ад 1 ... 2. 682 00:35:26,740 --> 00:35:29,590 >> Такім чынам, замест таго, каб паўтараць Гэты цыкл у два разы, 683 00:35:29,590 --> 00:35:31,880 Я хачу паўтарыць гэты цыкл тры разы. 684 00:35:31,880 --> 00:35:36,330 Так што я проста змяніць гэта значэнне ад 1 3-- ці, хутчэй, ад 2 да 3. 685 00:35:36,330 --> 00:35:39,230 Такім чынам, яшчэ раз, і той жа код, гэта адзінае змяненне. 686 00:35:39,230 --> 00:35:40,080 Зараз гэта таксама працуе. 687 00:35:40,080 --> 00:35:43,860 Магутнасць 3 прыводзіцца ў некаторым значэнні 2. 688 00:35:43,860 --> 00:35:44,420 Мы атрымліваем 8. 689 00:35:44,420 --> 00:35:45,370 Так 2 кубе. 690 00:35:45,370 --> 00:35:48,060 І 3,2 кубе складае 32,768. 691 00:35:48,060 --> 00:35:50,597 І да гэтага часу так добра, ці не так? 692 00:35:50,597 --> 00:35:52,930 Але спадзяюся, гэта крыху трохі чырвонага сцяга для вас 693 00:35:52,930 --> 00:35:55,530 у тым, што цяпер у нас ёсць некаторы дубляванне кода 694 00:35:55,530 --> 00:35:58,800 для некаторых вельмі нязначныя, за выключэннем пераход ад аднаго да іншага. 695 00:35:58,800 --> 00:36:02,170 Так ці ёсць нейкі спосаб, што мы маглі б спрасціць 696 00:36:02,170 --> 00:36:06,080 Гэтая праблема, дзе мы можам на самай справе, падчас выканання, высветліць некаторыя, 697 00:36:06,080 --> 00:36:11,320 даць нам нейкую функцыю, якая мае Менавіта сіла, што мы хочам. 698 00:36:11,320 --> 00:36:13,960 >> І ёсць гэтая ідэя замкі, якія, сапраўды, вельмі 699 00:36:13,960 --> 00:36:18,180 важна ў кантэксце Свіфта, і ў многіх іншых мовах. 700 00:36:18,180 --> 00:36:21,580 Але, напэўна, вы ўбачыце ён выкарыстаў больш, што ў Swift 701 00:36:21,580 --> 00:36:23,650 таму што яна ўбудаваная ў мове 702 00:36:23,650 --> 00:36:28,280 чым вы будзеце ў іншай таксама сучасныя мовы. 703 00:36:28,280 --> 00:36:31,140 Такім чынам, ідэя закрыцця гэта, тое, што мы 704 00:36:31,140 --> 00:36:35,430 можа мець функцыю, якая прызначаецца для быць агульная функцыя, агульны харчавання 705 00:36:35,430 --> 00:36:36,860 функцыі. 706 00:36:36,860 --> 00:36:41,010 >> І гэтая функцыя будзе прымаць гэты паказчык, што мы на самай справе 707 00:36:41,010 --> 00:36:42,990 хочаце стварыць. 708 00:36:42,990 --> 00:36:46,550 Так, напрыклад, самы першы Напрыклад, мы хацелі магутнасць 2. 709 00:36:46,550 --> 00:36:50,050 Такім чынам, мы б забяспечыць ўлада а затым у дужках 2. 710 00:36:50,050 --> 00:36:52,490 А цяпер звярніце ўвагу, што Гэта на самай справе вяртае. 711 00:36:52,490 --> 00:36:57,680 Гэта прымае ўвод праймера называецца ў, што ўяўляе сабой цэлае лік, 712 00:36:57,680 --> 00:37:03,090 і вяртае гэты вар'ят глядзіць рэч у parentheses-- дужках 713 00:37:03,090 --> 00:37:06,230 Двухмесны а затым падвойную стрэлку. 714 00:37:06,230 --> 00:37:10,270 >> Што гэта азначае, што я збіраецца вярнуцца функцыю. 715 00:37:10,270 --> 00:37:13,510 Я не вяртаўся Іншы тып дадзеных, я 716 00:37:13,510 --> 00:37:16,350 фактычна вяртае функцыю які мае гэты параметр, які 717 00:37:16,350 --> 00:37:22,680 прымае двайны якасці ўваходных дадзеных і выводзіць двойчы ў якасці вяртаецца значэння. 718 00:37:22,680 --> 00:37:29,750 І ў выніку, таму што цяпер я назваў магутнасць, пераходзячы ў некаторы значэнне для ў, 719 00:37:29,750 --> 00:37:32,280 і я ствараю гэты іншы function-- звярніце ўвагу, што ёсць 720 00:37:32,280 --> 00:37:35,980 Яшчэ адна функцыя, які ствараецца ўнутры this--, што я раблю 721 00:37:35,980 --> 00:37:37,830 , Я можа змяніць гэта значэнне, што адна 722 00:37:37,830 --> 00:37:41,010 Значэнне, якое я змяніў ад 2 да 3, цяпер я зрабіць гэта ў. 723 00:37:41,010 --> 00:37:42,500 >> І гэта захоўваецца. 724 00:37:42,500 --> 00:37:48,530 Такім чынам, кожны раз, калі я называю ўлада з, па сутнасці, што адбываецца 725 00:37:48,530 --> 00:37:51,030 з'яўляецца тое, што я атрымліваю вярнуўся функцыю. 726 00:37:51,030 --> 00:37:54,310 Звярніце ўвагу, што тут я вызначыў Новая пераменная называецца квадратам. 727 00:37:54,310 --> 00:37:59,340 Я усталяваў яго роўным сіле, ўмове, што гэта значэнне 2 да ўлады. 728 00:37:59,340 --> 00:38:02,030 І тое, што гэта вяртаецца функцыяй. 729 00:38:02,030 --> 00:38:05,970 Так плошчы, пераменная квадрат, цяпер функцыі тыпу 730 00:38:05,970 --> 00:38:11,390 што мае this-- ой прагортку уверх трохі bit--, што мае гэтую подпіс, 731 00:38:11,390 --> 00:38:15,560 прыняць двухспальная ложак і выхад у два разы. 732 00:38:15,560 --> 00:38:17,330 >> Так што цяпер, што я зрабіў тым, што я па сутнасці 733 00:38:17,330 --> 00:38:22,890 стварылі функцыю, званую квадрат, які прымае любы значэнне і будуць улагоджвае яе. 734 00:38:22,890 --> 00:38:24,960 Мы можам бачыць, што адбываецца тут. 735 00:38:24,960 --> 00:38:29,960 Плошчу 3, напрыклад, азначае, што я збіраюся ўзяць значэнне 3 і квадрат яго. 736 00:38:29,960 --> 00:38:32,010 Так як менавіта гэта працуе? 737 00:38:32,010 --> 00:38:37,800 Калі я праходжу ўлада з 2--, калі я прайсці 2 у гэтай уладзе функцыі, 738 00:38:37,800 --> 00:38:44,430 гэтая зменная ў з'яўляецца запаўняецца гэтым значэннем 2. 739 00:38:44,430 --> 00:38:46,340 І гэта свайго роду захоўваецца ў памяці. 740 00:38:46,340 --> 00:38:49,430 Гэта накшталт як адбылася ў стан дзе-то ў кампутары, 741 00:38:49,430 --> 00:38:51,980 мы сапраўды не хвалюе, як або, дзе ў дадзены момант. 742 00:38:51,980 --> 00:38:54,692 >> Але я вярнуся гэтую функцыю называецца exponentiate. 743 00:38:54,692 --> 00:38:57,400 І зноў жа, гэта сапраўды не мае значэння што гэтая функцыя выклікаецца, 744 00:38:57,400 --> 00:39:01,730 мы сапраўды можам назваць гэта што-небудзь, што прымае двайны і вяртае двайны, 745 00:39:01,730 --> 00:39:05,640 але выкарыстоўвае гэта значэнне ў ўнутры яго. 746 00:39:05,640 --> 00:39:09,290 Такім чынам, нават калі гэта функцыя, Гэтая функцыя exponentiater гэта 747 00:39:09,290 --> 00:39:13,600 былі вернутыя назад у мой Пераменная, якая я патэлефанаваў плошчы, 748 00:39:13,600 --> 00:39:17,980 ён змяшчаецца ў ім гэта паняцце аб тым, што ў быў. 749 00:39:17,980 --> 00:39:19,070 І ён памятае гэта. 750 00:39:19,070 --> 00:39:24,810 >> Такім чынам, кожны раз, калі я выкліку гэтай функцыі, што цяпер называецца квадрат, ён выкарыстоўвае гэта. 751 00:39:24,810 --> 00:39:27,990 Але гэта таксама азначае, што я магу стварыць яшчэ адну зменную з дапамогай 752 00:39:27,990 --> 00:39:29,120 адрозніваецца магутнасць. 753 00:39:29,120 --> 00:39:33,240 Так што я магу стварыць зменную куба для Напрыклад, забяспечыць да яго сілу 3. 754 00:39:33,240 --> 00:39:37,230 Цяпер куб на самай справе ўзяць некаторыя Значэнне і куб, і вярнуць яго. 755 00:39:37,230 --> 00:39:39,570 Такім чынам, мы бачым, што я атрымліваю Значэнне 8 з гэтага. 756 00:39:39,570 --> 00:39:42,720 >> Але гэта значэнне ў не мае змянілася, таму што яны 757 00:39:42,720 --> 00:39:44,980 адбудзецца ў свайго роду незалежных зменных. 758 00:39:44,980 --> 00:39:47,480 Яны з'яўляюцца свайго роду праводзіцца ў незалежныя прасторы ў памяці. 759 00:39:47,480 --> 00:39:51,290 Так куб заўсёды будзе мець х да ўлады 3. 760 00:39:51,290 --> 00:39:55,380 І квадрат заўсёды будзе мець х да ўлады 2, які 761 00:39:55,380 --> 00:39:58,470 азначае, што плошча будзе заўсёды кв-нумары, як я думаю. 762 00:39:58,470 --> 00:40:01,794 І куба заўсёды будзе ў кубе нумары, як я чакаю. 763 00:40:01,794 --> 00:40:04,960 Гэта таксама азначае, што часам вы можаце атрымаць нейкую фанкі гледзячы сінтаксісу 764 00:40:04,960 --> 00:40:09,030 дзе ў вас ёсць ўлада, па меншай вельмі Унізе экрана тут, магутнасць 5. 765 00:40:09,030 --> 00:40:11,410 І вы праходзьце ў выніку. 766 00:40:11,410 --> 00:40:14,670 Вы называеце гэтую функцыю, гэта былі вернутыя з нумарам 4. 767 00:40:14,670 --> 00:40:17,440 І так, што па сутнасці гэта ад 4 да пятай ступені, 768 00:40:17,440 --> 00:40:20,830 мы можам бачыць вынікі там. 769 00:40:20,830 --> 00:40:23,690 Са мной да гэтага часу? 770 00:40:23,690 --> 00:40:26,620 >> Так гэтая ідэя называецца замыканне, таму што мы ў асноўным робім 771 00:40:26,620 --> 00:40:30,610 гэта мы інкапсуляцыі некаторыя дадзеныя into-- роду 772 00:40:30,610 --> 00:40:33,050 агароджваюць гэтыя дадзеныя у функцыі, і мы 773 00:40:33,050 --> 00:40:36,240 магчымасць паўторнага выкарыстання гэтай функцыі. 774 00:40:36,240 --> 00:40:41,480 Цяпер гэты сінтаксіс, хоць можа на самай справе спрасціць вялікая колькасць. 775 00:40:41,480 --> 00:40:45,005 І ёсць шмат магчымасці у Свіфта для гэтага спрашчэння. 776 00:40:45,005 --> 00:40:47,780 І вось што-то наступныя рэальна зірнуць на. 777 00:40:47,780 --> 00:40:51,400 Такім чынам, у 7b, напрыклад, мы прыняць гэта сапраўды такі жа код. 778 00:40:51,400 --> 00:40:54,360 >> Але зараз замест таго, на самай справе вызначыць функцыю 779 00:40:54,360 --> 00:40:57,910 Унутры гэтай улады працаваць і даць яму імя, 780 00:40:57,910 --> 00:41:00,150 а затым вярнуць імя гэтай функцыі, якая 781 00:41:00,150 --> 00:41:02,357 Затым выкарыстоўваецца як частка гэта замыканне, а мы 782 00:41:02,357 --> 00:41:03,440 проста хачу, каб спрасціць яго. 783 00:41:03,440 --> 00:41:06,580 Нам не трэба гэтую функцыю, каб быць названым. 784 00:41:06,580 --> 00:41:09,760 Так што гэта паняцце ананімная функцыя, дзе мы можам затым 785 00:41:09,760 --> 00:41:15,180 прымае ў якасці ўваходных дадзеных, у дужках тут, пераменная х, які тыпу Double. 786 00:41:15,180 --> 00:41:17,250 >> Мы збіраемся вярнуцца тыпу двайнік. 787 00:41:17,250 --> 00:41:19,830 А потым па ключавых словах, п, Пачатак гэтай функцыі. 788 00:41:19,830 --> 00:41:22,180 Так заўважыць, што ўсё гэта знаходзіцца ў фігурных дужках 789 00:41:22,180 --> 00:41:25,310 і мы вызначаем працаваць тут ананімна. 790 00:41:25,310 --> 00:41:29,910 Проста просты спосаб вызначэнне тую ж самую рэч. 791 00:41:29,910 --> 00:41:30,810 ОК? 792 00:41:30,810 --> 00:41:36,740 Але трымайся, Swift на самай справе дазваляе пайсці далей і спрасціць яшчэ больш, 793 00:41:36,740 --> 00:41:40,180 таму што сапраўды мы не ўсё роўна, што гэты параметр 794 00:41:40,180 --> 00:41:41,700 назваў ні канкрэтную рэч. 795 00:41:41,700 --> 00:41:48,090 Гэта сапраўды можа быць названа інакш, і мы ўсё яшчэ можам выкарыстоўваць гэты першы параметр. 796 00:41:48,090 --> 00:41:53,800 >> Такім чынам, на самай справе ёсць гэты асаблівы Тып дадзеных у ананімных функцый, 797 00:41:53,800 --> 00:41:57,710 ёсць гэта асаблівая назву зменныя ў ананімных функцый 798 00:41:57,710 --> 00:42:00,280 якія пачынаюцца з знак даляра і ўяўляюць сабой 799 00:42:00,280 --> 00:42:03,785 лік параметраў, нуль індэксавацца гэтай функцыі. 800 00:42:03,785 --> 00:42:05,410 Так што некалькі рэчаў адбываецца. 801 00:42:05,410 --> 00:42:08,550 Тут я збіраюся вярнуцца, і тады фігурная дужка прадстаўлення функцыі, 802 00:42:08,550 --> 00:42:09,050 ці не так? 803 00:42:09,050 --> 00:42:13,920 >> Заўважце, што я не вызначылі Тыпы параметраў або які вяртаецца тып. 804 00:42:13,920 --> 00:42:16,460 Гэта на самай справе можна зрабіць выснову, з-за подпісы 805 00:42:16,460 --> 00:42:18,360 гэтай зыходнай функцыі. 806 00:42:18,360 --> 00:42:20,500 Такім чынам, мы можам ліквідаваць што ў якасці магчымасці. 807 00:42:20,500 --> 00:42:25,120 Але таксама я магу выкарыстоўваць знак даляра нуля да прадстаўляць гэты першы параметр, гэта 808 00:42:25,120 --> 00:42:28,200 перайшла ў гэтай ананімнай функцыі. 809 00:42:28,200 --> 00:42:31,630 Так што спрашчае яго яшчэ больш. 810 00:42:31,630 --> 00:42:32,750 ОК? 811 00:42:32,750 --> 00:42:33,820 Усё ідзе нармальна? 812 00:42:33,820 --> 00:42:36,980 >> Цяпер менавіта гэта type-- зрабіць вас памятаю гэты даляра нуля знак 813 00:42:36,980 --> 00:42:40,130 што мы бачылі ў гэтым фігурнай дужкай што мы толькі што бачылі некаторы час 814 00:42:40,130 --> 00:42:43,870 таму ў гэтым Swift шэсць напрыклад? 815 00:42:43,870 --> 00:42:46,560 Гэта было прама тут. 816 00:42:46,560 --> 00:42:48,430 Звярніце ўвагу, што менавіта тое, што мы глядзім, 817 00:42:48,430 --> 00:42:51,580 з'яўляецца тое, што мы прайшлі у гэтым расшчапленне функцыі 818 00:42:51,580 --> 00:42:55,140 ананімная функцыя, што правярае першы параметр 819 00:42:55,140 --> 00:42:57,830 каб убачыць, калі ён роўны сімвал двукроп'е. 820 00:42:57,830 --> 00:42:59,830 І гэта менавіта тое, што адбываецца, з'яўляецца тое, што ўсе 821 00:42:59,830 --> 00:43:02,320 мы doing-- вяртанне Ключавое слова маецца на ўвазе 822 00:43:02,320 --> 00:43:05,800 у гэтым case-- мы вяртаемся Гэта значэнне, пры якім мы параўноўваем 823 00:43:05,800 --> 00:43:10,020 Першы параметр супраць Гэты сімвал двукроп'е. 824 00:43:10,020 --> 00:43:11,730 І так, што-то растлумачвае гэта. 825 00:43:11,730 --> 00:43:17,210 І вы ўбачыце гэтую канструкцыю Шмат у Swift сінтаксісу, так што майце гэта 826 00:43:17,210 --> 00:43:19,400 на ўвазе, калі вы зірнуць на гэта. 827 00:43:19,400 --> 00:43:21,970 Цяпер мы можам выйсці рэйкі трохі 828 00:43:21,970 --> 00:43:25,460 і сапраўды працуе фантазія, якая паказвае нават некаторыя больш ўлады Свіфта. 829 00:43:25,460 --> 00:43:27,950 Вы нават можаце ўбачыць некаторыя з іх у тыпавых кодаў. 830 00:43:27,950 --> 00:43:29,790 Дык вось чаму я збіраюся паказаць гэта вам. 831 00:43:29,790 --> 00:43:37,260 >> У асноўным тое, што мы можам зрабіць, гэта, па-першае за ўсё, гэта быў свайго роду непатрэбным для мяне 832 00:43:37,260 --> 00:43:41,710 ажыццявіць усе, што ўлады Код таму што калі вы імпартаваць Дарвін 833 00:43:41,710 --> 00:43:46,490 бібліятэка, гэта на самай справе ўключае ў сябе функцыю называецца ваеннапалонных, што робіць гэта для вас. 834 00:43:46,490 --> 00:43:50,570 Такім чынам, мы можам спрасціць яго яшчэ больш і ёсць нашу функцыю харчавання цяпер проста 835 00:43:50,570 --> 00:43:54,890 быць выдатны адзін лайнер, дзе мы толькі што вярнуць гэтую ананімную функцыю, якая 836 00:43:54,890 --> 00:44:00,780 прымае знак даляра 0 ЯК ЯЕ Падстава і ў як паказчык яго. 837 00:44:00,780 --> 00:44:02,582 >> Але мы можам атрымаць сапраўды, сапраўды фантазіі, калі мы 838 00:44:02,582 --> 00:44:04,790 зразумець, што Свіфт шмат энергіі пад капотам. 839 00:44:04,790 --> 00:44:07,010 Многія з аператараў, мы займаемся, 840 00:44:07,010 --> 00:44:11,270 Знакі плюс і дзяленне сімвалы і усе гэтыя рэчы, якія вы звычайна 841 00:44:11,270 --> 00:44:15,620 працаваць з з тыпамі дадзеных на мове праграмавання, 842 00:44:15,620 --> 00:44:17,600 на самай справе які пашыраецца ў Свіфта. 843 00:44:17,600 --> 00:44:21,460 Так што гэта азначае, што ў тым, што мы можна вызначыць нашы ўласныя аператары. 844 00:44:21,460 --> 00:44:26,020 >> Так што цяпер я стаміўся друкаваць ва ўсім гэтым POW, а затым дужкі, а затым 845 00:44:26,020 --> 00:44:26,520 база. 846 00:44:26,520 --> 00:44:27,520 Я не хачу, каб зрабіць гэта. 847 00:44:27,520 --> 00:44:30,190 Я сапраўды хачу, каб мець Аператар, які дазваляе мне зрабіць гэта. 848 00:44:30,190 --> 00:44:34,510 Так што я магу сказаць, Свіфт, што я хачу стварыць аператара, зорку 849 00:44:34,510 --> 00:44:39,472 star-- я, дарэчы, не можа выкарыстоўваць карат таму карат аператар, 850 00:44:39,472 --> 00:44:40,680 робіць нешта зусім іншае. 851 00:44:40,680 --> 00:44:42,720 Так што я не хачу, каб адсартаваць з сутыкнення з гэтым. 852 00:44:42,720 --> 00:44:45,750 І так, што вы бачыце ў розных моў, у тым ліку Python, 853 00:44:45,750 --> 00:44:48,810 гэта як зорка зорка аператара прадстаўляць паказчыкі. 854 00:44:48,810 --> 00:44:50,730 >> Дык вось адзіная прычына, чаму я зрабіў гэта. 855 00:44:50,730 --> 00:44:53,067 І гэта будзе аператар тыпу инфикс. 856 00:44:53,067 --> 00:44:54,900 І я павінен даць да яго некаторую інфармацыю 857 00:44:54,900 --> 00:44:58,386 аб прыярытэце ў гэтым Аператар так што левоассоциативны. 858 00:44:58,386 --> 00:45:00,260 Гэта як адносна высокі прыярытэт у параўнанні 859 00:45:00,260 --> 00:45:02,432 да сумаванне або множанне. 860 00:45:02,432 --> 00:45:04,140 Гэта больш высокі прыярытэт, чым усе з іх. 861 00:45:04,140 --> 00:45:04,931 Гэтак далей, і гэтак далей. 862 00:45:04,931 --> 00:45:07,410 І тады я вызначаю функцыя, якая на самой справе 863 00:45:07,410 --> 00:45:10,070 дыктуе, што гэты аператар робіць. 864 00:45:10,070 --> 00:45:14,150 Так калі выказаць здагадку, што ў мяне ёсць левы бок і правая бок, 865 00:45:14,150 --> 00:45:17,330 які быў бы, магчыма, лепш імя зменнай для гэтага. 866 00:45:17,330 --> 00:45:20,690 Левы бок і правая бок. 867 00:45:20,690 --> 00:45:26,740 Затым я магу прыняць гэта ўлада Левая частка з правага боку 868 00:45:26,740 --> 00:45:28,980 і вярнуць гэта значэнне. 869 00:45:28,980 --> 00:45:30,370 Так што цяпер гэта супер салодкія. 870 00:45:30,370 --> 00:45:33,790 Усё, што мы павінны зрабіць, гэта 2 зорка зорка 3 і гэта 2 у трэцяй ступені, 871 00:45:33,790 --> 00:45:35,290 і мы атрымліваем значэнне 8. 872 00:45:35,290 --> 00:45:40,280 2 зорка зорка 10 складае ад 2 да 10-й ступені, мы атрымліваем 1024. 873 00:45:40,280 --> 00:45:43,630 >> Так што цяпер наша ўлада функцыі, што зноў-такі розныя, 874 00:45:43,630 --> 00:45:47,030 таму што ўся ідэя гэтага было тое, што ў нас ёсць адна функцыя, якая 875 00:45:47,030 --> 00:45:50,700 заўсёды мае нейкую каштоўнасць і памнажае it-- ці, хутчэй, 876 00:45:50,700 --> 00:45:53,240 займае паказчык, такой жа магутнасці. 877 00:45:53,240 --> 00:45:54,300 Так што цяпер гэта нават прасцей. 878 00:45:54,300 --> 00:45:57,070 Так што цяпер гэта проста даляр увайдзіце 0 зоркаўтварэньня у. 879 00:45:57,070 --> 00:46:01,190 Мы нават не давядзецца выкарыстоўваць ваеннапалонных больш. 880 00:46:01,190 --> 00:46:03,020 >> Добра, хто страціў? 881 00:46:03,020 --> 00:46:03,700 Робім мы ў парадку? 882 00:46:03,700 --> 00:46:05,090 Любыя пытанні па гэтай рэчы? 883 00:46:05,090 --> 00:46:05,815 Так? 884 00:46:05,815 --> 00:46:09,500 >> АЎДЫТОРЫЯ: Калі you-- [неразборліва] фанк сіла ў двайніка. 885 00:46:09,500 --> 00:46:11,441 Такім чынам, калі вы вяртанне функцыі. 886 00:46:11,441 --> 00:46:13,190 DANIEL Armendáriz: Funk сіла ў двайніка. 887 00:46:13,190 --> 00:46:14,270 Ах да, я не ведаю, тое, што ў нумары. 888 00:46:14,270 --> 00:46:15,708 На жаль пра гэта. 889 00:46:15,708 --> 00:46:19,420 >> Зала: А чаму вы вяртання Функцыя [неразборліва] корпус. 890 00:46:19,420 --> 00:46:24,214 Хіба гэта не даляр нуля зорка зорка ў [неразборліва] 891 00:46:24,214 --> 00:46:29,710 знайсці, што аператар з гэтым вяртанне двойчы [неразборліва] у два разы? 892 00:46:29,710 --> 00:46:32,742 >> DANIEL Armendáriz: Такім чынам, давайце мне адказаць на ваша пытанне 893 00:46:32,742 --> 00:46:35,950 як я разумею гэта, і вы можаце сказаць мне, калі я не разумею ваша пытанне. 894 00:46:35,950 --> 00:46:42,850 Так што гэта канструкт, фігурная дужка Знак даляра нуля зорка зорка у, 895 00:46:42,850 --> 00:46:44,280 з'яўляецца функцыяй. 896 00:46:44,280 --> 00:46:50,080 І ён прымае параметр, які прадстаўленая гэтым знакам даляра нулявы. 897 00:46:50,080 --> 00:46:55,830 Ключавое слова вяртання маецца на ўвазе ў гэтым вельмі кароткі, ананімны сінтаксіс функцыі. 898 00:46:55,830 --> 00:46:57,870 >> Гэта азначае, што па сутнасці Аб чым гэта кажа 899 00:46:57,870 --> 00:47:01,270 з'яўляецца тое, што я вызначаю function-- і тады я буду 900 00:47:01,270 --> 00:47:05,320 проста назваць яго something-- дзе ў мяне ёсць некаторы значэнне у. 901 00:47:05,320 --> 00:47:08,300 У мяне ёсць г, што ў два разы. 902 00:47:08,300 --> 00:47:10,750 І я вяртаюся ў два разы. 903 00:47:10,750 --> 00:47:19,010 І ў мяне ёсць у гэтай вяртанні y-- прабачце, Я не павінен быў назваць гэта y-- х. 904 00:47:19,010 --> 00:47:20,240 Ах, божа мой, божа мой, божа мой. 905 00:47:20,240 --> 00:47:27,440 X-- nope-- зорка зорка у. 906 00:47:27,440 --> 00:47:29,720 >> Так што гэта проста Спрошчаная версія гэтага. 907 00:47:29,720 --> 00:47:33,990 І так прычына таго, што ў мяне ёсць даляр знак нуля з'яўляецца тое, што з дапамогай гэтага корпус 908 00:47:33,990 --> 00:47:41,050 азначае, што я больш не прыйдзецца не ўводзіць ваеннапалонных, або больш не рабіць 909 00:47:41,050 --> 00:47:45,570 Я павінен зрабіць што-то як 3 зорка зорка 2. 910 00:47:45,570 --> 00:47:48,530 Я магу проста аднаго Функцыя называецца плошчу 911 00:47:48,530 --> 00:47:50,820 што заўсёды будзе мець некаторы значэнне ў якасці ўваходных дадзеных 912 00:47:50,820 --> 00:47:52,980 а на самай справе вярнуцца на плошчу, што. 913 00:47:52,980 --> 00:47:56,460 >> Так увесь сэнс закрыцця з'яўляецца проста накшталт інкапсуляцыі той факт, 914 00:47:56,460 --> 00:47:59,920 што я заўсёды хачу, каб выкарыстоўваць у кожны раз, калі Я называю гэтую функцыю, як улада 915 00:47:59,920 --> 00:48:01,710 пры прыняцці гэтага паказчыка. 916 00:48:01,710 --> 00:48:04,650 Так вяртаючыся затым, функцыя, якая прымае 917 00:48:04,650 --> 00:48:08,460 двайны, які з'яўляецца базай, і вяртанне выніку гэтага паказчыка 918 00:48:08,460 --> 00:48:10,740 з'яўляецца тут ключавы. 919 00:48:10,740 --> 00:48:12,790 І гэта галоўнае адрозненне. 920 00:48:12,790 --> 00:48:14,430 Быў проста трохі квітнець. 921 00:48:14,430 --> 00:48:17,970 >> Гэта нічым не адрозніваецца у параўнанні з папярэднімі прыкладамі, 922 00:48:17,970 --> 00:48:20,530 але гэта было толькі крыху квітнець, мы можам на самай справе 923 00:48:20,530 --> 00:48:24,500 стварыць аператар у Swift і на самай справе рабіць рэчы з ім, 924 00:48:24,500 --> 00:48:26,396 якая з'яўляецца своеасаблівай крута. 925 00:48:26,396 --> 00:48:27,520 Я адказаў на ваша пытанне? 926 00:48:27,520 --> 00:48:28,390 Салодкі. 927 00:48:28,390 --> 00:48:31,350 Што-небудзь яшчэ, перш чым мы пяройдзем? 928 00:48:31,350 --> 00:48:33,570 ОК. 929 00:48:33,570 --> 00:48:36,430 >> Цяпер гэты від просіць Пытанне ў тым, that-- Ну добра, 930 00:48:36,430 --> 00:48:40,870 Цяпер у нас ёсць магчымасць для Функцыі павінны быць вернутыя. 931 00:48:40,870 --> 00:48:48,950 Ці можам мы таксама перадаем функцыі як дадзеныя або ў якасці параметраў іншых функцый? 932 00:48:48,950 --> 00:48:50,710 І на самай справе мы можам. 933 00:48:50,710 --> 00:48:53,480 Так што давайце казаць, што ў нас ёсць усё той жа код. 934 00:48:53,480 --> 00:48:56,120 У нас ёсць квадратны зменную што будуць улагоджвае гэты код. 935 00:48:56,120 --> 00:48:59,320 І ў нас ёсць пераменная куб што будзе куб некаторыя дадзеныя. 936 00:48:59,320 --> 00:49:02,440 І мы сапраўды хочам, каб прымяніць ў шырокім дыяпазоне лікаў. 937 00:49:02,440 --> 00:49:06,870 >> Такім чынам, што мы маглі б паспрабаваць зрабіць, Вядома, што, безумоўна, справядліва, 938 00:49:06,870 --> 00:49:15,430 гэта прайсьці па гэтым спісе нумароў і прымяняць мае функцыі квадратных і кубічных 939 00:49:15,430 --> 00:49:22,270 і атрымаць два новых спісаў у якасці вынікаў якія гэта першапачатковы спіс квадрат 940 00:49:22,270 --> 00:49:24,970 і ў кубе, адпаведна. 941 00:49:24,970 --> 00:49:26,880 Цалкам прымальна. 942 00:49:26,880 --> 00:49:29,130 Але тое, што рэч, якая тут мы бачым, што ў нас ёсць, 943 00:49:29,130 --> 00:49:31,310 зноў, дубляванне кода. 944 00:49:31,310 --> 00:49:34,310 І ёсць, магчыма, магчымасць для нас, каб спрасціць гэта няшмат. 945 00:49:34,310 --> 00:49:41,260 Што, калі б быў спосаб для нас на самай справе заўсёды перабраць некаторы спіс 946 00:49:41,260 --> 00:49:45,450 і проста пераходзяць на гэты чароўны функцыянаваць зменную, якая 947 00:49:45,450 --> 00:49:47,350 ўяўляе сабой функцыю што мы хочам прымяніць 948 00:49:47,350 --> 00:49:50,336 для кожнага элемента ў гэтым спісе. 949 00:49:50,336 --> 00:49:53,210 Гэта падымае канцэпцыю аб тым, што называюцца функцыі вышэйшага парадку. 950 00:49:53,210 --> 00:49:57,150 І гэта, па сутнасці, тое, што гэта з'яўляецца, тое, што мы можам стварыць функцыю. 951 00:49:57,150 --> 00:50:00,210 >> І ў гэтым выпадку яна завецца Mapper, проста каб даць яму імя, проста 952 00:50:00,210 --> 00:50:02,510 адлюстраванне над кожнай адзін элемент у спісе. 953 00:50:02,510 --> 00:50:06,191 Дзе я вазьму спіс і я ўзяць функцыю. 954 00:50:06,191 --> 00:50:08,440 І, што функцыі, вядома, мае пэўную подпіс. 955 00:50:08,440 --> 00:50:11,980 Ён прымае ў якасці параметру ўдвая і гэта будзе выхад у два разы. 956 00:50:11,980 --> 00:50:14,310 І ўвесь вынік Гэтая функцыя будзе 957 00:50:14,310 --> 00:50:18,921 быць новы спіс, які мае тып Double. 958 00:50:18,921 --> 00:50:19,420 ОК? 959 00:50:19,420 --> 00:50:22,650 >> І тое, што я збіраюся зрабіць з'яўляецца прымяненне гэтай функцыі F 960 00:50:22,650 --> 00:50:24,960 для кожнага элемента ў маім спісе. 961 00:50:24,960 --> 00:50:30,280 І reply-- і даволі вярнуцца гэты новы Спіс, як вынік, які на самай справе крута. 962 00:50:30,280 --> 00:50:31,820 Цяпер я магу перадаць функцыі вакол. 963 00:50:31,820 --> 00:50:35,290 І гэтая ідэя больш высокага парадку функцыі, што сапраўды важна. 964 00:50:35,290 --> 00:50:39,260 І гэта пераўтваральнік на самай справе проста Рэалізацыя бедняка 965 00:50:39,260 --> 00:50:43,130 функцыі, якія ўбудаваныя у Swift называецца карту. 966 00:50:43,130 --> 00:50:45,690 І гэта робіць менавіта гэта, можа быць, нават трохі лепш. 967 00:50:45,690 --> 00:50:48,260 >> Гэта проста свайго роду агульным, спрошчаная версія, што 968 00:50:48,260 --> 00:50:51,270 дазваляе нам убачыць канцэпцыя, якая ўжываецца тут. 969 00:50:51,270 --> 00:50:54,630 Цяпер паглядзім на тое, як я можа на самай справе прымяніць свае плошчы 970 00:50:54,630 --> 00:50:57,850 і мае куб функцыі у гэтым спісе лікаў. 971 00:50:57,850 --> 00:50:58,780 Я вяду свой Mapper. 972 00:50:58,780 --> 00:51:00,280 Я прадставіць яму мой спіс лікаў. 973 00:51:00,280 --> 00:51:02,155 Я прадставіць яму на функцыя, якая збіраецца 974 00:51:02,155 --> 00:51:04,170 ўжываць да кожнага з гэтых паказчыкаў. 975 00:51:04,170 --> 00:51:07,120 І гэта будзе Выхад у выніку. 976 00:51:07,120 --> 00:51:11,810 І я буду атрымліваць, каб убачыць, што я ў квадраце і ў кубе мае нумара ў выніку. 977 00:51:11,810 --> 00:51:14,660 >> І, вядома, картографа адбудзецца любы від ананімнай функцыі. 978 00:51:14,660 --> 00:51:17,640 Мы нават можам бачыць, што я стварыў Новы ананімную функцыю, якая 979 00:51:17,640 --> 00:51:20,220 проста прымае якой-небудзь параметр і дзеліць яго на 2. 980 00:51:20,220 --> 00:51:24,340 І мы бачым, што я, на самай справе, падзяліць мой спіс 2 замест гэтага. 981 00:51:24,340 --> 00:51:25,250 Прахладны? 982 00:51:25,250 --> 00:51:27,340 Усё ідзе нармальна? 983 00:51:27,340 --> 00:51:29,650 Добра, зараз давайце вярнуцца да гэтай ідэі. 984 00:51:29,650 --> 00:51:36,160 Давайце рэалізуем гэта яшчэ ў Кантэкст заліковую кніжку. 985 00:51:36,160 --> 00:51:41,860 >> І калі я гэта зраблю, мы можам бачыць, што я магу ўжываюць шырокі спектр гэтых options-- 986 00:51:41,860 --> 00:51:44,330 або вялікая разнастайнасць іх Функцыі вышэйшага парадку 987 00:51:44,330 --> 00:51:51,450 на самай справе спрасціць сваю здольнасць рабіць Разнастайнасць рэчаў на спісы нумароў. 988 00:51:51,450 --> 00:51:53,660 Так, напрыклад, калі ўзяць спіс нумароў, 989 00:51:53,660 --> 00:51:57,060 адзін з вышэйшых функцый парадку што існуе, называецца паменшыць. 990 00:51:57,060 --> 00:52:00,080 Што знізіць робіць, а чым карты, зводзіцца будзе 991 00:52:00,080 --> 00:52:03,710 прыняць два элемента ў спісе, зойме некаторы функцыю, якая 992 00:52:03,710 --> 00:52:07,420 параўноўвае два элемента Спіс, і ён будзе затым 993 00:52:07,420 --> 00:52:09,610 накшталт output-- Выхад з гэтай функцыі 994 00:52:09,610 --> 00:52:13,790 будзе адзін элемент, які Вы тады ў параўнанні з іншымі. 995 00:52:13,790 --> 00:52:18,190 >> Такім чынам, вы маглі б выкарыстоўваць гэта на самай справе сума лікаў у вашым спісе. 996 00:52:18,190 --> 00:52:20,640 Напрыклад, калі ў вас Спіс 1, 2, 3, 4, 5, 997 00:52:20,640 --> 00:52:22,940 вы бераце першыя элементы, 1 і 2. 998 00:52:22,940 --> 00:52:27,270 Вы можаце звярнуцца да яе дадатак функцыя, якая прымае гэтыя два элемента 999 00:52:27,270 --> 00:52:30,980 і выплёўвае адзін з тых элементаў, якая была б значэнне 3. 1000 00:52:30,980 --> 00:52:35,684 Затым мы бярэм гэта значэнне 3 з шэрагам элемент спісу, падвесці тых, два, 1001 00:52:35,684 --> 00:52:37,100 а затым працягваць ісці ўніз па спісе. 1002 00:52:37,100 --> 00:52:40,410 >> Мы скарачэнне спіс да аднаго значэння. 1003 00:52:40,410 --> 00:52:42,700 І так ужо здарылася, што сімвал плюс 1004 00:52:42,700 --> 00:52:44,670 з'яўляецца аператар, як мы толькі што бачылі. 1005 00:52:44,670 --> 00:52:47,500 Гэты аператар на самай справе гэта функцыя, якая 1006 00:52:47,500 --> 00:52:53,100 мае менавіта гэты спіс, які мы хацеў, а гэтыя ўласцівасці 1007 00:52:53,100 --> 00:52:54,770 што мы хацелі б. 1008 00:52:54,770 --> 00:52:56,760 Таму я заклікаю вас, каб зірніце на гэта. 1009 00:52:56,760 --> 00:52:59,290 Я хачу, каб адсартаваць ходу на некаторых з гэтага кода 1010 00:52:59,290 --> 00:53:05,330 так што мы можам рэальна зірнуць на некаторыя рэальна існае, праўдзівая Swift ў Xcode, 1011 00:53:05,330 --> 00:53:06,880 у развіцці IOS. 1012 00:53:06,880 --> 00:53:08,630 Але зірніце на гэта і паглядзець, калі вы можаце 1013 00:53:08,630 --> 00:53:11,171 разабраць праз тое, што адбываецца на з некаторымі з гэтых больш высокага парадку 1014 00:53:11,171 --> 00:53:13,790 функцыі, уключаючы фільтр, зніжэнне, а вы нават 1015 00:53:13,790 --> 00:53:17,060 см дзе-то тут карту, а таксама. 1016 00:53:17,060 --> 00:53:17,910 Гэта прама тут. 1017 00:53:17,910 --> 00:53:20,410 Дзе ён будзе прымаць паслядоўнасць гатункаў і ён будзе на самой справе 1018 00:53:20,410 --> 00:53:24,230 супаставіць іх з дапамогай канструкцыі перамыкача, якія Вы маглі б прызнаць ад C, 1019 00:53:24,230 --> 00:53:27,640 але на самой справе гэта значна больш, магутны, чым канструкцыі перамыкача 1020 00:53:27,640 --> 00:53:29,810 што мы маем на З 1021 00:53:29,810 --> 00:53:31,930 >> І мы будзем прымяняць, што кожны элемент у спісе 1022 00:53:31,930 --> 00:53:34,540 і на самай справе забяспечваюць Ліст адзнака кожнага 1023 00:53:34,540 --> 00:53:40,780 з тых марак, выкарыстоўваючы ўсе гэтыя паняцці што мы толькі што гаварылі раней. 1024 00:53:40,780 --> 00:53:44,760 Зараз давайце абыйсці ўсяго за хвіліну і размовы пра структур. 1025 00:53:44,760 --> 00:53:49,680 І так Структуры з'яўляюцца чакання ў C, што мы змаглі вызначыць новы тып дадзеных. 1026 00:53:49,680 --> 00:53:53,590 Структуры існуюць у Свіфт. 1027 00:53:53,590 --> 00:53:58,980 І гэтак жа шмат іншых канструкцый званыя пералічэння і класы, якія на самай справе 1028 00:53:58,980 --> 00:54:01,175 прыняць гэтую ідэю зусім іншы ўзровень. 1029 00:54:01,175 --> 00:54:05,300 >> І ў асноўным гэта проста спосаб вызначэння новага тыпу дадзеных. 1030 00:54:05,300 --> 00:54:11,010 Так што калі вы get-- калі вы прыехалі па класе або структур або пералічэнняў, 1031 00:54:11,010 --> 00:54:13,290 ня палохайцеся гэтага. 1032 00:54:13,290 --> 00:54:16,280 Гэта проста спосаб вызначэння некаторыя новыя асаблівасці тып дадзеных. 1033 00:54:16,280 --> 00:54:20,230 І гэта вельмі важна, калі мы гаворым пра развіццё IOS прыкладання 1034 00:54:20,230 --> 00:54:24,630 таму што ўсё, што існуе ў дадатак IOS 1035 00:54:24,630 --> 00:54:27,460 па сутнасці аб'ектам некаторага выгляду. 1036 00:54:27,460 --> 00:54:31,980 І аб'ект у асноўным клас або пералiчэнне або структурай. 1037 00:54:31,980 --> 00:54:34,760 >> Такім чынам, у дадзеным выпадку я вызначэнні новага тыпу дадзеных 1038 00:54:34,760 --> 00:54:37,740 што я тэлефаную ацэнку гэта некаторыя ўласцівасці, у тым ліку 1039 00:54:37,740 --> 00:54:41,040 Імя і паслядоўнасць класаў. 1040 00:54:41,040 --> 00:54:43,470 Так адзін тып ацэнкі што я мог бы мець на ўвазе 1041 00:54:43,470 --> 00:54:44,760 б віктарыны, напрыклад. 1042 00:54:44,760 --> 00:54:48,180 Я хацеў бы мець узносаў, якая была віктарына 1043 00:54:48,180 --> 00:54:51,460 і што было мноства класаў звязана з тым, для віктарыны адной, 1044 00:54:51,460 --> 00:54:52,840 Тэст два, гэтак далей, і гэтак далей. 1045 00:54:52,840 --> 00:54:55,720 >> Ці я мог бы мець розны тып ацэнкі для задачы мностваў. 1046 00:54:55,720 --> 00:54:56,650 І я магу рабіць. 1047 00:54:56,650 --> 00:54:59,860 Я магу на самой справе ёсць Функцыі ў рамках гэтага тыпу 1048 00:54:59,860 --> 00:55:02,645 дадзеных, якія зараз называюцца метадамі. 1049 00:55:02,645 --> 00:55:04,520 Так што калі вы калі-небудзь бачылі Метад слова, гэта сапраўды 1050 00:55:04,520 --> 00:55:08,190 гэта проста функцыя, якая ўжываецца ў вельмі пэўнага класа, 1051 00:55:08,190 --> 00:55:10,100 або вельмі канкрэтнага тыпу дадзеных. 1052 00:55:10,100 --> 00:55:12,350 Гэта дазваляе нам змяняць дадзеныя ў. 1053 00:55:12,350 --> 00:55:15,510 >> Такім чынам, іншымі словамі, калі я хачу, каб дадаць клас да маёй ацэнкай, 1054 00:55:15,510 --> 00:55:18,630 то ўсё, што трэба зрабіць, гэта дадаць кошт, які быў уведзены 1055 00:55:18,630 --> 00:55:22,660 з дапамогай гэтай функцыі да мой ўнутранае ўласцівасць. 1056 00:55:22,660 --> 00:55:25,880 Там яшчэ адзін акуратны канструкцыя тут у Свіфта, які гэта кропка кропка кропка 1057 00:55:25,880 --> 00:55:31,780 аператар, які азначае, што вынікі могуць зараз прымаю любую колькасць цэлых лікаў. 1058 00:55:31,780 --> 00:55:33,940 І вынікі будуць масіў цэлых лікаў, 1059 00:55:33,940 --> 00:55:39,030 былі перададзеныя на маёй функцыі, якія азначае, што я магу рабіць рэчы, як гэта. 1060 00:55:39,030 --> 00:55:42,360 >> Што я магу зрабіць дадаць ацэнкі і проста забяспечыць адвольныя ліку цэлых лікаў у ім 1061 00:55:42,360 --> 00:55:47,420 і сапраўды будзе прадастаўлена масіў з гэтых каштоўнасцяў у маёй функцыі 1062 00:55:47,420 --> 00:55:50,270 ці мой метад, як гэта мае месца. 1063 00:55:50,270 --> 00:55:54,040 Зараз гэта важна, таму што усё ў Xcode, усё ў ІА, 1064 00:55:54,040 --> 00:55:56,250 на самай справе аб'ект. 1065 00:55:56,250 --> 00:55:59,630 Так што майце гэта на ўвазе калі мы бюст адкрыты Xcode 1066 00:55:59,630 --> 00:56:04,890 і прапусціць наперад за прашыўкай версіі два і тры 1067 00:56:04,890 --> 00:56:08,820 і на самай справе ісці на версіі чатыры. 1068 00:56:08,820 --> 00:56:11,940 >> І зноў жа, усё гэта будзе будуць размешчаны на старонцы семінара. 1069 00:56:11,940 --> 00:56:16,980 IOS чатыры з'яўляецца свайго роду поўнамаштабнай рэалізацыя вельмі просты дадатак. 1070 00:56:16,980 --> 00:56:23,920 І тое, што гэта дадатак робіць гэта загружае карыстацкі інтэрфейс, які выглядае наступным чынам. 1071 00:56:23,920 --> 00:56:28,680 Зноў жа, калі мы націснем на раскадроўкі мы можам бачыць, што гэта, як ён выглядае. 1072 00:56:28,680 --> 00:56:31,320 Гэта інтэрфейс. 1073 00:56:31,320 --> 00:56:33,676 Ён мае назву на самым версе. 1074 00:56:33,676 --> 00:56:34,800 Я назваў яго вэб-галерэі. 1075 00:56:34,800 --> 00:56:38,400 >> У сярэдзіне ёсць элемент называецца выгляд малюнка карыстацкага інтэрфейсу. 1076 00:56:38,400 --> 00:56:41,340 А ўнізе ёсць Панэль інструментаў з дапамогай адной кнопкі, што 1077 00:56:41,340 --> 00:56:46,850 мае эластычныя прасторы, якія дазваляюць яго цэнтр у сярэдзіне гэтай панэлі інструментаў. 1078 00:56:46,850 --> 00:56:51,780 І тое, што адбываецца, што, калі гэта загружае яго запампоўвае файл JSON, што гэта 1079 00:56:51,780 --> 00:56:55,540 якія змяшчаюцца на сэрвэры ў іншым месцы, граматычны разбор JSON файл, 1080 00:56:55,540 --> 00:56:58,130 і файл JSON выглядае трохі як гэта. 1081 00:56:58,130 --> 00:57:02,770 1082 00:57:02,770 --> 00:57:06,230 Файл JSON выглядае так. 1083 00:57:06,230 --> 00:57:08,650 Там яно і ёсць. 1084 00:57:08,650 --> 00:57:11,730 >> Ён мае назву альбома і яна мае мноства фатаграфій. 1085 00:57:11,730 --> 00:57:13,490 Кожны з гэтых фатаграфій ёсць імя, а таксама 1086 00:57:13,490 --> 00:57:19,460 URL самі, якія ўяўляюць JPEG версія гэтай асобнай фатаграфіі. 1087 00:57:19,460 --> 00:57:24,780 Так, што здарылася, што, калі гэтая праграма Грузы, ён загружае файл у фармаце JSON, 1088 00:57:24,780 --> 00:57:30,590 аналізуе яго, кладзе усё гэта ў эквівалент масіва ў ІА 1089 00:57:30,590 --> 00:57:33,020 прыкладанне развіцця, які з'яўляецца NSArray. 1090 00:57:33,020 --> 00:57:37,520 І тады я магу затым загрузіць Гэтыя дадзеныя ў дадатак 1091 00:57:37,520 --> 00:57:41,100 і загрузіць яго на маім экране. 1092 00:57:41,100 --> 00:57:44,760 >> Існуе вобраз, які быў загружаны з дапамогай кнопкі ў самым нізе. 1093 00:57:44,760 --> 00:57:49,190 Калі я націскаю Атрымаць Наступны, тады цягне гэты вобраз з інтэрнэту 1094 00:57:49,190 --> 00:57:53,370 і замяняе гэта выява на думку малюнкаў UI. 1095 00:57:53,370 --> 00:57:57,820 Такім чынам, вы можаце спампаваць гэта і на самай справе зірнуць на яго на вашым кампутары. 1096 00:57:57,820 --> 00:58:00,940 І будаваць яго і на самай справе скампіляваць яго на ваша прылада. 1097 00:58:00,940 --> 00:58:04,710 Але па сутнасці працэс быў гэта, стварыце storyboard-- 1098 00:58:04,710 --> 00:58:08,080 або, хутчэй, не create-- але выбраць раскадроўкі. 1099 00:58:08,080 --> 00:58:15,030 А на самай справе we'll-- калі вы не mind-- мы будзем прымаць толькі некалькі секунд 1100 00:58:15,030 --> 00:58:18,390 на самай справе паказаць вам, як гэта было зроблена. 1101 00:58:18,390 --> 00:58:22,430 1102 00:58:22,430 --> 00:58:27,820 >> Сапраўды гэтак жа, што, як мы можам на самай справе дасягнення гэтай мэты вырабляецца трохі больш 1103 00:58:27,820 --> 00:58:28,360 відавочнай. 1104 00:58:28,360 --> 00:58:30,651 Аднамесны Прагляд прыкладання, я буду называць гэты семінар 1105 00:58:30,651 --> 00:58:35,330 чатыры які прадстаўляе гэта прыватнасці лік. 1106 00:58:35,330 --> 00:58:36,335 Захавайце яго на працоўным стале. 1107 00:58:36,335 --> 00:58:39,890 1108 00:58:39,890 --> 00:58:42,110 Добра, збіраецца націснуць на раскадроўкі. 1109 00:58:42,110 --> 00:58:47,030 І тое, што я збіраюся зрабіць каб знайсці мой погляд выявы, 1110 00:58:47,030 --> 00:58:50,940 перацягнуць яго на маім карыстальнік інтэрфейс і ў цэнтр. 1111 00:58:50,940 --> 00:58:54,850 Цяпер проста цэнтравання яго, на жаль, не збіраецца рабіць кучу, 1112 00:58:54,850 --> 00:58:58,680 для экрана, акрамя што гэта дакладны памер. 1113 00:58:58,680 --> 00:59:03,950 >> Такім чынам, мы пераконваемся, што, націснуўшы на гэтай двайны рэчы акружнасці, 1114 00:59:03,950 --> 00:59:08,290 зніжэння гэтага поп меню тут і змены 1115 00:59:08,290 --> 00:59:11,110 каб праглядзець, дзе мы на самай справе атрымаць шанец убачыць, як 1116 00:59:11,110 --> 00:59:13,530 гэта будзе на самой справе глядзець на іншых прыладах. 1117 00:59:13,530 --> 00:59:16,500 Як мы бачым, мы нават не ўбачыць яго на гэтым канкрэтным выпадку. 1118 00:59:16,500 --> 00:59:18,500 Так што я збіраюся зачыніць гэта цяпер. 1119 00:59:18,500 --> 00:59:22,100 >> І я збіраюся выбраць гэты значок ўніз на вельмі 1120 00:59:22,100 --> 00:59:23,910 Ніжняя частка экрана. 1121 00:59:23,910 --> 00:59:26,584 Гэта кажа Дазвол Автокомпоновка пытанні. 1122 00:59:26,584 --> 00:59:28,000 На жаль, гэта адрэзаць ўнізе. 1123 00:59:28,000 --> 00:59:36,360 Але калі я націскаю на што, што я атрымаць гэтая поп-up-- сысці. 1124 00:59:36,360 --> 00:59:39,740 1125 00:59:39,740 --> 00:59:51,220 Што я атрымліваю гэта ўсплывальнае меню, якое дазваляе мне дадаць якія адсутнічаюць абмежаванняў. 1126 00:59:51,220 --> 00:59:53,780 І таму, каб ён Затым роду заблакаваць яго 1127 00:59:53,780 --> 00:59:56,640 ў цэнтральнай частцы Экран, як я мог бы чакаць. 1128 00:59:56,640 --> 01:00:00,520 >> Зараз для таго, каб атрымаць гэтую кнопку на верх яе, мне трэба ісці ў рэдакцыю. 1129 01:00:00,520 --> 01:00:05,010 Перайсці да Уставіць у сістэму і націсніце Навігацыйны кантролер. 1130 01:00:05,010 --> 01:00:08,900 Тое, што гэта будзе рабіць тое, што будзе дадаць Увесь гэты іншы кампанент да яго, 1131 01:00:08,900 --> 01:00:11,310 але на самой справе спасылаюцца гэта назад да маёй першапачатковай UI. 1132 01:00:11,310 --> 01:00:14,450 І дэталі, зноў жа, мы не сапраўды трэба клапаціцца аб прама цяпер. 1133 01:00:14,450 --> 01:00:16,710 Але я хачу, каб мець Панэль інструментаў у самым нізе. 1134 01:00:16,710 --> 01:00:18,530 Так што я буду праверка паказвае, панэль інструментаў. 1135 01:00:18,530 --> 01:00:21,870 >> І гэта дае ў майго пункту гледжання, якія цяпер дзе-то яшчэ, 1136 01:00:21,870 --> 01:00:23,900 мы бачым, гэта звязана сюды. 1137 01:00:23,900 --> 01:00:28,710 Гэта ў цяперашні час забяспечвае панэль інструментаў У ніжняй частцы маёй UI. 1138 01:00:28,710 --> 01:00:34,770 Так што цяпер, замест выбару прагляд малюнкаў, я магу знайсці ярлык, 1139 01:00:34,770 --> 01:00:41,140 ці, хутчэй, toolbar-- давайце паглядзім, дзе гэта? 1140 01:00:41,140 --> 01:00:41,890 Як ён называецца? 1141 01:00:41,890 --> 01:00:49,760 Пункт button-- bar-- item-- sorry-- панэль кнопак пункт. 1142 01:00:49,760 --> 01:00:54,590 Plop што там і прымяніць пару гнуткіх прасторы па абодва бакі 1143 01:00:54,590 --> 01:00:57,429 на самай справе цэнтр, які. 1144 01:00:57,429 --> 01:00:58,970 Так што цяпер я стварыў свой карыстацкі інтэрфейс, у асноўным. 1145 01:00:58,970 --> 01:01:01,428 І я магу даць яму імя, Двайны пстрычка на самым версе 1146 01:01:01,428 --> 01:01:04,880 тут і казаць вэб-галерэі і гэтак далей. 1147 01:01:04,880 --> 01:01:08,100 Цяпер зноў, гэта элементы якія існуюць самі па сабе. 1148 01:01:08,100 --> 01:01:10,400 І ў мяне ёсць для падлучэння ім мой код, які 1149 01:01:10,400 --> 01:01:14,297 Што я магу зрабіць, зноў прыносячы да гэтага падвойнага значком у выглядзе круга, 1150 01:01:14,297 --> 01:01:15,380 змены ад прагляду. 1151 01:01:15,380 --> 01:01:18,950 Што, дарэчы, зараз мы бачым, з'яўляецца прыгожа па цэнтры і будзе добра глядзецца 1152 01:01:18,950 --> 01:01:23,720 на розных прыладах. 1153 01:01:23,720 --> 01:01:27,280 >> Пераключыцеся на аўтаматычны, які будзе выхоўваць код ViewController. 1154 01:01:27,280 --> 01:01:29,030 А цяпер гэтая частка вельмі важная. 1155 01:01:29,030 --> 01:01:34,590 Для таго, каб падключыць іх два элемента, каб ваш код карыстацкага інтэрфейсу, 1156 01:01:34,590 --> 01:01:36,680 Пры выбары пункта, што Вы хочаце падключыць. 1157 01:01:36,680 --> 01:01:39,570 Такім чынам, у гэтым выпадку мы на самай справе хочаце, каб закадаваць 1158 01:01:39,570 --> 01:01:43,520 змяніць імідж, якая змяшчаецца у межах гэтага прадстаўлення выявы карыстацкага інтэрфейсу. 1159 01:01:43,520 --> 01:01:47,070 Так што, калі вы кантралюеце націсніце ад Паглядзець малюнак і перацягнуць, 1160 01:01:47,070 --> 01:01:51,960 Вы заўважыце, што вы атрымліваеце невялікі бар, калі вы адпускаеце усё гэта поп- 1161 01:01:51,960 --> 01:01:53,550 да адбудзецца. 1162 01:01:53,550 --> 01:01:56,470 >> І ён кажа, што мы будзем стварыць падключэнне. 1163 01:01:56,470 --> 01:01:59,300 А адсюль я хачу даць яго імя, нешта накшталт галерэі. 1164 01:01:59,300 --> 01:02:00,240 Націсніце Enter. 1165 01:02:00,240 --> 01:02:03,040 І гэта на самай справе забяспечвае пераменная з імем галерэя 1166 01:02:03,040 --> 01:02:08,600 што я магу затым спасылацца ў сваім кодзе змяніць імідж, напрыклад. 1167 01:02:08,600 --> 01:02:10,430 Так як жа, што код на самай справе выглядае? 1168 01:02:10,430 --> 01:02:13,030 Ну зноў жа, я не хачу, каб марнаваць занадта шмат часу на гэта. 1169 01:02:13,030 --> 01:02:15,430 І я заклікаю вас спампаваць і паглядзець. 1170 01:02:15,430 --> 01:02:18,330 Але адзін з самых Важным аспектам з'яўляецца код 1171 01:02:18,330 --> 01:02:20,980 што на самой справе атрымлівае малюнак. 1172 01:02:20,980 --> 01:02:26,470 >> Такім чынам, у дадзеным выпадку я хачу каб атрымаць на працягу маіх фатаграфій 1173 01:02:26,470 --> 01:02:28,520 масіў, які ўтрымліваецца ў маім класе. 1174 01:02:28,520 --> 01:02:33,390 Я хачу задаць імя і URL які быў разабраны з гэтага JSON. 1175 01:02:33,390 --> 01:02:39,810 На самай справе спытаеце прылада, каб атрымаць URL, каб прынесці URL з гэтага, 1176 01:02:39,810 --> 01:02:44,060 а затым выбаркі дадзеных з змесціва гэтага URL. 1177 01:02:44,060 --> 01:02:49,430 Тады пераўтварэнні дадзеных у малюнак шляхам прапускання яго ў малюнак карыстацкага інтэрфейсу. 1178 01:02:49,430 --> 01:02:52,880 Такім чынам, яшчэ раз, гэта ўсё розныя тыпы аб'ектаў, розных тыпаў класаў. 1179 01:02:52,880 --> 01:02:58,410 >> І тады я магу затым ўсталяваць мой gallery.image роўна гэтых дадзеных. 1180 01:02:58,410 --> 01:03:00,750 І гэта свайго роду мяса яго, што на самой справе тое 1181 01:03:00,750 --> 01:03:08,250 ў стане змяніць змяніць дадзеныя из-- фатаграфія ад аднаго да іншага. 1182 01:03:08,250 --> 01:03:10,660 Такім чынам, яшчэ раз, спадзяюся, цяпер шмат канструкцый 1183 01:03:10,660 --> 01:03:12,240 зробіць крыху больш сэнсу. 1184 01:03:12,240 --> 01:03:15,260 Звярніце ўвагу, што ёсць нейкая клічнікаў тут. 1185 01:03:15,260 --> 01:03:19,810 Клічнік з'яўляюцца па сутнасці звязаны з дадатковымі опцыямі. 1186 01:03:19,810 --> 01:03:22,657 >> Тое, што я ў асноўным кажу, што нават не правяраючы 1187 01:03:22,657 --> 01:03:24,490 каб убачыць, калі ёсць дадзеныя у гэты неабавязковы, 1188 01:03:24,490 --> 01:03:27,140 Я збіраюся ісці наперад і выказаць здагадку, што існуе і разгарнуць яго. 1189 01:03:27,140 --> 01:03:31,340 Памятаеце, што мы выкарыстоўвалі аналогію Сартаваць пакета для опцыямі 1190 01:03:31,340 --> 01:03:34,700 і мы павінны разгарнуць ўпакоўка і выцягнуць дадзеныя. 1191 01:03:34,700 --> 01:03:37,570 Клічнік сілы, якія на самай справе адбылося. 1192 01:03:37,570 --> 01:03:39,590 >> Але я ведаю, што гэта бяспечна, таму што я праверыў 1193 01:03:39,590 --> 01:03:42,070 каб убачыць, калі дадзеныя выявы роўная да нуля, я на самой справе праверыць 1194 01:03:42,070 --> 01:03:45,420 каб убачыць, калі гэта опцыя быў, па сутнасці, не ўдалося. 1195 01:03:45,420 --> 01:03:47,110 Калі б гэта было на самай справе, не ўдалося ўжо. 1196 01:03:47,110 --> 01:03:52,450 І таму я ўпэўнены, што як толькі я атрымліваю на гэта Тут я магу з упэўненасцю разгортваць гэтыя дадзеныя. 1197 01:03:52,450 --> 01:03:55,710 Вы таксама можаце ўбачыць яго ў форма пытальніка. 1198 01:03:55,710 --> 01:03:59,100 Так што, калі мы пракручваем ўніз туды, дзе я трэба на самай справе сінтаксічны аналіз дадзеных. 1199 01:03:59,100 --> 01:04:01,850 >> Так што не палохайцеся гэта свайго роду працяглых імёнаў. 1200 01:04:01,850 --> 01:04:06,580 Вы можаце знайсці ў Apple, Распрацоўшчык сайта шмат 1201 01:04:06,580 --> 01:04:09,620 спасылак на ўсе аб'екты і ўсе працэсы 1202 01:04:09,620 --> 01:04:11,170 што на самой справе зрабіць гэта магчымым. 1203 01:04:11,170 --> 01:04:15,990 Але звярніце ўвагу, што гэта па сутнасці Функцыя, дзе я перадаць яму некаторыя дадзеныя. 1204 01:04:15,990 --> 01:04:18,410 І я вярнуся нейкі дадзеных. 1205 01:04:18,410 --> 01:04:24,190 І мне трэба выкарыстоўваць гэта ў якасці ключавога слова пераўтварыць яго ў гэтым NSDictionary? 1206 01:04:24,190 --> 01:04:26,490 Што зноў-такі, па жаданні NSDictionary. 1207 01:04:26,490 --> 01:04:31,070 Які я тады трэба праверыць, калі ён існуе. 1208 01:04:31,070 --> 01:04:37,130 >> Так што я магу выкарыстоўваць, што калі дазволіць паспяховыя роўна разбіраецца, 1209 01:04:37,130 --> 01:04:40,620 то я ведаю, што неабавязкова на самай справе змяшчае некаторыя дадзеныя. 1210 01:04:40,620 --> 01:04:43,840 Ці тое, што я зрабіў тут было проста выказаць здагадку, што, калі ёсць 1211 01:04:43,840 --> 01:04:49,067 не было ніякіх памылак, якія ён на самай справе бяспечна. 1212 01:04:49,067 --> 01:04:51,400 Добра, я хачу падзякаваць Вы ўсё вельмі вялікае, што прыйшлі. 1213 01:04:51,400 --> 01:04:53,540 Я ведаю, што гэта было шмат, але гэта было толькі гадзіну 1214 01:04:53,540 --> 01:04:55,920 казаць аб некаторых даволі прасунуты матэрыял. 1215 01:04:55,920 --> 01:04:59,640 І так, мы спадзяемся, вы атрымаеце шанец загрузіць увесь код 1216 01:04:59,640 --> 01:05:01,657 і прыняць лепш, старанна зірнуць на яго. 1217 01:05:01,657 --> 01:05:04,240 Сартаваць пераканаць сябе ўсе матэрыялу, які адбываецца. 1218 01:05:04,240 --> 01:05:06,800 І я хачу падзякаваць вас усё, зноў жа, што прыйшлі. 1219 01:05:06,800 --> 01:05:08,760 І поспехі ў фінальных праектаў. 1220 01:05:08,760 --> 01:05:10,600 Добрага дня. 1221 01:05:10,600 --> 01:05:11,467