1 00:00:00,000 --> 00:00:11,270 2 00:00:11,270 --> 00:00:14,340 >> DANIEL Armendariz: Здравейте, всички, добре дошли в IOS ап развитие 3 00:00:14,340 --> 00:00:15,020 с бърза. 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 и да я постави на хранилището на ап. 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 за IOS и 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 >> Кликнете Next в този момент. 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 Можете, разбира се, да използвате Цел 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 Така че нека да вървим напред и кликнете Next. 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 >> Давай напред и да кликнете Fix въпрос. 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 Това е not-- щракване Fix въпрос не е необходимо 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 OK, този човек трябва да работи. 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-- OK, 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 OK, аз ще се опитам друг. 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 създаде една много проста Hello World заявление. 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 Има много неща, на стъкла, има много doodads в различни области. 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 На първо място, това е съставила език, точно като C. 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 създаване на код от C и създадете кода само от него. 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 е, че особено в сравнение до C, това е трябвало да бъде в безопасност. 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 на Python за действително бързо разбор и процес 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 Нека наистина погледнете нашата Първата бърза програма. 283 00:13:52,450 --> 00:13:53,590 Това е един ред код. 284 00:13:53,590 --> 00:13:57,690 Line 14 точно тук, тя казва печат л н здравей 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 автоматично се включва като част от стандартната библиотека на SWIFT 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 в бърза. 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 И от това просто ще кажа "Hello CS50." 314 00:15:19,691 --> 00:15:20,690 Awesome, така че отиваме. 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, низ е действителната недвижими тип в бърза. 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 Дан." 351 00:17:14,390 --> 00:17:16,050 OK, страхотно. 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 Така че вече не го е инт име или Име на низ или нещо подобно. 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 Но забележете, че това е представка с Var ключова дума. 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 в Initialized данни , която предоставяте на него. 395 00:19:27,300 --> 00:19:30,050 Това ще ни даде грешка, ако Просто тип Var клас, например, 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 и да кажа, OK, Искам да се възползвам този клас, който е цяло число, 413 00:20:17,250 --> 00:20:19,050 и да го превърнете в низ. 414 00:20:19,050 --> 00:20:23,970 >> Така че вземете капитала 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 И ние ще кажем капитализира String премине в него клас. 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, масиви в бързото не са представени чрез указатели. 424 00:20:54,920 --> 00:20:58,730 Показалки в бързи, въпреки че те съществуват, наречен 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 и not-- това е променлива и не е константа, която 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 да се направи, за да изглежда като за линии в C, но там е много по-полезни конструкции 470 00:23:30,650 --> 00:23:37,840 че по същество елиминира нуждата да имат за Var I е равна на 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 OK, продължи нататък. 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 И отново, в Swift, което трябва да бъдете много внимателни с видовете. 488 00:24:38,090 --> 00:24:41,530 Вие предоставяте на него параметри чрез определяне, например, 489 00:24:41,530 --> 00:24:45,440 името на параметъра и След това в Колин, вида на данните 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 Той приема неограничен нарича gradebook, или по-скоро параметър наречен gradebook. 493 00:24:54,630 --> 00:24:59,267 И ние очакваме, че gradebook да бъде масив от цели числа. 494 00:24:59,267 --> 00:25:01,350 Ако това gradebook е празна, Ще отпечатаме едно нещо. 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 но вместо това може да се каже за клас и gradebook, смисъл 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 >> Нека видим отново тук там е концепция за целочислено деление в Swift. 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 някаква Sentinel стойност като отрицателен 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 Тя може, в действителност, е тази друга идея, изцяло нарича nill. 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 OK, възможно ли е, че мога да взема това, превърнато в междинно съединение, 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 и в пример код за Swift. 630 00:32:35,990 --> 00:32:40,980 И всъщност на nill оператор, този вид на въпросителен знак, на Евентуалната част, 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 >> Така че това е нещо като I-- представете си, ако има една кутия и тя съдържа нещо. 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 OK, нека да се движат далеч от това сортиране на командния ред на базата нещо 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 още преди да започнете да докосвате ЗИ 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 ние ще отнеме известно стойност Y и ние ще го квадрат. 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 Сега мислим, добре, OK. 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 важно в контекста на Swift, и в много други езици. 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 Това отнема вход на грунд нарича Y, че е цяло число, 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 И като резултат, защото сега съм нарича мощност, която минава през някои стойност за Y, 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 Square 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 тази променлива Y е населена с тази стойност 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 но използва тази стойност Y вътре в него. 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 >> Но тази стойност Y не е променило, защото те са 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 И има много възможности в Swift за това опростяване. 776 00:40:45,005 --> 00:40:47,780 И това е, какъв вид на последващи такива действително гледат. 777 00:40:47,780 --> 00:40:51,400 Така че в 7б например, ние вземе това точно същия код. 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 приема като вход, в скоби тук, променливата X, която е от тип двойно. 786 00:41:15,180 --> 00:41:17,250 >> Отиваме да се върне на тип двойно. 787 00:41:17,250 --> 00:41:19,830 И тогава на ключовата дума, N, е началото на тази функция. 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 OK? 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 OK? 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 И така, това нещо demystifies това. 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 и отидете наистина фантазия, която показва дори някои повече от мощността на SWIFT. 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 библиотека, тя всъщност включва функция наречено Pow, че прави това за вас. 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 като база и Y като своя експонат. 837 00:44:00,780 --> 00:44:02,582 >> Но ние можем да получите наистина, наистина фантазия, когато ние 838 00:44:02,582 --> 00:44:04,790 осъзнават, че Swift има много власт под капака. 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 всъщност са разтяга в Swift. 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 Така че мога да кажа, Swift, че искам да се създаде един оператор, звезда 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 Ние дори не трябва да се използва Pow вече. 880 00:46:01,190 --> 00:46:03,020 >> OK, който е загубил? 881 00:46:03,020 --> 00:46:03,700 Правим ли OK? 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-- [недоловим] фънк силата на Y двойно. 885 00:46:09,500 --> 00:46:11,441 Така че, когато сте завръщането функция. 886 00:46:11,441 --> 00:46:13,190 DANIEL Armendariz: 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 Не е ли долар нула звезди звезден Y [недоловим] 891 00:46:24,214 --> 00:46:29,710 Смятат, че оператор с които възстановява в двоен [недоловим] удвои? 892 00:46:29,710 --> 00:46:32,742 >> DANIEL Armendariz: Така че нека ми отговори на въпроса ви 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 Имам Y, която е двойна. 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-- Y звезда звезда. 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 означава, че вече нямам да въведете Pow, или вече не правя 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 Sweet. 927 00:48:28,390 --> 00:48:31,350 Всичко друго преди да продължим? 928 00:48:31,350 --> 00:48:33,570 OK. 929 00:48:33,570 --> 00:48:36,430 >> Сега този вид повдига въпрос е that-- и OK, 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 да бъде нов списък, който е от тип двойно. 958 00:50:18,921 --> 00:50:19,420 OK? 959 00:50:19,420 --> 00:50:22,650 >> И това, което аз ще направя е да се прилага тази функция е 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 И това Mapper е наистина само изпълнение на сиромаха 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 Cool? 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 Нека да приложи това обратно в контекста на gradebook. 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 Така например, ако I вземат списък с номера, 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 която имаме в C. 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 Сега нека да заобиколят само за минути и се говори за structs. 1025 00:53:44,760 --> 00:53:49,680 И така structs са за изчакване в C, че ние са били в състояние да определи нов тип данни. 1026 00:53:49,680 --> 00:53:53,590 Съществуват Structs рамките Swift. 1027 00:53:53,590 --> 00:53:58,980 И така правя много други конструкции наречени enums и класове, които наистина 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-- ако дойдеш целия клас или structs или enums, 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 И един обект е в основата на клас или ENUM или структура. 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 Има и друг чист конструкт тук в Swift, която е тази точка точка точка 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, всичко в IOS, 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 и прескачане напред отвъд IOS версии две и три 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 И това, което прави това приложение е зарежда UI, който изглежда по този начин. 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 >> В средата има един елемент наречено изгледа на UI изображение. 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 го прави разбор, поставя всичко това в еквивалента на масив в IOS 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 Ако щракнете върху Get Следваща, тя след това дърпа, че картинка от интернет 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 OK, ще кликнете върху сценария. 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 Той казва Resolve Авто експонация въпроси. 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 в централната част на екран като I може да се очаква. 1128 00:59:56,640 --> 01:00:00,520 >> Сега, за да получите този бутон за Освен това, аз трябва да отида до редактора. 1129 01:00:00,520 --> 01:00:05,010 Отиди Постави В и кликнете Navigation Controller. 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 Така че аз ще проверя предавания Toolbar. 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 A т button-- bar-- item-- Бутон sorry-- бар т. 1142 01:00:49,760 --> 01:00:54,590 Цоп, че има и прилага няколко на гъвкави пространства от двете страни 1143 01:00:54,590 --> 01:00:57,429 действително да центрирате това. 1144 01:00:57,429 --> 01:00:58,970 Така че сега аз създадох моята UI, основно. 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 смените изображението, които се съдържат в рамките на това мнение UI изображение. 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 Искам да определи името и адреса която е била анализирана от тази JSON. 1175 01:02:33,390 --> 01:02:39,810 Всъщност поиска от устройството, за да получите URL, за да донесе на URL от това, 1176 01:02:39,810 --> 01:02:44,060 и след това донесе на данните от Съдържанието на този адрес. 1177 01:02:44,060 --> 01:02:49,430 Тогава конвертирате, че данните в изображение чрез преминаване в образа на UI. 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 можете да промените на климата данните from-- на снимката от една към друга. 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 Така че, ако ние превъртете надолу до мястото, където I Трябва да всъщност направи разбор на данните. 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