>> DANIEL Armendariz: Hello mindenkinek, Üdvözöljük iOS app fejlesztése
A gyors.
Én vagyok Dan Armendariz.
Én precepter számítógépes a tudomány itt az iskolában
Mérnöki és Alkalmazott Tudományok.
És gyors valójában milyen Egy igazán szép nyelv.
És van néhány terved mára.
Így az elkövetkező óra múlva megyünk nézni iOS app fejlesztés önmagában
Xcode környezetben, és ténylegesen megteremti néhány Nagyon egyszerű, nagyon egyszerű alkalmazás.
És nézte az utat, amit valóban megteszi azokat az alkalmazásokat,
és őket építeni, és ténylegesen tedd őket egy iOS eszközt.
Néhány dolog, hogy nem fogunk nézni
majd a dolgok, mint valójában, egy alkalmazás
és üzembe azt a app store.
Van egy csomó oktató, hogy az online segít, hogy oldala.
De azért is, mert az része CS50, kapsz
hogy csatlakozzon az Apple fejlesztési csapat, CS50 app fejlesztő csapat.
Ha még nem tette meg még, és Ön kapcsolatban CS50,
Én nem ajánlom, hogy csinálni, mert, hogy
az, hogy hogyan vagytok képesek létrehozni Egyes programok Xcode,
építeni őket, és ténylegesen közülük néhány az iOS eszközök
Ha valóban van a fizikai iOS készüléket.
Ha nincs fizikai iOS eszköz, amely több, mint szép.
Akkor valóban fejleszteni iOS.
És Xcode egy szimulátor, amely lehetővé teszi,
hogy az alkalmazást fellépés a számítógépen.
De ez a fajta egy ügyes dolog hogy valóban játszani, és kölcsönhatásba
az alkalmazás A tényleges eszköz.
Szóval van egy pár követelmények valójában csinálni mindezt fejlődését.
Ezek közül az egyik az, hogy a van, hogy a Mac.
Meg kell futnia 10.9.4 vagy újabb annak érdekében, hogy a fejlesztéshez a gyors.
>> Használhatja egy korábbi verzió fejlesztésére
Objective C iOS és Mac.
De ajánlom, és sok a példák, hogy mi lesz a ma,
használja 10.10 Yosemite.
Tehát ha még nem frissített, ez egy jó ürügy arra, hogy erre.
Most Xcode 6.1 a legújabb verziója Az integrált fejlesztői környezet
az Apple biztosít ingyen, hogy tudod letölteni le az App Store.
És azt ajánlom, hogy annak is a legújabb verzió.
>> Ha történetesen fut egy korábbi változatát, Xcode 5 és alatt csak
Egyszerűen nem támogatják a gyors nélkül.
És a béta verziók hat, amely is megjelent a nyár,
támogatják a gyors, de van volt egy hatalmas száma
A változások a nyelv, elég úgyhogy a kódot, hogy te
nézzük át, és hogy lehet találni az interneten
valójában nem fordul le rendesen Ezen korábbi verziói Xcode.
Tehát még egyszer, ha nem még egy fejlesztő fiók,
Azt ajánlom, menjen developer.apple.com.
Regisztrálj, hozzon létre egy fejlesztői figyelembe, és csatlakozzon a CS50 app fejlesztő csapat.
Amely biztosítja, hogy Önnek a lehetőséget fordításakor alkalmazások
és tedd őket a készülékén.
OK, így kezdjük.
A legelső dolog, fogunk tenni a
hogy valójában egy nagyon egyszerű projekt Xcode
amely lehetővé teszi, hogy be a kérelmet.
>> Tehát ha még nem rendelkezik Xcode nyitott, megy előre, és nyissa meg
és hozzon létre egy új projektet.
Egy különleges splash screen megnyílik, és kapsz
néhány opció, hogy mi el, hogy mit akar csinálni.
Csak annyit, hogy szeretne létrehozni Egy új projekt, egy új alkalmazás.
Ez az ablak jelenik meg, feltételezve, amit használ Xcode 6.1.
Most, és a időtartamát a szeminárium,
fogunk használni egyetlen nézetben alkalmazások, csak
egyfajta alapvető alkalmazása hogy ha elkezdünk.
És akkor ágaznak a saját onnan.
>> Kattintson a Tovább gombra ezen a ponton.
Most itt van egy pár dolog hogy érdemes belépni.
A termék neve a nevét a projekt.
Ebben az esetben én csak fogom hívni Seminar1
mert ez az első példa.
A szervezet neve, a Ebben az esetben csak a nevem.
Akkor természetesen változtatni hogy a saját nevét, vagy a CS50.
Szervezet azonosító, ha történetesen van egy website csak úgy
A domain név visszafordítani, com.yourname.
majd a nevét a termék automatikusan meg kell jelennie
után, hogy mivel a csomag azonosító.
>> Nyilvánvaló, hogy a nyelv, hogy mi vagyunk lesz használva a mai gyors.
Tudod, persze, használja Objective C ezért, de ma lesz gyors.
És mi most azt mondják, univerzális eszköz, ezért
hogy működik mind iPad és iPhone.
És akkor hagyjuk core adatok ellenőrizetlen tartani
A projekt viszonylag egyszerű egyelőre.
Szóval menjünk előre, és kattintson a Tovább gombra.
És ez meg fog kérdezni ahol szeretnék megmenteni.
Én csak mentse el a desktop most.
>> Rendben, így most ez az, ami történne, ha valóban nyitott Xcode.
És észre, hogy a legelső dolog, amit látni
ez felkiáltójel, hogy azt mondja, nincs aláírási identitást találtak.
Én szándékosan tette ezt a számítógépen, és én vagyok
remélve, hogy megyek képesek valóban javítani,
mert azt akarom, hogy milyen ez a ténylegesen dolgozni a saját gépünkön.
>> Menj, és kattintson fix kérdés.
Rá fog kérdezni, ha van egy meglévő Apple fejlesztői fiók.
Ez az, ahol csatlakozott a CS50 app fejlesztő csapat
Fontos, így nem csak egy app fiók,
de akkor is van a képességgel, hogy írja alá a apps
és tedd a iOS készüléket.
Ez nem-- kattintva fix kérdést nem szükséges
ha csak most fog építeni és fejleszteni a helyi,
teljes egészében a iOS szimulátorban.
>> De most megyek fejleszteni, és tedd
én iPad, melyik lesz képes sugározni is.
Szóval én nem szeretnék, hogy ténylegesen adni ezt.
És ez meg fog kérni nekem a apple ID.
Így lesz ez az.
És azt kell letölteni én jelszót, ami itt van.
Szóval adj egyetlen másodperc alatt meg úgy, és másold e, és illessze ide.
>> Hozzáadás gombra.
Meg fog kérdezni, Melyik csapat akarok csatlakozni.
Azt fogom tenni School of Engineering.
Kattintson Csatlakozzon.
Hoppá, ez a rossz.
Csináljuk ezt.
Remélhetőleg ez fog működni.
Hogy az egyik még mindig nem működik.
Kifutunk jókat itt.
OK, ez az egyik kell dolgozni.
Most zárja be ezt.
Most ismét egy iskola engineering, kattintson választani.
>> És most remélhetőleg után Pár másodperc can-- OK,
Majd visszavonja, és kérésre.
Oh ember, ez fog működni.
OK, megpróbálom a másikat.
Csináljuk ezt itt.
Élő demók nem sikerül nekem.
Lehet, hogy visszatér, hogy csak épület teljes egészében helyben,
de ez lenne a megfelelő ebben az esetben.
>> Tehát itt, míg ez valójában dolgozó, mit fogunk csinálni csak
Egy nagyon egyszerű Hello World alkalmazás.
Tehát ez Xcode.
És ha még nem látta még, hogy lehet egy kicsit félelmetes elején.
Van egy csomó táblák, van egy Sok doodads a különböző területeken.
De csak észre, hogy van Tényleg több fő összetevői
hogy ez a fejlesztői környezet.
Bal oldalon van az összes fájl hogy az az alkalmazandó a programot
vagy az adott projekt.
Mi lesz kattintással körül néhány közülük, és mi
rámutatnak a leginkább fontos is az idők során.
A jobb szélen, mi Van egy sor attribútumok.
És mindezen tulajdonságokat, ott Különböző táblákkal, az attribútumokat.
A táblák függően változik összefüggésben a fő tartalom, amely
előfordul, hogy a közepén.
Most a középső valóban azt mutatják, Ön a különböző dolgokat, például
a kód is.
Vagy lehet, hogy valóban have-- ha rákattint a storyboard, amely
van, az úton, csak egy grafikus ábrázolását a felhasználói
interfész a application-- majd az attribútumokat tartalmazó ablaktábla
A nagyon messze jobb valóban változtatni.
Most van egy pár más amit én szeretnék mutatni.
Akkor valami felfedezni körül a környezetben a saját.
De az egyik dolog, hogy már nagyon hasznosnak
van ez a gomb itt, a jobb felső sarkában az ablak.
Van ez a gomb, úgy néz ki, mint a túlsó
hagyta azt a bekezdés majd két kört, és egyfajta
Két nyíl távol egymástól.
Ha váltani a szabvány szerkesztő, amely
a bal szélen egy, az egyik ami az alapértelmezett beállítás,
és a két kör átfedő Minden más, amit valójában kap
egy dupla paneles nézet.
>> És ez valójában lesz hasznos számunkra
mikor kell kapcsolni tételek a kezelőfelületen, és a kódot.
És fogunk beszélni többet hogy csak egy pillanatra.
De észre, hogy ha kap még több táblára, mint ez,
egyszerűsítheti a nézetet, csak Egy kicsit kattintva vissza
Ön egyetlen szerkesztő.
Eddig jó.
Tehát alapvetően mi van a kódot A bal tulajdonít a jobb oldalon,
és bármi is legyen dolgozunk itt a város központjában található.
>> Tehát itt már rákattintott A fő storyboard.
És a storyboard, Ismét egy módja, Xcode
hogy ténylegesen hozd létre a interfész segítségével csak fogd és vidd
technikákat.
És így mi nagyon első kérelmet ennek
Pontosan mit fogunk csinálni.
Fogunk menj le a nagyon messze jobb alsó részén
A képernyő, amely tartalmaz a különböző felhasználói elemek
hogy akkor majd kattintson és húzza hogy hozza létre a felhasználói felület.
>> Most mindezen elemeket nevezzük megtekintés
mert a kínálat valamilyen nézetet.
Van egy kép nézetben, Például, hogy valóban azt mutatják,
Egy képet a felhasználói felület.
Van egy asztal érdekében valóban azt mutatják, egy asztal.
Így tovább és így tovább.
Van egy sokféle nézetek, hogy akkor válasszon itt.
Tehát csak most megyünk hogy keressen egy címkét.
Tudod csak lapozhat az összes listák ott van.
De ott van a keresési bár legalján
hogy megkönnyíti azonosítani specifikus nézetek, hogy tulajdonképpen
szeretnénk, hogy húzza be a felhasználói felület.
>> Megtaláltam a címkét.
Megyek húzza ide, közvetlenül ra a minta-alkalmazás.
Pont ott középen jól néz ki.
És fogok írja: "Hello World!"
Enter leütése.
Most van egy címkét.
Nem úgy néz ki, mintha központú nagyon helyesen.
Így tudok próbálja meg újra középre.
Szerencsére hogy felkínálja vezeti, hogy a dolgok sokkal könnyebb.
Én megpróbálom lefordítani.
Remélhetőleg valóban működik itt.
És ha nem, akkor egy pillanat alatt akkor valójában jelenik meg a iPad.
Pontosan itt.
Ott van.
>> OK, így ez az.
Végeztünk.
Hoztuk létre mi nagyon első kérelmet.
Most nyilván ez nem csinál semmit.
Ez csak egy címke.
Nincs összefüggés A felhasználói felület és a kód.
Tehát, ha valóban akart hogy létrehozza ezt a kapcsolatot,
ha valóban akarta, hogy legyen egyfajta közötti kommunikáció a elemek
hogy létezik a képernyőn, és a kódot, hogy
lehetővé teszi számunkra, hogy ellenőrizzék azokat az elemeket, majd
mi valójában szükség nézd meg a kód is.
>> Tehát ez az, amit a neve ViewController.swift.
És, különösen a Az első néhány programok,
ez lesz valami a nagy részét a kódot, amit enter--
lesz ebben a dokumentumban találhatók.
Van egy csomó dolog ez itt eddig, igaz?
Van import UI kit osztály, felülbírálja, [? funk,?] mindezen különböző dolgokat.
És ez nem teljesen világos, hogy mi van az, hogy mindez azt jelenti.
Szóval vessünk egy lépést hátrálni a Xcode egy kicsit
és nézd meg a nyelv maga, gyors.
>> Tehát a gyors, ez volt a tervezés és fejlesztés
Apple körülbelül négy év Tudomásom.
És van néhány funkció róla, hogy tényleg szép.
Először is, ez összeállított nyelv, akárcsak C.
Tehát előbb meg kell fordítsd le, és futtassa,
Mielőtt ténylegesen lefuttatjuk, hogy az eredmények.
De van, ellentétben C, interaktív kérni, hogy akkor futtathatod
és írja tetszőleges parancsokat.
És nagyon hasonlít egy JavaScript konzol, amely lehet, hogy ismeri már,
ez valójában értékeli azokat parancsokat, és az Ön számára a kimenetet.
És ők már akkor is tett hogy a következő szintre
és hogy már létre valamit nevű játszóterek Xcode
amelyek lehetővé teszik, hogy vizuálisan dolgozni kódot.
És mi valóban látni néhány példát Az, hogy csak egy kicsit.
Ez alapján a C. C megalapozza ez, mert minden a fordítóprogramok
hozzon létre kódot ki a C és a létre az objektumot kódot belőle.
De ez tényleg részvények viszonylag kevés szintaxis.
Úgy fog kinézni, meglehetősen eltérő.
Lesznek bizonyos hasonlóságok.
De lesznek néhány különbség
képest, mondjuk, JavaScript vagy PHP.
És mi pont ezeket a out csak egy pillanatra.
>> Most az egyik legnagyobb dolog, mintegy gyors ez szép
az, hogy, különösen összehasonlítva a C, ez azt jelentette, hogy biztonságos legyen.
Minden, ami alatt azt értjük, hogy Legyen nagyon erősen típusos ben.
Valójában ez szinte bosszantó az első, amikor először
kezdeni dolgozni gyors, hogy milyen sokkal érvényesíti típusú mindenhol.
Bármi, ami egy húr kell maradnia a húr.
Ez nagyon nehéz rendezni a convert ez vagy kényszeríteni azt valamilyen más formában.
>> És újra, mi megmutatjuk példa erre.
De végül rájönnek, hogy Ez alatt azt értjük, hogy megvédjen téged,
és akkor értem a kódot, a zuhanna valami szörnyű módon, amikor
Van valami össze nem illő típus.
És ismét dolgozni vele.
Mert ez lesz frusztráló első ahogy megpróbálja kitalálni, hogy miért éppen
kapsz ez a szokatlan hiba foglalkozó típusok.
De érdemes lesz belőle a végén.
>> Ez nem foglalkozik az automatikus memória kezelése,
így már nem igaz kell kezelni a dolgokat
mint a malloc és free és minden Az efféle dolgokat.
És ez is tervezték általánosságokat.
Tehát miközben tudjuk használni az Xcode a hozzon létre iOS alkalmazások és Mac alkalmazásokat,
mi is csak használja azt mint egy programozási nyelv.
És így tudjuk használni sort A PHP helyett vagy helyett
A Python hogy ténylegesen gyorsan feldolgozni és folyamata
Egyes adatok, hogy mi van a számítógéphez.
>> Ez egy széles számos modern funkciók, Opcionális, mutability,
generikumok, bezárások, és egy csomó ezt cucc akkor lehet, hogy nem ismeri.
És ez csak afféle szerencsétlen része a nyelvnek, hogy ezek közül néhány
egyfajta futurisztikus, modern elemek tartalmazza belül a elemek
olyan mélyen beivódott, hogy én valóban lesz meg kell tanítani, CS50.5 egy kicsit.
>> Meg kell tanulnunk egy kicsit néhány funkciót annak érdekében,
hogy valóban megértsék, mi folyik , és így nézd kódot
és nem érzem teljesen elveszett.
És látni fogod, mire gondolok az, hogy mindössze egy perc alatt.
OK, így let's-- elég ez a egyfajta elméleti fejtegetés.
Nézzük valóban nézd meg már az első gyors programot.
Ez egy sor kód.
14. sor itt, hogy íratja l n helló CS50.
>> Szóval van egy pár dolog, ami nagyon különböző erről képest
a dolog, amit lehet, használt származó C, például.
Ezek közül az egyik, hogy nincs intmain, nincs tartalmazzák a rész,
ott sem ez az extra cucc.
A többek között, mint a normál I / O, mint a könyvtárak
hogy ténylegesen biztosítani a alap szolgáltatás a nyelvet,
automatikusan bekerülnek az része SWIFT standard könyvtár
és hogy a program automatikusan importálja.
Nem kell csinálni hogy a behozatali kézzel.
>> Intmain nem létezik, mert A fő belépési pont a kódot
ténylegesen a a kód elején.
Tehát minden olyan kódot, kezdve az elején
ténylegesen végre kell hajtani az elején.
Szóval ez tényleg nagyban leegyszerűsíti.
Figyeljük meg azt is, hogy nincs pontosvessző.
Nincs pontosvessző ezen a nyelven.
Ön tesz nyilatkozatot az egyes vonal
majd a következő sorban képviseli a másik nyilatkozatot.
Ha azt akarjuk, hogy mulitiple nyilatkozatok online
akkor már külön is pontosvessző.
De a legtöbb, A jó stílus, mi vagyunk
soha nem fog látni pontosvessző számára alkalmazásában elválasztó nyilatkozatok
A gyors.
Szóval hogyan ez tényleg működik?
Nos, nagyon hasonlít a C vagyunk valóban meg kell fordítani ezt.
És így nem tehetünk, hogy segítségével gyors c, majd 1.swift.
Majd miután pár perc Ez lefordítja
és akkor tudok futni elemet egy.
És mint azt mondjuk, "Helló CS50."
Félelmetes, így megyünk.
Ott lesz az első hello world programot.
Térjünk át a két számot.
>> Most this-- ez megváltozott kissé, mert míg általában akkor
do-- valójában mindig kell neked összeállítani egy gyors alkalmazásával, mielőtt
a ténylegesen megtett it-- egy A nagy jellegét
hogy utaltam előtt az volt, hogy gyors is lehet használni a sort
Az ál-értelmező üzemmódban van valójában, mint tolmács.
De ez mit fog csinálni ott van van, sőt, a gyors alkalmazásával
hogy lehet futtatni.
>> Így például, ha csak típus gyors itt, mi fog történni
az, hogy kapsz egy prompt.
És beírhatja a gyors kódot, nyomtassa hello, és futtatni.
És ez valóban print-- Nos, ez nem a nyomtató ebben az esetben
mert kiírt központú ki, ami nem látható itt.
De igazából nem tud működni.
És így ebben az esetben, én csak fogja használni ezt a szkriptet.
És én valóban ezt a kódot is.
Tehát az is, hogy én valóban futtatni ez lesz kicsit más,
De látni fogod azt, hogy csak egy pillanatra.
Most, ebben az esetben mit fogunk tennie, hogy először meghatározza a változó.
Tehát ez hogyan határozzuk meg a változó gyors,
van használjuk a let kulcsszót, majd a változó nevét,
majd adunk néhány inicializálása adatok adott.
Tehát ebben az esetben mi meghatározása állandó nevű nevet,
és fogunk használni, hogy a A végeredményként adódó nyomtatási sorban
legalján, helló nevét.
>> Most észre, hogy ahelyett% s, tudjuk párosítani a neve ennek a
változó / (), és képes legyen összefűzi a tartalma
kifejezést ebbe a húr.
Most eltérően C, string egy tényleges valós típusú gyors.
És ez így ül mellett ints és mellett
páros nagyon könnyen és természetesen képest
hogy néhány, a másik nyelveken, amit láttam.
Szóval ez ténylegesen működik mint amit elvár.
>> Tudok futni 2.swift.
És azt látjuk, hogy a nevem valóban illesztett a, "Hello Dan."
OK, félelmetes.
Áttérve a hármas szám.
Most egy kicsit A kegyes hazugság, hogy én
azt mondta, úgy, hogy kijelentjük változók volt, hogy a let kulcsszó.
Ahányszor csak lehetséges tudsz tenni kívánja használni hagyja, mert hogy ez mit
ez határozza meg állandó.
És, hogy elmondja gyors, amit tud optimalizálni a sebességet, az alkalmazás
mert tudja, hogy ez változó nem fog megváltozni.
>> Tehát értékelje alaposan ha fogsz használni
változó a céljából megváltoztassák.
És ha meg akarsz hozzon létre egy változót csak
hogy tartsa néhány adatot, és ez az valójában nem fog megváltozni.
Tehát ez a koncepció állandóság, Valójában nem fog megváltozni,
egy fontos még akkor is, messze, mint meghatározó változók.
Tehát itt definiált a nevet, hagyja neve, és ebben az esetben
ez egy állandó, azaz a típus húr, és ez egyenlő Dan.
>> Tehát míg a technika változat, infers-- és "ez"
Úgy értem swift-- gyors ebből arra következtet, hogy milyen típusú adatok
hogy már belépett a változó.
Ebben az esetben, mi lehet explicit.
Szóval akkor a neve ennek a változó nevét, majd a vastagbélben.
És a kettőspont után mi is adja meg, milyen adatokat.
Így már nem ez int nevét vagy karakterlánc nevét, vagy valami ilyesmi.
De ahelyett, hogy hagyja a címkét, mi vagyunk meghatározása-e vagy sem
ez állandó vagy változó, neve követ,
majd a típus adott esetben.
>> Tehát ebben az esetben mi meghatározása ez a név egy húr.
Azt mondjuk Dan.
És most már egy másik változó, Ebben az esetben hívják címkét.
De észre, hogy ez előtaggal a var kulcsszó.
A var kulcsszó segítségével hogy ez a változó
megváltoztatható egy későbbi pontján ideje, valahol a kódban
tudjuk valóban változtatni, és ez nem ad nekünk adott hibát.
>> Meg tudjuk csinálni szabvány concatenating üzemeltetője itt a plusz jelre
hogy valójában hozzá a nevét ezt a fonalat.
És akkor ki is nyomtathatja, mint láttuk, csak egy pillanattal ezelőtt.
Most mondjuk, hogy szeretnénk létrehozni egy változót
de nem akarod inicializálni, hogy még.
Ön még nem akarja tegyen adatok.
Hát meg kell mondani gyors, milyen típusú adatok
lesz, mielőtt aktuálisan meghatározzák, hogy megfelelő.
>> Tehát ebben az esetben, amikor már definiált változó nevű minőségű kell lennünk
egyértelműen beszél a típusát, mert ez nem következik csak keres
A inicializált adat Az Ön által megadott hozzá.
Ez ad nekünk egy hiba, ha csak típus var fokozat, például,
mert nincs típus ezért.
Tehát grade = 100.
Annak érdekében, hogy a 100 egy egész szám, azt illik nagyon szépen bele.
Ez továbbra is működni fog.
Láthatjuk, hogyan akkor összefűzheti ezt.
Most lehet, hogy kísértés, ha valóban
akarta összefűzni évfolyam másik karakterláncot,
egy másik szöveget, hogy akkor csak használni, hogy ugyanazt összefűző operátor.
És ami általában igaz.
De a gyors nem teszi lehetővé, hogy implicit módosításához típusú adatokat.
Tehát ebben az esetben, ez a vonal, 25, sikertelen lesz
mert grade egy integer és nem karaktersorozat.
És így van egy mismatch be a típust.
Szóval van, hogy explicit, ha meg akarja változtatni ezeket az adatokat,
ha azt szeretné, hogy kényszerítsen erre adatok egy más típusú
és azt mondják, OK, azt akarom, hogy ez a fokozat, amely egy egész szám,
és átalakítani, hogy egy húr.
>> Teszek egy tőke s karakterlánc összes típusú, észre fogod venni, aktiváljuk,
Int, Double, String, így tovább és így tovább.
Mindegyik tőkésített csak azért, hogy a dolgok könnyebb.
És azt fogjuk mondani kihasználni Karakterlánc át bele minőségű.
És ez létre fog hozni egy karakterlánc ki, hogy egész.
És akkor mi is összefűzi A két nagyon szépen.
Bármilyen kérdése van ez a cucc eddig?
Rendben, nézzük eke egészen a négyes számú.
>> Most beszéljünk néhány fejlettebb struktúrákat, mint a tömbök és hurkok.
És ellentétben C, tömbök gyors nem képviseli mutatók.
Eligazítást gyors, bár létezik, az úgynevezett
mint a nem biztonságos mutatók, vagy néhány hasonló típusú, mint ez,
ők nincsenek kitéve a szokásos.
Így nagyon nehéz lesz Önnek manipulálni
A memóriát közvetlenül a számítógép.
>> Tehát tömbök csak egy típusú adatokat.
És ők hivatkozott segítségével ezt a fajta Az alapfelszereltség szögletes zárójel jelölés
hogy már látott.
De ha tényleg akar határozzák meg a típus egy változó
tömbként néhány adott típusú, akkor
tedd azt írja, szögletes zárójelben.
Szóval mit mondok itt az, hogy Hozok létre nevű változót
fokozat int típusú tömb.
És én beállítás, ami azonos bizonyos inicializált adat, ami ebben az esetben
100, 0, 90, 85, ami csak egy gyűjtemény tetszőleges fokozat van.
Most ebben az esetben csak tudtam, emlékszem, távolítsa el a típus,
és képes lenne arra következtetni, hogy alapján az inicializált adat.
De ha én el ezt, és Kellett beállítani, hogy később,
akkor azt kell róla hogy én a típus van.
Rendben, menjünk együtt.
Tehát can-- tömbök ad meg nekünk a különböző
A módszerek segítségével, hogy pont jelölése A Most valószínűleg ismeri.
Így grades.count, például, azt mondja, pontosan száma
elemek, amelyek Az ezen az array.
>> Ha azt szeretnénk, hogy adjunk additional-- most észre, hogy ez egy var
és nem-- ez egy változó és nem állandó, amely
azt jelenti, hogy meg tudom változtatni a tartalmát Ennek a tömbnek, tudok hozzá objektumokat is.
De nem tudok csak mondani fokozat majd szögletes zárójelben
négy, mert ez lesz a határokat hiba ebben az esetben.
Ha azt szeretnénk, hogy valóban változtatni A mérete tömb,
Azt kell használni a pont append módszer adjunk valamit a legvégén is.
Tudom, azonban a változás az egyes indexek.
>> Így tudtam használni fokozat majd szögletes zárójelek
nulla kezelni ezt az első index és így tovább, mint amit általában elvárható.
És én is tegyék ugyanezt, hogy ténylegesen megkapják az adatokat, hogy is.
Most van még valami divatos módszer Az ezt, fokozat, plusz az egyenlők
majd egy másik index, amely append--
vagy sem egy másik index-- de egy másik lista, amely
hozzáfűzi, hogy a listát a hátsó fokozat.
És a fokozatok tartalmazhat aztán ennyi.
De ez a fajta egy extra dolog, hogy én csak megmutatja a móka kedvéért.
>> Most van egy hurok.
És ez a kezdete, ahol a dolgok kezdenek változtatni egy kicsit.
Figyeljük meg, hogy ez a for ciklus eltér a hurkok C.
Most fogom megjegyezni, hogy A hurkok SWIFT
kell tenni, hogy néz ki a hurkot C, de van egy csomó hasznos konstrukciók
hogy lényegében nincs szükség hogy a var i értéke 0 pontosvessző i
kisebb, mint bizonyos hossz, így tovább, és így tovább, ugye?
És ez a konstrukció nem csak egy közülük.
>> Az index, index új változó, ebben az esetben, a tartományban.
És mit mondok, hogy van közötti tartományban 0 egészen annak
de nem beleértve grades.count.
Tehát ez a pont pont kevesebb, mint jel a
egy sor értékek nullától kezdve egészen a grades.count mínusz 1.
Van egy külön üzemeltető, hogy létezik,
amely dot dot dot, amely azt jelenti, hogy akarom tartományban nulla
kategóriákba számít inclusive.
>> De ebben az esetben, mivel ezek a tömbök nulla index, akkor természetesen
nem akar menni a maximális évfolyamok száma.
Tudom összefoglalni a fokozat, ahogy lehet, számíthat, és kimeneti összes ezt a cuccot.
OK, a továbblépés.
Most beszéljünk funkciókat.
Annak érdekében, hogy meghatározza a függvény használja a funk kulcsszó.
És ismét, a Swift meg kell legyen nagyon óvatos azokkal a típusokkal.
Az Ön által az ez paraméterek meghatározásával, például,
A paraméter nevét és majd Colin, az adatok típusa
hogy vársz, hogy paraméter elfogadni.
>> Tehát ebben az esetben van egy nevezett funkció nyomtatási minőségű száma.
Elfogadja, változó nevű Gradebook, vagy inkább nevezett paraméter Gradebook.
És várjuk, hogy Gradebook hogy egy sor egész számok.
Ha ez Gradebook üres, fogunk nyomtatni egy dolog.
Különben kiírja a számát évfolyamok, hogy ez valójában.
>> Most, ha azt akarjuk, hogy visszatérjen Néhány értéket, majd az út
hogy módosítsa ezt a definíciót hogy ténylegesen használni ezt a nyilat kulcsszó,
vagy hogy ezt a nyilat jelölő.
Tehát itt fogunk definiálni olyan függvény átlag.
Megyünk, hogy elfogadja a fenti számok.
És megyünk vissza a kettős, amely remélhetőleg
átlaga ebben a tömbben.
És annak érdekében, hogy ezt megtegye, annak érdekében, hogy ténylegesen kiszámolják ez az átlag,
mi lesz egy összeget, és mi akaratát Természetesen Összefoglalva minden tárgy
ezen belül tömb.
>> Figyeljük meg, hogy van egy új stílusa a hurok itt.
Nem kell, hogy egyértelműen beszél iterálás minden elemét,
de mi inkább azt mondják, a évfolyam és Gradebook, jelentése
hogy minden egyes elem, hogy már ebben,
biztosítani, hogy pont ez a nevű változó minőségű.
És akarok valamit csinálni.
Így fogok összefoglalni az összes adat és valóban visszatér a kettős részlege.
>> Most észre megint itt van a fogalmát egészosztás a Swift.
Ha azt szeretnénk, hogy megduplázza divízió mert azt szeretnénk tizedessel,
akkor meg kell lennie explicit, Nem csak arról szól, egyik oldalon,
mert nem engedem, kényszerített adatok mindkét oldalon ebben,
akkor ténylegesen természetesen mindkét oldalán a páros
hogy te nagyon explicit ügyelve
hogy csinálsz dupla részlege.
>> Menjünk tovább.
Szóval, ha tényleg akar accept-- így ebben a konkrét példában,
ez még mindig egy parancs vonal alapú alkalmazás.
És még csak most kezdünk látni néhány A korlátozások a fiatal nyelven
hogy bár tudjuk eléréséhez érvek segítségével
ez a process.arguments, ez még mindig nem feltétlenül a legtisztább
dolog, amit valaha láttunk.
De alapvetően azt javasoljuk, a fajta nézd meg ezt a kódot
és próbálja meg kitalálni, pontosan mi is folyik itt.
>> Lényegében mi történik az, hogy Mi vigyázunk a fenti érvek
és arra kényszerítsék őket egészek, majd mi vagyunk
fogja használni, hogy olyan módon, hogy nyomtassa out átlaga minden kedves fokozat.
Lépjünk tovább.
Most van egy másik típusú data-- Egy másik adat helyett a típus tömbök
nevű szótárak, amelyek nagyon hasonló hash táblák vagy hash térképek
és hasonlóak is, hogy PHP asszociatív tömböket.
Így az elképzelésük A kulcsokat és értékeket.
>> És ők is definiálható a ez a szögletes zárójel jelölést,
de a különbség az, hogy szótárak
belsejében a szögletes zárójel, kettőspont.
És a vastagbél elválasztja az adatokat írja, hogy a kulcs és az érték.
Tehát ebben az esetben, fogok létrehozni szótárt elfogadni bizonyos típusokat.
És ez lesz string típusú: int,
ami azt jelenti, hogy minden, a kulcsok lesznek vonósok,
és az összes az értékeket az ezen kulcsok lesznek egészek.
>> Ez azt jelenti, hogy én is majd hivatkozni a konkrét adatok
Azt akarom, hogy használja ezeket a gombokat, hanem mint a numerikus indexek, mint én
lenne egy normál tömb.
Most lássuk, van Az egyik fontos dolog
hogy én is szeretném megemlíteni, mintegy az adott kódrészletet.
És ez az, hogy van más típusú adatok,
vagy inkább itt van ez a gondolata adatok, amelyek
tartalmazott Swift nevű Opcionális.
>> És mi Opcionális azt jelenti, hogy elismeri azt a tényt,
hogy néha nem fogod hogy az adatokat, hogy tulajdonképpen számíthat.
És akkor mi van értek ezen ez-- nézzük vessünk egy pillantást erre kódrészletét
amely végigmegy a Kibocsátó összes érvek, hogy adtak át ezt a kódot
és megpróbálja átalakítani őket, megpróbálja hogy szét a különböző húrok,
mert elfogadja a nagyon adott típusú érvelés.
És akkor fog próbálni, hogy kényszerítsen a húrok, hogy a számoknak
a egészek, amelyek fokozat, hogy tudok majd kiszámítani.
>> Tehát alapvetően fogok használja ezt a split függvény, hogy
belül létezik Swift standard könyvtár.
Megyek át bele a húr, hogy szeretnék megosztani.
És akkor használja ezt fajta funky szintaxist, amely
Nem tudom, ha mi is megtudhatod eljutni, de talán annyi, hogy
valóban pontosan meghatároznák karakter, amit kívánt osztott meg.
Mit is jelent ez valójában kinézni?
Vessünk egy pillantást ténylegesen fut a kód.
>> Így például, mondjuk én a kvízt, és kaptam 50 e.
És van egy PSETs és Kaptam egy száz rajta.
És én got-- van egy másik kvízt, és kaptam egy 40 rajta.
Elütöttem Enter, és végül az, ami fog történni, hogy mit csinál
vesz ezen paraméterek, hasító A húrok ezeken kettőspont,
elismerve, hogy van két elem mindegyik,
és ez alapvetően hogy nyomon követhetőek az egyes.
>> Szóval van a szótáramban egy kvíz, melynek érték képviseli a szám 50,
Van egy PSET, aminek értéke 100, és a kvíz amely értéke 40.
Aztán később a kódot I valójában átlagosan az összes ilyen értékek
és kiírja az összes kulcsait hogy az adott szótárban.
De ez fontos így észre
mi történik, hogy mi akarok, hogy ez a sztring
és osztott meg ezen a karaktert, amit tehetünk ismét a felosztás
funkciót használva ez a fajta Érdekes szintaxist, ami létezik itt.
>> Csak most azt feltételezik, hogy ez rendben van.
Majd nézd meg többet ez az csak egy kis időre.
De most van egy érdekes szempont, hogy mi valójában
szeretném kipróbálni, hogy konvertálni a string egész.
De más nyelveken mi történhet a
hogy mi lenne valószínűleg megpróbálja csinálni, és akár vissza
valamiféle sentinel értéket, mint a negatív
vagy talán egy null, vagy valami ilyesmi.
Vagy talán ez csak hibát okozott.
És mi lett volna majd fogni, hogy a hiba
majd próbálja meg valamit a tényen alapul,
Ez az átszámítás egészre nem sikerült.
Ez az, ahol ez a gondolat Az Opcionális jön.
Akkor valóban létrehoznak egy olyan adattípust, hogy egy int kérdőjel, például.
Ez azt jelenti, hogy ezt az egész van, sőt, választható.
És mi fog történni, hogy olykor tartalmaznak egy egész, vagy nincs.
Lehet, sőt, ez a másik ötlete, teljesen nevű Nill.
Amelyben ez azt jelenti, hogy van nincs értéke nincs erre.
Ez nem is nulla, csak nincs értéke.
Nincs semmi értéket képviselt.
>> És ez az, amit ez a 71-es vonalon csinál.
Az, hogy azt mondja, hogy én szeretném kipróbálni, hogy be értéket,
változó nevű minőségű, egyenlő a átváltott karakterláncot int.
Szóval vettem ezt a szöveget, ez az első elemeit,
vagy inkább a második komponensek, mert ez
nulla indexelt, ennek húr, hogy én már szét.
És akarom váltani hogy egy egész szám.
De ez nem mindig jár el általában, mert elképzelni
mi lenne, ha ahelyett, típus Számos, az I. típusú természetesen, mint asdf.
>> Meg fog sikerülni.
Valójában nem lesz képes átalakítani, hogy egy egész
ahogy várnánk.
Tehát nem rúg ki valamilyen hibát,
mi ez az ötlet egy opcionális.
És ez azt jelenti, hogy a ez a kérdőjel azt mondhatom,
OK, lehetséges, hogy tudok venni Ennek át azt egy int,
és tedd be egy változó, amely egyben egy int.
Ha igen, akkor ez azt jelenti hogy ez volt sikeres
és ez az első része A blokk továbbra is.
>> Egyébként ez nem sikerült.
Nincs értelme a grade-- vagy inkább nincs értéke a meglévő,
és én valóban meg kell próbálnunk kezelni ezt a hibaüzenetet.
Fogsz látni ezt kérdőjel minden alkalommal
A Swift és például kódját Swift.
És valójában a Nill üzemeltető, ez a fajta A kérdőjel, a Opcionális része,
lesz valószínűleg az egyik A nehezebb dolgokat
a fajta tekerje a fejét ahogy valóban dolgozni vele.
>> Talán van értelme most.
És valóban, amikor én voltam bemutatkozás kód,
természetesen megértettem mi történik,
de még mindig fogott velem meglepetés minden olyan gyakran
ha azt találjuk, hogy Egyes adatok valójában
nulla változat, opcionális változat Az adatok vártam.
Tehát csak észre, hogy ha Van egy opcionális verzió
meg kell kicsomagolni, hogy adatokat ebben a rovatban.
>> Szóval ez a fajta, mint én-- képzeld el, ha van egy doboz, és benne valamit.
És mit kell csinálni van feltenni a kérdést,
lehetséges, hogy ez a készülék rendelkezik jelenleg tartalmazza azokat az adatokat, hogy én keresek?
Ha igen, akkor húzza az adatokat, és tedd be ezt a változót meglévő.
Ha nem, akkor én csak azt kell figyelmen kívül hagyják a doboz tartalma
Összesen mert Szó szerint nem tartalmaz semmit.
>> Bármilyen kérdése van ez?
OK, menjünk el ezt fajta parancssor alapú dolog,
és elkezdi nézi néhány, a technológia
hogy Xcode nyújt nekünk formájában játszóterek.
Szóval van egy csomó képesség itt Swift.
És ha nyit Xcode és megkérdezi, hogy mit szeretne csinálni,
akkor nyit a játszótéren és csak a játék körül
sok különböző struktúrák és szempontok a nyelven
mielőtt még kezdetét megható Az iOS SDK, vagy a Mac SDK.
>> Tehát ebben az esetben, mondjuk, hogy én have-- Van egy viszonylag kitalált példa
itt, de tartsatok velem mi sort A munka révén ezt a példát.
Tegyük fel, hogy van, hogy sokat A kitevő egy fix érték,
mint tudjuk, hogy mi lesz szüksége, hogy nem sok téren hatáskörök, például.
Így fogunk, hogy néhány érték x, megyünk Square,
megyünk, hogy néhány érték y és megyünk főtéren.
Így tovább és így tovább.
>> Most talán tényleg csak hozzon létre egy ereje 2 funkció, ugye?
Szóval mi lenne létrehozni egy 2-hatvány függvény.
Majd elfogadom kettős.
Majd output-- vagy mi vissza a double típus.
Elvisszük ezt az eredményt és majd kétszer
amit valójában, hogy az eredmények, amelyek volt az előkészületek ahhoz, hogy értéke egy,
és szorozza meg x.
Tehát lényegében már x-szer x itt.
>> És akkor tudok majd, ahogy azon is számítunk, hogy ezt, futni ereje 2,
biztosítani kell, hogy bizonyos adatokat, szeretem 2.0.
És megkapjuk, hogy az itt közölt eredmények 4.0.
Fuss ereje 2 3.2 és mi kap, hogy az eredményünk, 10.24.
Eddig jó, ugye?
Most arra gondoltunk, nos, OK.
Most valóban meg kell sokat hatásköre 3.
Úgyhogy Copy Paste mindezt kódot, nevének megváltoztatása azt a funkciót,
ereje 2 hatalomra 3, és mindent ugyanaz lesz, kivéve ezt az értéket
Itt, ebben a tartományban, 1 ... 2.
>> Tehát ahelyett hogy Ez a hurok két alkalommal,
Azt akarom, hogy ismételje meg ezt a loop háromszor.
Szóval én csak változtatni, hogy értéket 1 3-- vagy inkább 2-3.
Tehát még egyszer ugyanazt a kódot, ez az egyetlen változás.
Most ez is működik.
Power of 3 vannak egyes értéke 2.
Kapunk 8.
Tehát 2 hatványával.
És 3.2 cubed van 32,768.
És eddig jó, ugye?
De remélhetőleg ez egy kicsit kis piros zászló az Ön számára
hogy most már van Egyes párhuzamos kódot
kivéve egyes nagyon csekély változik az egyik a másikra.
Szóval van valamilyen módon, hogy mi képes lehet egyszerűsíteni
ezt a problémát, ahol mi is valójában, futásidőben, kitalálni valami,
ad meg nekünk néhány funkció, amely Pontosan a hatalom, hogy szeretnénk.
>> És itt van ez a gondolata bezárások, ami nagyon, nagyon
fontos keretében Swift, és sok más nyelven is.
De valószínűleg látni fogja régen inkább Swift
mert beágyazott nyelven belül
mint akkor más továbbá a modern nyelvek.
Tehát az ötlet egy bezárása ez, az, hogy
Lehet egy funkciót, ami azt jelentette, hogy hogy egy általános funkciója, egy általános teljesítménye
A funkció.
>> És ez a funkció nem fog elfogadni ez az exponens, hogy valójában
szeretnénk létrehozni.
Így például, az első Például, szerettünk volna egy ereje 2.
Szóval mi lenne energiával ellátni a és majd zárójelben a 2..
És most vette észre, mi ez valójában visszatér.
Ez az input egy alapozó hívott y hogy egy egész szám,
és visszatér az őrült keres dolog parentheses-- zárójelben
kétágyas és a nyíl kétszer.
>> Ez azt jelenti, hogy én vagyok fog visszatérni a funkciót.
Én nem tér vissza Más típusú adatok, én vagyok
sőt visszatérő függvény amely ezt a paramétert, hogy
elfogadja a kettős, mint input és kimenetek kettős visszatérési értékként.
És ennek eredményeként, mert most hívtam erejét, átadva néhány érték y,
és hozok létre ezt a másik function-- észreveszed, hogy van
Egy másik funkció, amit most létrehozott belsejében this-- mit csinálok
A tudok majd változtatni ez az érték, hogy az egyik
értéke, hogy én megváltozott 2-3, azt teszik most y.
>> És ez továbbra is fennáll.
Így minden alkalommal, hogy hívom teljesítmény A lényegében mi történik
az, hogy kapok vissza a funkciót.
Figyeljük meg, hogy itt van, amit meghatározott egy új változó nevű téren.
Állítottam, hogy egyenlő ereje, amennyiben ez az érték 2 és erejét.
És mi ez a visszatért a funkciót.
Tehát téren, a változó négyzet, most a típus függvényében
amely this-- hoppá, felfelé a kis bit--, hogy van ez az aláírás,
elfogadni egy dupla és kimeneti kettős.
>> Tehát most mit tettem az én már lényegében
létre olyan függvény téren, hogy elfogad bármilyen értéket, és főtéren.
Láthatjuk, hogy mi történik itt.
Square 3 például azt jelenti, megyek hogy a 3-at és hasábot is.
Tehát pontosan hogyan is működik ez?
Amikor elmegyek erejét 2-- amikor pass 2 ebbe a hatalom a funkciót,
ez a változó y értéke benépesített, hogy a 2 értéket.
És ez a fajta a memóriában.
Hogy a fajta, mint tartott állami valahol a számítógépen,
mi nem igazán érdekel, hogy vagy amennyiben ezen a ponton.
>> De vissza ezt a funkciót nevű exponentiate.
És ismét, hogy nem igazán számít mi ezt a funkciót nevezik,
tudjuk igazán nevezném semmit, hogy elfogadja a dupla és visszaad egy dupla,
de ezt az értéket használja y belsejébe.
Tehát annak ellenére, hogy ezt a funkciót, ez a exponentiater funkciót, ami
visszakerült vissza a változó, hogy hívtam téren,
azt a benne található ez a fogalom, amit y volt.
És felejtette el.
>> Így minden alkalommal hívom ezt a funkciót, hogy most hívott téren, akkor ez a.
De ez azt is jelenti, hogy én is hozzon létre egy másik változó segítségével
egy másik hatalom.
Szóval lehet létrehozni egy kockát változóban Például nyújt hozzá ereje 3.
Most kocka valóban némi érték és kocka, és küldje vissza.
Tehát láthatjuk, hogy kapok érték 8 belőle.
>> De ez az érték y nem megváltozott, mert ők
tartott egyfajta független változók.
Ők egyfajta tartott független terek memória.
Tehát kocka mindig van x hogy a hatalom a 3.
És téren mindig van x hogy a hatalom a 2, ami
azt jelenti, hogy a tér mindig négyzetszámot, ahogy elvárják.
És cube mindig kockára vágott számokat, ahogy elvárják.
Ez azt is jelenti, hogy néha akkor kapunk valami funky keres szintaxis
ahol van ereje a nagyon A képernyő alján van, teljesítménye 5.
És adja át az eredménybe.
Ezt nevezed funkciót, ami visszakerült a 4-es számú.
És akkor mi alapvetően ez a 4, hogy a teljesítmény ötödik,
látjuk az eredményesség.
Velem eddig?
>> Így ez az ötlet hívják bezárását, mert amit te alapvetően csinál
a mi külvilágtól Egyes adatok into-- sort
Falazó ezen adatok egy függvény, és mi vagyunk
hogy képes újra ezt a funkciót.
Most ez a szintaxis bár lehet ténylegesen egyszerűsíteni kell egy nagy összeget.
És van sok lehetőséggel A Swift esetében ez az egyszerűsítés.
És ez milyen a továbbiaké valóban nézd meg.
Tehát 7b például, mi ezt pontosan ugyanazt a kódot.
>> De most inkább valójában egy függvény definiálása
belsejében ez a hatalom működni, és adja meg a nevét,
majd visszatér a név Az, hogy a funkció, amely
akkor használják részeként Ez a lezárás helyett vagyunk
csak úgy, hogy egyszerűsítik.
Nem kell ezt a funkciót meg kell nevezni.
Tehát ez a koncepció egy névtelen függvény, ahol tudunk majd
elfogadom a bemenet, a zárójelben van, Az x változó, ami a típusú kettős.
>> Megyünk vissza a típusú kettős.
És akkor a kulcsszó, n, Az elején ez a funkció.
Tehát észre, hogy mindez belül zárójelek
és mi meghatároz egy névtelen függvény itt.
Csak egy egyszerűbb módja meghatározó pontosan ugyanaz a dolog.
OK?
De várj, Swift valóban lehetővé teszi számunkra, továbblépni és egyszerűsítése még,
mert valóban nem így érdekel, hogy ez a paraméter
elemzi különösebb dolog.
Ez igazán nevezhető semmit, és még használhatjuk, hogy az első paraméter.
>> Szóval valójában ezt a különleges típusú adatokat anonim függvények,
itt van ez a különleges neve változók névtelen függvények
kezdetű dollár jel és képviselik
A paraméterek száma, nulla indexelt, hogy ez a funkció.
Szóval van egy-két dolog történik.
Itt fogok visszatérni, majd a kapcsos zárójel képviselő a funkciót,
ugye?
>> Figyeljük meg, hogy én nem határoztam meg a paraméterek típusa vagy a visszatérési típus.
Ez is lehet következtetni mert az aláírás
Ennek az eredeti funkciót.
Így ki tudjuk küszöbölni hogy, mint egy lehetőség.
Hanem tudom használni dollár jel nulláról jelentik az első paraméter, ami
átment ez a névtelen függvény.
Tehát egyszerűsítve még inkább.
OK?
Eddig jó?
>> Most már ez a type-- ugye emlékszik erre dollár jel nulla
hogy láttuk ebben a kapcsos zárójel hogy láttuk csak egy kicsit
ezelőtt ezen a Swift hat példát?
Éppen itt volt.
Figyeljük meg, hogy pontosan mit keresünk itt,
az, hogy mi telt Ebbe a split funkció
egy névtelen függvény, amely ellenőrzi az első paraméter
hogy ha az megegyezik a vastagbél szimbóluma.
És pontosan mi történik, hogy minden
mi doing-- a visszatérés kulcsszó hallgatólagos
Ebben case-- vagyunk visszatérő Ezt az értéket, ahol mi vagyunk összehasonlítása
Az első paraméter ellen ez a karakter a vastagbél.
És így egyfajta demystifies ennek.
És fogsz látni ezt a konstrukciót sokat Swift szintaxist, úgy tartani, hogy a
szem előtt, ha éppen egy pillantást vetni ennek.
Most szálljon le a sínek egy kicsit
és megy igazán divatos, amely megmutatja, még néhány Swift hatalom.
Lehet, hogy még látni néhány Ezeknek a minta kódokat.
Szóval ezért megyek megmutatni Önnek.
>> Alapvetően mit tehetünk az, hogy az első Mindenekelőtt ez a fajta felesleges nekem
hogy hajtsák végre az, hogy a hatalom a kódot, hiszen ha importálja az Darwin
könyvtár, az ténylegesen tartalmaz egy funkciót nevű Pow, hogy megteszi ezt.
Így lehet egyszerűsíteni még több és Megvan a indítási funkció, már csak
egy csodálatos egy óceánjáró, ahol csak vissza a névtelen függvény,
elfogadja dollár jel 0-t bázis és y mint a kitevő.
>> De tudjuk igazán, igazán divatos amikor
észre, hogy a SWIFT-nek sok erő a motorháztető alatt.
Sok a piaci szereplőket, hogy mi már évek óta foglalkozik,
plusz jelek és szimbólumok részlege és mindezek a dolgok, hogy általában
Működik az adattípusok egy programozási nyelv,
valójában nyújthatók a Swift.
Szóval, mit jelent az, hogy mi meghatározhatja saját szereplők.
>> Tehát most fáradt vagyok gépelni mindezt Pow majd a zárójelben majd
az alap.
Nem akarom ezt tenni.
Igazából szeretnék, hogy egy üzemeltető, amely lehetővé teszi számomra, hogy.
Tehát azt lehet mondani, hogy Swift akarok hogy hozzon létre egy operátor, csillag
star-- mellesleg nem tudom használni a Carat mert a karát egy olyan hajtás
nem valami teljesen mást.
Szóval nem szeretné rendezni Az ütköznek, hogy.
És így mit látsz a különböző nyelven, köztük Python,
olyan, mint csillag csillag üzemeltető képviseletére kitevő.
>> Szóval ez az egyetlen ok miért tettem ezt.
És ez lesz Egy infix típusú üzemeltető.
És azt kell biztosítani rá bizonyos információkat
a részesítendő ennek üzemeltető így bal asszociatív.
Ez olyan, mint a viszonylag magas elsőbbséget képest
összegezését, illetve a szaporodás.
Ez nagyobb elsőbbséget mint az összes ilyen.
Így tovább és így tovább.
És akkor azt határozza meg funkciót, amely ténylegesen
előírják, hogy milyen ez a szolgáltató nem.
Tehát feltételezve, hogy van egy bal oldali és a jobb oldali,
ami talán egy Jobb változó nevét ehhez.
Bal oldali és a jobb oldalon.
Tudom majd venni ezt a hatalmat a bal oldalon, hogy a jobb oldali
és vissza, hogy értéket.
Tehát most már szuper édes.
Mindössze annyit kell tennie, hogy 2 star star 3 és, hogy a 2, hogy a harmadik teljesítmény,
és kapunk egy értéket a 8.
2 star star 10 2 a 10. hatalom, kapunk 1024.
>> Tehát most a hatalom a funkciót, amely megint más,
mert az egész ötlet mögött volt, hogy van egy funkció, amely
Mindig némi értéke, és megsokszorozza it-- vagy inkább
veszi a kitevő, hogy ugyanaz a hatalom.
Szóval most még egyszerűbb.
Tehát most már csak dollár aláírja 0 csillagos csillagos y.
Nem is kell használni pow többé.
>> OK, aki elvesztette?
Csinálunk OK?
Bármilyen kérdése van ez a cucc?
Igen?
>> Közönség: Amikor you-- [hallhatatlan] A funk erejét y kettős.
Ha tehát visszatér a funkciót.
DANIEL Armendariz: Funk erejét y kettős.
Ja, nem tudom, mi a y számok.
Elnézést kérek.
>> Közönség: Miért visszatérő függvényében [hallhatatlan] burkolat.
Nem dollár nulla csillagos csillagos y [hallhatatlan]
találni, hogy üzemeltetőt, hogy visszatérő kétszeres [hallhatatlan] duplázza?
>> DANIEL Armendariz: Akkor most nekem válaszolni a kérdésre
ahogyan én értelmezem, és meg tudod mondani nekem, ha nem értem a kérdést.
Szóval ez a konstrukció, a kapcsos zárójel dollár jel nulla csillagos csillagos y,
függvénye.
És elfogadja a paraméternek által képviselt dollár jel nulla.
A return is megadta az e Nagyon rövid, névtelen függvény szintaxisa.
>> Ami azt jelenti, hogy lényegében mi ez a mond
az, hogy én meghatározó function-- aztán majd
csak hívja meg something-- ahol van valamilyen érték y.
Van y, ami duplája.
És még visszatérek egy dupla.
És van belül, hogy cserébe y-- sajnálom, Nem kellett volna nevezte ezt y-- x.
Ó, kedves, oh kedves, oh kedves.
X- nope-- star star y.
>> Tehát ez csak egy egyszerűsített változata ennek.
És így az oka, hogy én dollár jel nulla az, hogy ezzel a burkolat
azt jelenti, hogy már nincs hogy írja pow, vagy már nem csinálni
Azt kell csinálni valamit mint 3 star star 2.
Én is csak egyetlen nevű függvény négyzetes
amely mindig Néhány értéket input
és valóban vissza a térre, hogy.
>> Tehát az egész célja a lezárás hogy csak egyfajta magukba azt a tényt,
hogy mindig szeretné használni y amikor Hívom, melyek egyfajta teljesítmény
Ha ezt is kitevő.
Tehát visszatérő akkor, egy függvény, amely elfogadja
kettős, amely a bázis, és vissza az eredménye, hogy exponent
a kulcs itt.
És ez a legnagyobb különbség.
Ott volt, csak egy kicsit virágzik.
>> Ez nem különböztek összehasonlítva a korábbi példák,
de ez csak egy kis a virágzását mi is valójában
hozzon létre egy üzemeltető Swift és valóban csinálni dolgokat vele,
ami elég király dolog.
Mondtam a válasz?
Édes.
Még valami, mielőtt tovább megyünk?
OK.
>> Most ez a fajta felveti a kérdés hogy-- is OK,
Most megvan a képessége, a funkciókat kell visszaküldeni.
Tudunk is át funkcionál adatok vagy paraméterként egyéb funkciók?
És valóban tudunk.
Tehát mondjuk, hogy van minden azonos kódot.
Megvan a tér változó amely téren ezt a kódot.
És mi van a kocka változó amely kocka néhány adatot.
És mi valóban szeretnénk alkalmazni hogy széles körű számok.
>> Tehát mi lehet a kísértés, hogy nem, Persze, amely minden bizonnyal érvényes,
az, hogy végighaladni ezen számok listája és alkalmazni a funkciók tér és kocka
és kap két új listákat eredmények amelyek ebben az eredeti listán a négyzeten
és CubeD, illetve.
Tökéletesen elfogadható.
De mi van a dolog, hogy itt látunk, az, hogy van,
Ismét párhuzamos kódunkat.
És van talán lehetőséget számunkra, hogy egyszerűsítse ezt egy kicsit.
Mi van, ha egy utat számunkra, hogy tulajdonképpen mindig is végighaladni néhány listája
és csak át kell ezt a varázslatos működik egy változó,
képvisel funkció hogy szeretnénk alkalmazni
hogy minden egyes tétel ebben a listában.
Ez felveti annak fogalmát nevezzük magasabb rendű funkciókat.
És, hogy lényegében az, amit ez a van, az, hogy mi is létrehozhatunk egy funkciót.
>> És ebben az esetben úgy hívják mapper, csak azért, hogy adja meg a nevét, csak
mapping mint minden Egyetlen elem egy listában.
Hol veszek egy listát és veszek egy funkciót.
És ez a funkció, persze, van egy bizonyos aláírás.
Elfogadja, mint a paraméter a kettős és kiírja, hogy egy dupla.
És az egész eredményét Ez a funkció fog
hogy egy új listát, amely a típusú kettős.
OK?
>> És mit fogok csinálni van, hogy ezt a funkciót f
minden egyes elemére listámon.
És reply-- és inkább visszatér az új lista eredményeként, ami nagyon klassz.
Most tudom át funkciók körül.
És ez a gondolat a magasabb rendű funkciók valóban fontos.
És ez mapper tényleg csak A szegény ember végrehajtása
egy függvény, ami épül a Swift nevű térképet.
És ez nem pontosan ez, talán még egy kicsit jobban.
>> Ez csak egyfajta általános, egyszerűsített változata, amely
lehetővé teszi számunkra, hogy a fogalom, amely érvényes itt.
Most nézd meg, ahogy én ténylegesen alkalmazni a téren
és az én kocka funkciók hogy ezt a listát a számok.
Én vezetem a mapper.
Adok hozzá listámon a számokat.
Adok hozzá az a funkciót, ami megy
alkalmazni minden egyes ilyen indexek.
És ez lesz kimeneten.
És én lesz látni, hogy én már a négyzeten és kockára vágott saját számok eredményeként.
>> És persze a térképező kerül bármiféle névtelen függvény.
Mi lehet még látni, hogy már létre Új névtelen függvény, hogy
Csak némi paraméter és osztja 2.
És azt látjuk, hogy én már, sőt, osztva listámon 2 helyett.
Cool?
Eddig jó?
Rendben, térjünk gyere vissza ezt az elképzelést.
Nézzük végre ezt vissza összefüggésben a Gradebook.
>> És ha megteszem, azt látjuk, hogy tudok alkalmaz sokféle ezeket options--
vagy sokféle ezeket magasabb rendű funkciók
hogy valóban egyszerűsítik a képesség, hogy nem egy különböző dolgokat listákon a számok.
Így például, ha azt hogy a fenti számok,
az egyik a magasabb rendű funkciók hogy létezik az úgynevezett csökkentésére.
Mit csinál csökkenti, hanem mint térkép, csökken majd
hogy két elemet a listában, eltart majd egy funkciót, hogy
összehasonlítja a két eleme A lista, és ez lesz majd a
fajta output-- a kimenetét, hogy a funkció
lesz egy másik eleme, hogy akkor majd hasonlítsa össze másokkal.
>> Szóval lehet ezt használni ténylegesen számok összege a listán.
Például, ha volt egy listát a 1, 2, 3, 4, 5,
megtenni az első elem, 1 és 2.
Akkor lehet, hogy egy kívül működést, mely e két elem
és kiköpi az egyik ilyen elem, ami a 3-at.
Ezután vesszük, hogy értéke 3 a következő eleme a listán, összefoglalva a két,
majd menj tovább a listán.
>> Mi csökkentésére listáját, hogy egyetlen érték.
És ez csak azért történik hogy a plusz jelre
egy olyan üzemben, mint mi most láttam.
Ez az operátor valójában egy függvény,
van pontosan ez a lista, hogy mi akarná, hanem ezeket a tulajdonságokat
hogy mi szeretne.
Így azt javasoljuk, hogy vessünk egy pillantást erre.
Azt akarom, hogy egyfajta elmozdulás A néhány, a kód
hogy mi is valójában nézni néhány tényleges, valós, igaz Swift Xcode,
iOS fejlesztői.
De vessünk egy pillantást ezt, és nézd meg, hogy
feldolgozni keresztül, mi folyik ezek közül néhány magasabb rendű
funkciókat, beleértve a filter, csökkentésére,, és akkor is
lásd valahol itt térkép.
Pontosan itt.
Hol fog tartani egy sorozatot évfolyamok s ez valójában
map őket a switch szerkezet, ami lehet, hogy ismeri a C,
de valójában sokkal több erősebb, mint a switch szerkezet
hogy van a C.
>> És alkalmazni fogjuk, hogy a Minden elem a listában
és ténylegesen biztosítja a levél minőségű az egyes
ezeknek az osztályoknak a mindezen fogalmak hogy már csak beszélt korábban.
Most kikerüljék csak egy perc, és beszélni struktúrákat.
És így Struktúrák egy várakozás C, hogy mi képesek voltak meg egy új típusú adatok.
Struktúrák léteznek Swift.
És így nem sok más konstrukciók nevű enum és osztályok, amelyek valóban
ezt az ötletet, hogy a teljesen más szinten.
>> És tulajdonképpen ez csak egy módja meghatározásának egy új típusú adat.
Tehát, ha get-- ha jön az egész osztály vagy struktúrákat vagy enum,
nem összezavarodnak általa.
Ez csak a meghatározási módja néhány új adott típusú adatok.
És ez nagyon fontos, amikor beszélünk iOS app fejlesztése
mert minden, ami belül létezik iOS app
lényegében egy objektum valamilyen.
És egy tárgy alapvetően osztály vagy enum vagy struct.
>> Tehát ebben az esetben én vagyok amely új típusú adatok
hogy hívom értékelése ez bizonyos tulajdonságait, beleértve a
egy nevet és egy sorozata fokozat.
Tehát az egyik típusú értékelés hogy talán gondol
lenne vetélkedők, például.
Azt akarom, hogy egy értékelését, hogy volt egy kvíz
és hogy volt a különböző fokozatok társított, a vetélkedő egyik,
kvíz két, így tovább és így tovább.
>> Vagy talán van egy másfajta Az értékelés problémát készletek.
És tudom csinálni a dolgokat.
Én valójában tartozó funkciók típus
Az adatok, amelyek most hívott módszerek.
Tehát, ha valaha is látni a szókép, ez tényleg
csak egy függvény, amely érvényes hogy egy nagyon különleges osztály,
vagy egy nagyon speciális típusú adatok.
Ez lehetővé teszi számunkra, hogy az adatok módosítását belül.
>> Más szóval, ha azt akarom, hogy adjunk hozzá egy fokozat Megítélésem,
akkor csak annyit kell tennie, hogy fűzze a kottát, hogy volt input
hogy ezt a funkciót én belső tulajdonsághoz.
Van egy másik ügyes konstrukció itt A Swift, ami ezt a dot dot dot
operátor, ami azt jelenti, hogy pontszámok Most vállal száma egészek.
És rengeteg lesz array of egész számok, hogy
letett az én funkciót, amely azt jelenti, hogy meg tudom csinálni dolgokat, mint ez.
>> Tehetek hozzá fokozat és csak biztosítani tetszőleges számú egészek bele
és ténylegesen biztosítani egy tömb ezen értékek a feladatomat
vagy az én módszer, ahogy ez a helyzet.
Most ez azért fontos, mert mindent Xcode, mindent iOS,
valójában egy tárgy.
Így tartsa szem előtt, hogy amikor mellszobor nyitott Xcode
és ugorjon túl iOS változatban két-három
és tényleg megy a verzióra négy.
>> És ismét Mindez felkerül a szeminárium oldalon.
iOS négy egyfajta teljes fújt végrehajtása egy nagyon alap app.
És mi ez a app nem áll meg betölt egy UI, ami úgy néz ki, mint ez.
Ismét, ha rákattintunk storyboard tudjuk Láthatjuk, hogy ez az, amit úgy néz ki.
Ez az UI.
Van címe legtetején.
Én is hívták web galériában.
>> Középen egy eleme az úgynevezett UI kép megtekintéséhez.
És az alján van egy eszköztár egyetlen gombra, hogy
van rugalmas terek, amelyek lehetővé teszik, hogy center közepén ebben az eszköztárban.
És mi történik, hogy amikor ez a terhelés letölti a JSON fájlt, ami
szerveren tárolt máshol, értelmezi, hogy JSON fájlt,
és a JSON fájlban néz ki egy kicsit, mint ez.
A JSON fájl így néz ki.
Ott van.
>> Ez az album nevét és van egy sor fotót.
Minden ilyen fotók Van neve és
egy URL magukat, hogy képviselje a jpeg változata, hogy az egyes képek.
Tehát mi történhet az, hogy ha ezt a programot terhelés, akkor letölti a JSON fájlt,
értelmezi azt, hozza mindezt be egyenértékű egy tömböt iOS
app fejlesztés, amely nsarray.
És akkor tudok majd töltse be Ezen adatok egy alkalmazásba
és a terhelés a monitoron.
>> Van egy kép, hogy volt betöltve a gomb legalján.
Ha rákattintok Get következő kép, hogy majd húzza azt a képet az interneten
és annak helyébe lép image A UI kép megtekintéséhez.
Szóval lehet letölteni ezt, és valóban vessünk egy pillantást, hogy a számítógépen.
És épít, és ténylegesen fordítsd le a készülékre.
De alapvetően a folyamat Ennek megteremtése storyboard--
vagy inkább nem create-- de válassza a storyboard.
És valóban we'll-- ha nem mind-- elvisszük csak pár másodpercre
hogy ténylegesen megmutatja, hogyan történt.
>> Csak azért, hogy miként lehet a ténylegesen Ehhez készült egy kicsit
nyilvánvalóvá.
Single View alkalmazás, én vagyok Felhívom ez a szeminárium
Négy képviselő erre adott szám.
Mentsd el az asztalon.
OK, majd kattints a storyboard.
És mit fogok csinálni az, hogy megtaláljuk a kép szerint
húzza a használati interfész és a központ is.
Most csak központosító sajnos nem fog csinálni egy csomó,
kivéve a képernyő hogy ez a pontos méretet.
>> Így tudjuk meggyőzni magunkat, hogy a rákattint erre a dupla kör dolog,
leszorítására ez a pop menü itt és változó
előnézeti, ahol mi valójában kap egy esélyt, megtekinthetik, hogyan
ez ténylegesen nézz más készülékeken.
Mint láthatjuk, mi nem is látom ebben a konkrét esetben.
Így fogok zárni ezt most.
>> És fogok válasszon Az ikonra le a nagyon
alsó része a képernyő.
Azt mondja Resolve Auto Layout kérdések.
Sajnáljuk, ez vágott le az alján.
De ha rákattintok, hogy mit hogy van ez a pop up-- elmegy.
Mit kapok ez a pop up, hogy lehetővé teszi számomra, hogy adjunk hiányzó korlátok.
És ezzel, hogy Ekkor valami megakadjon
bele a középső részét a képernyőn, mint én várható.
>> Most annak érdekében, hogy ezt a gombot tetején, azt kell menni a szerkesztő.
Menjünk az embed és kattintson Navigation Controller.
Mit fog tenni, hogy lesz hozzá ez az egész más készüléket úgy,
de ez valójában hivatkozó vissza az eredeti UI.
És a részleteket, megint mi nem Tényleg kell törődnünk most.
De azt akarom, hogy egy eszköztár legalján.
Szóval én megnézem show eszköztár.
>> És ez biztosítja belül véleményem szerint, ami most valahol máshol,
láthatjuk, ez kapcsolódik ide.
Ez most egy eszköztár alján az én UI.
Tehát most, ahelyett kiválasztásával A kép szerint találok egy címkét,
vagy inkább egy toolbar-- Lássuk, hol van?
Mi a neve?
A button-- elem bar-- item-- sorry-- bar gomb elemet.
Puff, hogy ott, és alkalmazni egy pár A rugalmasan alakítható két oldalán
hogy valóban középre, hogy.
Tehát most már létre a UI, alapvetően.
És tudom, hogy ez egy megnevezés szerint dupla kattintással legtetején
Itt és azt mondja web galéria és így tovább.
Most ismét olyan elemekről hogy léteznek önmagukban.
És azt kell csatlakoztatni őket, hogy a kódomat, amely
Meg tudom csinálni ha újra hozza ezt a kettős kör ikon,
változó a preview.
Ami, mellesleg, most már látjuk is szépen középre, és jól néz ki
a különböző eszközök.
>> Váltás az automatikus, ami hogy ki a ViewController kódot.
És most ez a rész fontos.
Annak érdekében, hogy összeköti ezeket a két elem, a kódot a UI,
akkor válassza ki az elemet, hogy szeretne csatlakozni.
Tehát ebben az esetben, mi valójában akarsz kódolni
változtatni a képet, ami tartalmazza ezen belül UI kép megtekintéséhez.
Tehát, ha te irányítod kattintson a A kép megtekintése és drag,
észre fogod venni, hogy kapunk egy kis bár, ha elengeded mindazt, amit ez a pop
up fog bekövetkezni.
>> És azt mondja, hogy mi lesz a kapcsolat létrehozásához.
És itt szeretném, hogy ez egy nevet, olyasmi, mint galériában.
Enter leütése.
És ez ugyanis kimondja, változó nevű galéria
hogy tudok majd hivatkozni a kódomat változtatni a képet, például.
Tehát hogyan, hogy a kód valójában nézni?
Ismét jól, nem akarom, hogy túl sok időt töltenek rá.
És azt javasoljuk, hogy töltse le és nézd meg.
De az egyik a leginkább fontos szempont a kód
hogy valóban elhozza a képet.
>> Tehát ebben az esetben azt akarom, hogy belüli fotóim
tömb, amely tartalmaz belül az osztályban.
Azt akarom meghatározni a nevét és az URL hogy a már elemzett ki ezt a JSON.
Igazából kérni a készüléket, hogy a URL, hogy hozza az URL-e,
majd letölteni az adatokat tartalmát, hogy URL.
Majd átalakítani, hogy az adatok egy képet átadva a UI képet.
Tehát még egyszer: ezek mind különböző típusú tárgyak, különböző típusú osztályok.
>> És akkor tudok majd állítsa én gallery.image egyenlő az adatokat.
És ez a fajta hús belőle, hogy valójában akkor
képes megváltoztatni az adatokat from-- változás A kép az egyik a másikra.
Tehát újra, remélhetőleg most sok a konstrukciók
fog tenni egy kicsit több értelme van.
Figyeljük meg, hogy van némi felkiáltójel van.
A felkiáltó jel lényegében kapcsolatos Adott esetben alkalmazható.
>> Amit én alapvetően azt mondom, hogy anélkül, hogy ellenőrizné
hogy hátha van adat ezen belül választható,
Én megyek előre, és feltételezzük, hogy van, és csomagolja ki.
Ne feledje, hogy mi használt analógiájára egyfajta csomag a Opcionális
és meg kell kicsomagolni a csomagot, és húzza az adatokat ki.
A felkiáltójel erők, amelyek ténylegesen meg is történik.
>> De tudom, hogy ez biztonságos, mert megnéztem
hogy ha képadatok egyenlő nulla volt, amit ténylegesen ellenőrizni
hátha ez opcionális volt, sőt, nem sikerült.
Ha ez volna, valójában, nem sikerült már.
És így biztos vagyok benne, hogy ha kapok erre pont azt nyugodtan kibontjuk, hogy az adatok.
Esetleg azt is látni, hogy a formájában a kérdőjel.
Tehát, ha lépjünk le, ahol én kell, hogy ténylegesen elemezni az adatokat.
>> Tehát ne tegye ki ezek a fajta hosszú neveket.
Megtalálható az Apple fejlesztői oldalon sok
A hivatkozásokat minden tárgyak és mindazok a folyamatok,
hogy valóban teszi ezt lehetővé.
De észre, hogy ez lényegében függvényében hol adja át néhány adatot.
És kapok vissza valamilyen adatot.
És azt kell, hogy használja ezt a kulcsszót alakítani ezt a nsdictionary?
Amely ismét, egy opcionális nsdictionary.
Amit aztán kell ellenőrizze, hogy ha van ilyen.
>> Így tudom használni, hogy ha hagyja, Sikeres az egyenlők elemzett,
akkor tudom, hogy ez nem kötelező valóban tartalmaz néhány adatot.
Vagy mit tettem az volt, hogy csak feltételezni, hogy ha van
nem volt hiba, hogy valójában biztonságos.
Rendben, szeretném megköszönni Mindenkinek nagyon szépen jön.
Tudom, hogy ez sok, de ez csak egy óra
beszélni néhány elég fejlett cucc.
És így remélhetőleg kapsz esélyt, hogy töltse le az összes kódot
és hogy egy jobb, alapos pillantást rá.
Valahogy meggyőzni magát minden A dolog, hogy folyik.
És szeretném megköszönni Önnek Az összes, idén is jön.
És sok sikert a végleges projekt.
Volna egy nagy nap.