>> Tianyu LIU: Ahoj, ako sa má to ide všetkým?
A to je iOS App programovanie Objective C semináre.
A moje meno je Tianyu Liu.
Som Lowell junior práve teraz, sústrediť sa v informatike.
Takže v tomto seminári som si bude vás naučí ľudí
niečo málo o tom, ako aplikáciu.
Hurá, nadchnúť pre to.
>> Takže ako sme sa dokonca začať potápanie do aktuálneho programového strane,
Proste veľmi rýchlo hovoriť Prečo budete chcieť vytvoriť aplikáciu iOS?
Prečo je iOS tak úžasné?
Takže prvý problém, prvý vec, ktorá je dosť desivý pre nás,
najmä ako CS50 študent, je to, že iOS
používa Cieľ C. No, je tu nový jazyk s názvom Swift,
ale my nebudeme použitie, ktoré v tomto seminári.
Ak máte záujem o Swift, tam je nezávislý seminár o tom.
Ale Objective C je v zásade podmnožinou C. Význam
že všetko, čo používate v C môže byť preložený do Objective C
veľmi ľahko.
>> Ako môžete vidieť neskôr, že skutočne tam sú niektoré veľmi základné syntax, sú
v podstate presne rovnaký, C a Objective C. Tak,
pretože ste vzali CS50 up tak ďaleko, že už
viem Objective C, aspoň 40%.
Tiež, Apple má naozaj robustné API pre iOS.
Existuje veľa naozaj šialené veci, ktoré môžete urobiť s ním.
Jedným z nich je niekto vlastne vytvoril aplikáciu iOS
ich ovládanie vozidiel, ktorá Je celkom zaujímavé.
Pravdepodobne vrtuľník je viac vzrušujúce.
Ale to je, ako silný iOS API môže byť.
>> A ako by sa mohlo mať prišiel práve teraz,
pretečenie zásobníka je pravdepodobne jedným z Najdôležitejšie on-line zdroje
K dispozícii pre vás.
A dobrá správa, pre každého jediný problém, môžete prípadne
myslieť pri vytváraní vašich záverečný projekt v Objective C,
je pravdepodobné, pretečenie zásobníka odpoveď.
Je to proste úžasné.
Okrem toho, iOS je naozaj platforma
kde sa môžete dostať obrovský publikum s malým úsilím.
Nie je to ako Android, kde všetko je celkom roztrieštený.
>> Všetko iOS je jednotný.
A tak dlho, ako si vytvoriť aplikácie pre iPhone,
môžete ľahko port, ktorý na iPad, iPad mini, alebo rôzne veľkosti iPhone.
To všetko sú naozaj pohodlné.
A to je len naozaj dobrý pre imponujúce svojich priateľov.
Stačí si len držať iPhone a povedzte svojmu priateľovi hej,
To je aplikácia, čo robiť.
Môžete to urobiť, že pre akýkoľvek desktopových aplikácií, čo je pekné.
>> Dobre, teraz poďme skutočne dostať do jazyka Objective C.
Tak prečo nie my začíname niektoré naozaj základné syntaxe.
Ako som sa už zmienil skôr Cieľ C Je to v podstate podmnožinou C.
Takže veľa základnej syntaxe vlastne úplne rovnaký.
Deklarácia premennej a pridá dve premenné spolu
je presne tak, ako sme to urobili v Mario.
Nič nové tu.
>> Rovnako tak, nájomník pre sláčiky a stav je tiež rovnaká.
Môžete to urobiť pre sláčiky, rovnako ako vy ktoré robil v Mario [nepočuteľné].
A vy môžete urobiť podmienky rovnako ako to, čo
robili v predchádzajúcej p sád.
Avšak, Objective C nie je úplne C,
a je tam niečo, čo Je trochu divné o tom.
>> Prvý z nich je, že keď ste robí programovanie C, zvyčajne volanie
patrí a potom názov knižnice.
Ale v Objective C hovoríte, aby dovoz.
V podstate hovorí funkčnosti len rôzne mená.
A reťazce sú vlastne trochu divné.
Môžete vidieť, že prvá vec, ktorá je trochu divný
je to, že máte dosť weird-- sorry-- máte dosť divné NS
Prihláste sa sem.
A druhá vec že je to trochu divné
sa máte na znak pred skutočne deklarovať reťazec.
Takže zavináč v podstate znamená, že reťazec nie je len reťazec,
to je v skutočnosti objekt.
Budeme vysvetľovať že neskôr takže sa nemusíte
panika, ak nemáte pochopiť, čo to znamená.
A tlač na konzole je trochu odlišné, pretože v C nazývame printf,
ale v Objective C, zavolajte [nepočuteľné].
>> Možno sa čudujete, čo to je.
To je v podstate printf, len iný jazyk.
Presne rovnaké použitie, presne rovnaké funkcie.
No, ukázalo sa, že Objective C vlastne
má ns prefix takmer všetko, každá základná dátový typ,
NSString, nsarray, nsdictionary.
Dôvodom je, že ns vlastne znamená ďalší krok
čo je spoločnosť, ktorá Steve Jobs založil,
čo je spoločnosť, kde Jazyk Objective C je na svete.
Tak to je v podstate tradície.
Ja viem, je to trochu divne, ale je to Apple.
>> Takže niečo, čo je ešte divnejšie než že je deklarácia funkcie.
To je veľmi odlišné od toho, čo sme vidieť v C, pretože tu to vlastne
nevyzerá ako C už.
Čo máte here-- by spôsob, ako to nie je zarážka,
to je znamienko mínus.
Máte znamienka mínus zátvorka void a potom názov funkcie.
Povedzme, že ak budeme majú Hello World, potom
typ návrat bude zrušená preto, že sme nič vrátiť.
>> To, čo sa naozaj divný je, že keď ste
ktoré majú viac ako jeden parameter prechádzať do rovnakej funkcie, ktorá
bude naozaj divné, ako je znázornené tu.
Máme názov metódy, volal AddInto na [nepočuteľné]
a my sme zadali jeden parameter.
Ale po tom, máme Viac meno volanie metódy sa.
A potom, čo sa budeme absolvovaní Druhým parametrom.
To je vlastne trochu divné, Ale všetky tieto funkcie vyhlásenie
sledovať rovnaký priebeh, ako toto.
>> Máme mínus začať.
Znamienko mínus môže byť znamienko plus niekedy zakladajú na tom, aké metódy
to je.
Metóda je v podstate iný názov pre funkciu.
A budeme sa vysvetliť, že neskôr, keď
hovoríme o objekte orientované programovanie.
Najprv určiť návrat typ zátvorkách,
po ktorom prichádza názov metódy.
Tie odovzdávanie jeden parameter.
A ak máte viac parametrov je potrebné rozšíriť názov metódy
a v podstate napísať niečo viac tu.
>> Môže to byť čokoľvek chcete.
V našom prípade je to s.
Ale dalo by sa povedať koniec, alebo alebo alebo abc plný bar, čo chcete.
A potom po tom ste odovzdávanie parametra b.
To je naozaj zvláštne konvencie, ale my sme
uvidia, prečo Apple chcel k tomu, že veľmi rýchlo.
Tak ako sa vám volanie funkcie?
Volanie funkcie v Objective C je tiež odlišné od C.
>> Vlastne, volanie Funkcie v Objective C
je skôr hovoríte s niekým.
Tu máme ja, ktoré sa nazýva objekt.
Vy ste v podstate povedať, námietky seba povedať: "Hello World!"
To je, ako na volanie funkcie.
Objekt a názov metódy v kombinácii s ostatnými.
A to je miesto, kde divný rozšírenie pre názov metódy naozaj príde do hry.
>> Poďme sa pozrieť na druhý príklad.
Práve sme definovali metódu nazvanú AddInto s bla bla bla.
Takže v tomto prípade, kedy voláte že konkrétne [? posolstvo?] to ide
vyzerať ako vlastné AddInto: 10 s: 2.
Znie to ako angličtina.
Aj keď funkcie deklarácia funkcie je divný,
bod Cieľ rokov C metóda vyhlásenia vzor,
je, že keď voláte funkcia alebo metóda
to bude znieť ako skutočný angličtiny.
Takže je to veľmi intuitívne akonáhle sa dostanete do toho.
>> Najmä v tomto prípade, kde si môžete v podstate
vidieť, že názov funkcie je druh dokumentácia sama.
Ty nepotrebuješ viac vysvetlenie vidieť
čo presne sa deje, čo sa presne jeden parameter robí.
Nad rámec, ktorý, poďme hovoriť trochu bit o objektovo orientovaného programovania.
Objektovo orientované programovanie je Jedným zo základných programov
techniky alebo vzory, ktoré je použitý cieľ C. Objective C
sa nazýva cieľ C, nie C, pre naozaj dobrý dôvod.
>> Takže než sa dostaneme do Cieľ syntax C,
Poďme sa pozrieť na naozaj rýchlo čo presne je objekt.
Sme asi urobili niečo ako objekt pred, ktorý
sa nazýva struct, keď ste implementáciu strom alebo prepojený zoznam
alebo [? skúsiť. ?] Takže, to je v podstate ako struct,
ale je to oveľa silnejšie ako to.
Objekt má metódy a vlastnosti.
Metódy sú v podstate funkcie.
V podstate funguje, že špecifické pre určitý objekt.
>> A vlastnosti sú v podstate pole zadáte do struct.
Takže pre každý objekt máme nejaký majetok
že má niektoré premenné, ktoré sú špecifické pre daný objekt.
A máme niektoré funkcie, ktoré sú tiež špecifické pre daný objekt.
A funkcie sú volány metódy a premenné sa nazývajú vlastnosti.
Je to len vymyslené meno.
Kým si skutočnosti, každý názor vidíte, keď otvoríte aplikáciu iOS,
povedzme, že Twitter alebo Facebook, každý pohľad vidíte, je objekt.
A dokonca aj celá aplikácia je objekt začať.
Veľmi zaujímavý koncept.
>> A prečo chceme objekt orientovaného programovania?
Takže si viete predstaviť, že keď Program, je to pomerne zložité.
Povedzme, že keď ste vykonávanie šachovnice,
logika bude je naozaj zložité.
Máte 36 rôznych kúsky, takže ak ste
chcem písať logiku pre všetky 36 rôznych kusov v šachy,
že to bude veľa rôzne funkcie a premenné.
Je to veľa problémov.
A pravdepodobne budete písať iný spôsob alebo rôzne funkcie
pre každý kus presne kontrolovať, čo robia.
>> Ale ak si objektovo orientovaný programovanie, všetky tieto kúsky
možno abstrahovať do jediný objekt.
A objekt bude mať nejaké spoločné vlastnosti, ako je, aký druh dielu
je to?
Akú má farbu?
Ako sa to môže pohybovať?
A týmto spôsobom budete mať veľmi zjednodušená logiku to.
Takže je to len naozaj dobrý spôsob, ako aby zložité programy,
a hierarchický vzťah v rámci programu, veľmi jednoduché.
Ako budeme vidieť Preto veľmi rýchlo, keď
sme skutočne robí programming-- keď sme vlastne
robí S kód programovanie sa neskôr.
>> No okrem toho, objektovo orientované programovanie
je len veľa zábavy.
Musíte vytvoriť vlastný objekt.
Musíš vytvoriť to, čo robí to vyzerá, ako by sami.
Neexistuje žiadna správna odpoveď na to.
A je to úplne zaujímavé.
Takže v objektovo orientovaného programovania, dva základné pojmy
Bude triedy a inštancie.
Trieda je v podstate šablóna pre objekt.
A inštancie je v podstate jeden konkrétny objekt.
>> Povedzme, že robíte cookie.
V tomto prípade, každý cookie skutočne skončiť
bude objekt.
Ale cookie dosku môžete použiť na pečenie všetky cookies bude trieda.
Trieda je v podstate šablóna.
A inštancie bude jeden konkrétny objekt vytvorený z tejto triedy.
>> A inštancie bude vytvorená na základe deklarácie triedy,
ako uvidíme v ďalších snímok.
Tak poďme vlastne robiť naozaj rýchly príklad [nepočuteľné].
Povedzme, že sme jeho uverejnenia objekt pre mačku.
Objekt by mal have-- trieda mačka by mala
majú niektoré vlastnosti a metódy.
Aké vlastnosti by mal trieda have-- by mačka mať?
>> Napríklad, farba, vek a plemeno, tie
bude premenné, ktoré sú špecifické pre každú mačku.
A to sú niektoré veci ktorý používame na opis mačku.
Aké metódy, alebo čo môže mačka robiť?
Niektoré rýchle príklady boli by chase myš, jesť ryby alebo len mňaukať.
To je naozaj rýchly Príkladom mačacie triedy.
A naozaj špecifický mačka objekt bude mačka
kde určíme farba, vek a plemeno.
>> V tomto prípade, náš objekt už triedy nie je ešte.
My skopírujte šablónu z triedy a určíme každé konkrétne informácie
k tomuto špecifickému predmetu aby bol nezávislý.
A keď voláte Spôsob vnútri objektu,
stačí zavolať mňau na objekte, čo je mačka ste práve vytvorili.
>> Pravdepodobne budete tlačiť niečo ako "Hello World!
Mňau ".
Docela roztomilé.
Dobre, povedzme, dostať sa do nejaké detaily
a zistiť, čo presne to robí preložiť do bytia programovania iOS.
Takže v iOS programovanie každý trieda bude realizovaný v dvoch súboroch.
Jeden súbor je tú, ktorá sa nazýva rozhranie.
Ďalší súbor je tú, ktorá sa nazýva implementácia.
>> Typicky rozhranie bude mať extension.h
ako sme videli v C knižnice.
A implementácia súbor bude mať extension.n.
Je to trochu divné.
Ale n znamená v skutočnosti .c, neexistuje zásadný rozdiel medzi tými
dve.
Takže v tomto prípade môžeme vidieť, že sme deklarovať rozhranie, kat: objekt.
To sa nazýva dedičnosť.
Sme v podstate dedenia mačka triedy z triedy objektov.
Takže každá vlastnosť, a metóda, ktorá bola predtým definované v triede objekte
bude automaticky definované v triede mačky rovnako.
>> Okrem toho, definujeme farbu, plemeno, a vek, tri premenné.
To naozaj vyzerá ako niečo, čo ste urobili predtým.
Vyzerá to, že struct.
Že je v podstate syntaxe o vyhlásení struct,
a že je úplne správny.
A pretože som sa zmienil predtým, rozdiel struct
a predmet, jeden z zásadné rozdiely
je to, že predmet má spôsob, zatiaľ čo struct má iba premenné.
Takže okrem vlastností alebo premenné sme vytvorili pre objekt,
určíme nejakú metódu.
>> Povedzme, že tu máme dve metódy, jedna je mňau,
Ďalším z nich je chase myš.
Pravdepodobne Chceme byť absolvovanie parameter na základe našej predchádzajúcej metódy
vyhlásenie vzor.
Pravdepodobne budete chcieť byť absolvovanie myši.
A pravdepodobne budete chcieť vrátiť bool znamenať
Ak je vaša mačka má úspešne chytil myš, alebo nie.
>> Jedná sa o rozhranie, ale môžeme vidieť, že rozhranie skutočne
nerobí nič.
Je to len povie program, čo exists-- to, čo existuje v triede mačky.
Tak, aby pre Program niečo urobiť,
musíme mať implementácia súborov.
Tak tu je prvá vec, ktorú robíme, je samozrejme dovážame rozhranie.
Potom, čo sme importu rozhranie, definujeme metódu.
>> Povedzme, že tu mňau by len vytlačiť
"Hello World!" na konzolu.
A po vykonaní súbor, sme skoro hotové.
To je v podstate trieda Vyhlásenie o jednu triedu.
Takže teraz vyvstáva otázka, Ako sa vám deklarovať premennú?
Spôsob, akým použiť triedu na vytvorenie Je tu napísané objekt v Objective C.
>> Tie prvé určiť, že to je ukazovateľ mačka,
preto, že každý objekt v Objective C konečne implementovaný ako ukazovateľ.
A hovoríte triedu, volať im ako je Alloc, ktorý je v podstate malloc,
hovorí operačný systém, ktorý vám Potrebujem miesto v pamäti pre tento objekt.
Potom budete mať objekt a už ste práve inicializovať.
To je len konvencie.
Ja viem, že je to je trochu divné, ale To je vlastne, ako Apple robí veci.
>> Priradenie vlastností je vlastne celkom jednoduché.
Je to veľmi podobné Čo robíte, keď
ste priradenie niektoré konkrétne pole vnútri Struct.
Musíte len premennú meno, názov vlastnosti,
a priradiť konkrétnu hodnotu k nemu.
A volanie metódy je veľmi podobná.
Volanie metóda je v podstate o čom hovorím
pre volania do všetkých metódu cieľ C.
>> Tie odovzdávanie objektu, v v tomto prípade to bude myCat,
a vy ste odovzdaním názov metódy.
Ako by hovoríte k objektu, myCat, že by ste mali mňaukať.
Je to celkom zaujímavé.
Po tom, tu je jedna dôležitejšie návrhový vzor
že musíme hovoriť o než sa dostane do skutočného S kód.
Tento návrhový vzor sa nazýva udalosťami riadené programovanie.
To je tiež pravdepodobne jedným z najviac základné myšlienky v programovaní systému iOS.
>> Takže si asi neviete, čo presne je udalosťami riadené programovanie,
ale to nie je naozaj tak desivé.
No v skutočnosti, budete mať Už urobil predtým.
To je jedna z liniek, ktoré ste pravdepodobne už písali v minulom [nepočuteľné]
of CS50, google.maps.event.addListener (značka,
"Click", function () {}):.
Volaním tento riadok ste v podstate hovorí počítač
že vždy, keď volal udalosť "Kliknite na tlačidlo" deje na značku,
použite túto funkciu.
>> To je veľmi odlišné od to, čo robiť v mario.c.
V mario.c stačí spustiť program raz, to vám dáva výstup,
a máte hotovo.
Jedná sa o niečo ako One Shot programy.
Udalosťami riadené programy sú veľmi, veľmi odlišné.
Poďme si predstaviť, ak Facebook je jedna záber programu to nie je naozaj dobrá.
Jednoducho ísť na Facebook raz a je to hotovo.
To vám dáva nejaký výstup a nikdy ho dostal späť.
Ty nikdy nič viac.
>> Tak tu, a to najmä vzor používame je
udalosti riadené, takže každá funkcia bude
byť zachytený na základe toho, čo Akcia sa stalo.
Napríklad, ak máme tlačidlo a určíme
že kedykoľvek sa, že kliknutie na tlačidlo, volanie funkcie s názvom "Hello World!"
Týmto spôsobom môžeme naozaj spravovať funkcie logiku
prietok vo veľmi flexibilne.
Užívateľ si môže robiť, alebo volanie funkcie , Ktorá už bola volaná.
Je to úplne na základe toho, čo používatelia robia.
>> Takže môžeme vidieť, že je to v skutočnosti oveľa lepšie ako mario.c.
A dobrá správa je, že je to v skutočnosti nie je nový koncept.
Vy ste tak už urobili že v poslednej problém nastaviť.
Takže v Objective C existujú tri rôzne diagramy
pre udalosťami riadené programovanie.
Prvý diagram volal cieľ akcie,
kde zviazať tlačidlo lis s nejakou funkciou.
Povedzme, že vždy, keď kliknete na tlačidlo niektoré tlačidlo, volanie nejaké funkcie.
To je veľmi jednoduchý cieľ akcie.
>> Druhý z nich je vlastne najťažšie,
je to len delegácia na protokole.
Budeme vysvetľovať že veľmi podrobne neskôr.
A tretí spôsob je oznámenie.
To je v skutočnosti nie je veľmi dôležité, pretože ak
ako sme znepokojený, pretože šanca že budete používať oznámenia
v konečnom projektu je veľmi nízka.
Takže budeme preskočiť túto časť.
>> A budeme sa potápať v delegácii na protokole.
Takže čo presne je protokol?
Alebo čo presne je delegácie?
Poďme sa baviť o protokol začať.
Protokoly nie sú nič iné ako akcie.
Ale tieto udalosti sú uvedené na vás Apple začať.
Napríklad, ja nie som úplne istý, ako mnohí z vás
chlapci používať Apple originál app mail alebo kontakt,
ale zakaždým, keď sa posuniete stôl a stlačte konkrétnu bunku
na stole, to je udalosť.
>> A ak si chcete urobiť že udalosť sami,
je to vlastne trochu tvrdý.
Takže Apple dal, že aj pre vás takže stačí priamo použiť
udalosť niečo urobiť na vlastnú päsť.
Protokoly sú vlastne naozaj, ale naozaj široko používaný
v Objective C. dobre Skutočnosť, každý app
Má niečo chytil app delegáta.
Vnútri delikátna je všetky protokoly pre načítanie aplikácie.
>> Povedzme, že je tu akcie pre cca urobil zaťaženie.
Takže to, čo by sa malo stať po tom, čo ste vytvoril aplikáciu, po otvorení aplikácie,
Po zatvorení aplikácie, alebo po si dať iPhone do režimu spánku.
To všetko sú udalosti, ktoré má už boli poskytnuté na vás.
A pôvodne vnútri týchto častíc nebude realizácia.
Apple vám práve povedal, že túto funkciu sa stane, keď sa niektorí udalosti dôjde,
ale to, čo robiť s tým Funkcia je úplne na vás.
>> Delegovanie je v podstate hovorí triedu
že by ste mali zvládnuť tieto protokoly.
Je to trochu mätúce, ale to bude
oveľa jasnejšie, keď robíme sa s kódmi v akcii.
Delegácie na protokole je vlastne veľmi robustný mechanizmus v tom zmysle,
že ak budeme robiť delegáciu do určitej triedy,
môžeme v podstate zvládnuť všetky druhy akcií
pomocou ľubovoľného triedy máme, veľmi pohodlný nástroj.
>> Takže jeden rýchly príklad pre delegácie na protokole
bude to, čo som práve hovoril o.
Tento protokol konkrétne sa nazýva TableView [nepočuteľné] vyberte úlohu
V [? index?] [? minulosť. ?] Takže to udalosť, ktorá by sa chytil, keď vás
vlastne kliknite na konkrétnu bunka vo vašom TableView,
povedzme, že vo vašom maile alebo v kontaktoch aplikácie.
>> Vnútri funkcie bol pôvodne robiť nič.
Funkcia nie je robiť nič v predvolenom nastavení.
Ale môžete zadať čo funkcia robí,
vzhľadom k tomu, čo chcete z vašej aplikácie.
Veľmi vhodný nástroj.
A s tým všetkým Ako už bolo povedané, som v podstate
pokrývajú niektoré veľmi základné syntaxe a Základným konceptom pre Objective C
programovanie, a môžeme urobiť nejaké y kód.
Oveľa viac vzrušujúce.
Takže je kód je v skutočnosti trochu ohromujúce
keď ho otvoríte prvýkrát.
>> Jeden rýchly poznámka, takže ak máte Chcete urobiť iOS rozvoja
Veľmi odporúčam máte Mac.
Vzhľadom k tomu, robiť iOS vývoj na Windows je naozaj, naozaj ťažké.
Je to uskutočniteľné, ale je to naozaj ťažké.
A určite robiť nebudete chcieť používať g upraviť.
Takže s kódom máme niekoľko rôznych oblastí.
Pri prvom otvorení sa s code uvidíte navigačné oblasti,
ktorý v podstate vám ukáže všetky súbory, ktoré je v aktuálnom projekte.
>> Máte panel nástrojov priestor, ktorý je v podstate riadiacej názory,
alebo nejaký malý rýchly Nástroje asi s kódom sám.
A to je skutočná editor oblasť.
Táto oblasť je veľmi podobný g editovať, ale oveľa lepšie, než g editovať.
A v tejto pravej časti, je volal úžitková plocha.
Oblasť sa stáva naozaj vhod, keď budete vytvárať rozhrania alebo zadaním
Niektoré rýchle nastavenie pre vašu aplikáciu.
>> A poslednou oblasťou je ladenie.
Táto oblasť obsahuje konzolu.
Takže vždy, keď hovoríte printf, alebo NSLog v našom prípade,
všetky vaše výsledky sú bude vytlačený tu.
V poriadku?
Myslím, že môžeme veľmi rýchlo urobiť Príkladom pre programovanie iOS.
A poďme vlastne otvoriť s kód.
Takže zakaždým, keď otvoria s kód, to je ukážem niečo také.
Bude sa vás opýtať Čo chcete robiť?
Chcete začať niečo náhodný, detské ihrisko, v podstate tie
si len vyskúšať kód bez v skutočnosti sa zaviazať, že akékoľvek aplikácie.
>> Chcete vytvoriť nový projekt?
Alebo chcete, aby aj naďalej práce na existujúcom projekte?
V našom prípade budeme na vytvorenie nového projektu.
Takže je to naozaj pekné, s Kód v skutočnosti už
vám dal nejaké šablóny pre vytváranie objektov.
Ak si chcete urobiť hru, to kód v skutočnosti má herný šablónu pre vás,
má strana na základe žiadosti, Karta aplikácie založené.
V tomto prípade, budeme urobiť niečo veľmi jednoduchého,
a budeme používať jedna žiadosť pohľad.
>> Po tom, čo chcete volať Váš produkt, a to, čo je vaše meno,
Aký je váš identifikátor, a Aký jazyk používate.
Tu sa nechceme skontrolovať pomocou základné údaje.
Jadro dát je v podstate databasing iOS.
Ak tak urobíte základných údajov, s kód bude definovať
oveľa zložitejšie triedy pre vás.
Tak, aby všetko jednoduché, my sme proste robiť bez základných údajov
práve teraz.
>> Problém budeme mať použitie je that-- problému
budeme treba vytvárať je, že sme v podstate chcete importovať Mario z C
do aplikácie iOS.
Tak povedzme, že Mario-iOS.
Samozrejme určíte, čo vás chcú, aby v projekte.
A tam ideme.
>> Tak toto je trochu ohromujúci, ale to je v skutočnosti
to, čo sme práve videli na snímkach.
A prvá oblasť vidíme práve teraz je v podstate nastavenie projektu.
Takže všetko, čo chcete robiť projekt, aký druh zariadenia,
povedzme, že to, čo druh zariadenia Chcete, aby vaše aplikácie sa objaví na?
Je to iPhone, iPad alebo univerzálne?
Takže orientácia zariadenia, všetky tie veci.
Nie je príliš dôležité, ale môže byť, ale toto
je miesto, kde môžete nastaviť Váš projekt, ak ste skutočne
chcú nasadiť do obchodu Apple.
>> Dobre, poďme sa pozrieť na niečo, čo je v našom kóde.
Poďme prejsť súboru navigátora.
A to sú všetky súbory, ktoré už prišiel s šablóny, veľmi pekné.
Takže keď sme sa na jednu z nich to je to, čo to vyzerá.
Veľmi podobné g editovať.
Ale je vidieť, že zvýrazňovanie syntaxe je pravdepodobne
trochu krajší.
A to je v skutočnosti oveľa viac mocnejší než editáciu g.
A môžete auto kompletné veľa vecí pre vás,
ako uvidíme veľmi rýchlo.
>> Poďme otvoriť ladenie oblasť rovnako.
Dobre, ako môžeme vidieť, konzola je tu.
To je to, čo budete vidieť, kde ste v printf alebo nsloging niečo.
Takže bez ďalších okolkov, poďme vlastne zostaviť aplikáciu a uvidíme, čo sa stane.
Jeden zásadný vlastnosť pre s kód, je to, že s kód
prichádza s iPhone simulátore.
Takže nemusíte mať iPhone vyskúšať váš projekt,
s kód môže simulovať, že pre vy, ako môžeme vidieť hneď teraz.
>> Je to celkom pekné.
Je to brať trochu trochu času pri zostavovaní
a v podstate máme prázdny aplikácie,
ktorý vlastne nič nerobí.
Ale to zostavuje.
Je to dosť desivý.
Je to oveľa lepšie, ako C, čo?
Dobre, tak poďme skúste niečo pridať.
Jeden súbor, ktorý je trochu Tu divný sa nazýva scenár.
To je vlastne skvelý, úžasné funkcie pre s kódom.
Vzhľadom k tomu, v s kódom, môžete skutočne drag a pokles prvkov na rozhraní
a to sa priamo zobrazí.
Skúsme to.
>> Máme pokles štítok tu, "Hello World !!!"
Môžeme centrum, ktoré.
Celkom v pohode.
A teraz poďme spustiť túto zastavenie simulácie.
Tu máme "Hello World !!!"
Nemali sme ani robiť ešte žiadne kódovanie.
Čo to sakra deje?
To je, ako silný Interface Builder môže byť.
Niekto dokonca povedal, že Môžete si asi len
dokončiť aplikáciu bez písomného Pravdepodobne tisíc riadkov kódu
iba pomocou rozhrania Builder.
Ale to asi nie je najlepší spôsob, ako to urobiť.
>> Teraz poďme skutočne dostať až na kódovanie.
Takže štruktúry súboru je v skutočnosti naozaj zaujímavé
pretože, ako môžete vidieť, tam nie je hlavnou funkciou kdekoľvek.
Vidíš?
Ako už bolo povedané, môžete vidieť, že to
je súbor implementácia pre konkrétnu triedu.
Ale nie je tam žiadny hlavné nikde.
Takže kde je hlavné?
V skutočnosti je hlavné, ale Hlavné je vlastne skrýva od vás.
Hlavné je tu.
To vyzerá povedome.
>> Takže v podstate to, čo iOS robí vnútri hlavné
je to, že vždy, keď hlavné je s názvom, ktorý je v podstate
vždy, keď je aplikácia spustený, vytvorí objekt s názvom AppDelegate.
Ako som už spomenul predtým, celý aplikácia je vlastne objekt sám o sebe.
Takže týmto spôsobom, v podstate iOS app hovorí kompilátora
to v poriadku, budem vytvárať produkt s názvom AppDelegate,
a to bude moja app.
Takže budete musieť ísť prostredníctvom tohto AppDelegate
a uvidíme, čo ten človek robí.
Moja práca je pre mňa urobil.
>> A v AppDelegate môžete vidieť, že tam sú niektoré naozaj podivné funkcie,
dobre vlastne metódy, ktoré Apple už dal.
Čo je toto?
Sú to vlastne len protokoly že som hovoril.
Tak to sú udalosti, ktoré Apple vám dal začať.
Na tom nie je nič v niektorých funkcie práve teraz,
ale ak chceme inicializovať niečo pre našu aplikáciu
než sa dostane do zobrazením akýkoľvek názor, urobíme tu.
>> Stačí si len prečítať názov a myslím, že akcia je v skutočnosti úplne jasné.
Takže teraz hlavný vytvoril objekt pre AppDelegate.
A čo AppDelegate bude robiť je vlastne tiež skrytý od vás.
AppDelegate sa začnú načítanie zásob ViewController.
Takže je to v podstate začnú naloženie do všetky pohľady, ktoré máte
a len vykresliť názor založený na hierarchii.
>> Takže v tomto prípade máme len jeden názor, ktorý je tu.
Tak to je len názor že to bude hovoriť.
Logika ViewController je tu.
To je kód, ktorý skutočne ovláda názor, sme práve videli.
Dobre, poďme urobiť niečo tu.
Takže viewDidLoad znie ako udalosť, aj keď v skutočnosti je to tiež delegát,
To je tiež protokol.
>> Takže bez ohľadu na názor je načítaný, Všetko vnútri funkcie
sa bude volať.
V tomto prípade by sme mali vidieť "Hello Tianyu! ", Ak sme sa spustiť program.
Začína to byť trochu pomalý zostavovanie scenáre, súborov.
No samozrejme, my vidieť výstup pre neho.
Je to celkom v pohode.
Teraz sa vlastne robiť Mario.
Budem definovať veľmi rýchlo fungovať.
marioWithLevels: výsledky (int) úrovni.
>> Dobre, to je vlastne úžasné znakom s kódom auto dokončenie.
Takže keď budete písať pre a typ vstúpiť, to už vzdal šablóny
pre vás, čo je celkom v pohode.
To by malo vyzerať naozaj poznáte ľudí.
Je nám ľúto, že je to moja chyba.
Dobre, v pohode.
Táto logika by mala vyzerať naozaj povedomý na vami, najmä práve Mario.
>> Ale my sa teraz tlačiť na konzoly zakaždým,
preto, že chceme, aby nejako zachovať track z toho, čo sa tlačí.
Budeme používať Výsledky nejako neskôr,
zobraziť tlače out viesť k užívateľovi.
Takže namiesto toho sme len nslogging všetko,
ktorý sme skladovanie všetko v dôsledku volanie funkcie,
ale logika je úplne rovnaký.
Potom, čo sme ju, skončíme len vytlačiť naše výsledky.
>> A tu miesto tlače na mojej názov, budeme volať funkciu.
Pozrime sa, čo sa stane.
Jejda, samozrejme.
Máme pekný malá pyramída tu.
To je v podstate C, sme len manipuláciu kde volanie funkcie
a ako sa funkcie vyzerať.
Na tom nie je nič iného.
To je však v skutočnosti nie je príliš vzrušujúce tu,
pretože nie sme svedkami niečo z aplikácie pre iPhone.
>> Takže ak ste skutočne iPhone app-- ak ste skutočne Mario iOS právo
teraz, nebudeš vidieť nič, čo by
má čo do činenia s Mariom, pretože všetky tieto výstupy do konzoly
sú skryté od užívateľa.
To je to, čo vidíte, čo je "Hello World !!!"
To nie je dobré.
Teraz sa snaží, aby sa používateľovi zobrazí čo presne sme tlač.
Takže nemusíme označiť ešte.
Skúsme a niečo vymyslíme iné, čo by mohlo byť užitočné.
>> Tam je skutočne jedna prvok, ktorý sa nazýva
textové pole, ktoré by mohli byť veľmi užitočné pre nás.
Je to v podstate zobrazuje oblasť Text, ktorý môže byť upravený.
Takže to vyzerá naozaj užitočné.
Teraz poďme ju pretiahnite a umiestnite ho.
Wow, máme textový výhľad podľa nášho názoru, naozaj fantázie.
To je trochu moc veľký.
Poďme robiť to menšie.
Daj to do centra mesta.
Nech je to menšia rovnako.
>> Teraz máme textový výhľad, ktorý sme mohli byť použité na zobrazenie nášho konečného výsledku.
Ale teraz je to rozhodne nebude chodiť do práce
pretože tam je no-- ViewController sme práve
definované nevie, že je textový pohľad vonku.
Preto musíme nejako prepojiť text názoru sme práve
vytvorený s triedou, ktorá už prišiel s nami.
>> Spôsob, akým to urobiť, je v skutočnosti naozaj čarovné.
Takže otvoriť scenár.
K dispozícii je špeciálny [nepočuteľné] s názvom [? asistent?] [nepočuteľné].
Po kliknutí na to, že to je chystá otvoriť dva súbory.
Jedným z nich je trieda a druhý je zodpovedajúca pohľad na to.
Je to veľmi, veľmi užitočné.
A poďme práve prechádza súbor .h.
Control, to je [nepočuteľný] logika.
Stlačte Ctrl a pretiahnite Text Pohľad do vyhlásenia.
Budeme hovoriť, že outputView.
Pripojiť.
Takže tu máme vyhlásil nový vlastnosť pre našu ViewController triedu.
A nová vlastnosť je len textový názor
sme vytvorili v budove rozhraní.
Takže týmto spôsobom by sme mohli prístup ku všetkým dátam
a manipulovať všetko, čo je vo vnútri výstup názor, čo je úžasné.
>> Takže v našom skutočnom kóde poďme niečo urobiť s ním.
Takže to doba, kedy sme ako tlač out konečnom výsledku pre Mario,
sme v neprihlasuje nič.
Mám na mysli môžeme udržať vyhlásenie protokolovanie.
Okrem toho, aby sme poslať odpočtu sme práve
vytvorené na výstupnej pohľadu, ktorý je UI TextView sme práve vytvorili.
Teraz sa pozrime, čo sa stane.
Wow.
Máme pyramídu v aplikácii práve teraz.
>> Takže užívateľ môže vidieť našu produkciu z dôvodu sme skopírovali výstup z nášho kódu
do nášho rozhrania.
Je to celkom dobrý.
Je to vlastne nie je tak vzrušujúce, pretože sme can--
Všetky aplikácie robí, je ukazujúci pyramídu na vás,
a nie je to nič, čo môžete robiť.
Je to nijako zvlášť vzrušujúce.
Takže teraz poďme urobiť tlačidlo že bude jasné názory.
Zdá sa, že tlačidlo bude užitočné.
Drag and drop.
Button jeden.
Button dva.
>> Takže keď sme kliknite ľavým tlačidlo, pohľad by sa mali odstrániť.
Malo by byť nič, čo na obrazovke.
A keď sme potom kliknite na tlačidlo pravým tlačidlom, Mario,
pohľad bude opäť objaviť.
Tak takto urobíme tiež mágia veci, riadenie a ťahať
k deklarácii triedy V asistent director--
V asistent prehliadač.
V tomto prípade sa zadaním že by mali byť akcie.
clearMario.
>> Tak tu sme už vytvorili akcie s názvom clearMario,
čo je spôsob, ktorý by bol nazývaný vždy, keď stlačíme tlačidlo jasné.
Takže v našom vlastne kód, povedzme dal výstupný text a výstupné názor
do ničoho, a že cesta to bude vyzerať, že je jasné.
Okrem toho, že si vytvoríme iná metóda tzv runMario.
Oh prepáč, že by nemal byť majetok.
Dobre, že by sa akcie tiež.
>> A keď sa táto funkcia je volal, my stačí spustiť Mario desať.
Dúfajme, že to bude v poriadku.
Má to zostaviť?
Áno.
Teraz máme výhľad.
Máme výstup.
A nech to jednoducho vidieť, čo sa stane.
To je preč.
To je zase späť.
Tak tu sme stanovili aké funkcie
sa bude volať, ak napíšeme v niečom,
keď stlačíme konkrétne tlačidlo.
To je v podstate cieľ akcie schéma
pre udalosť riadený programovanie v Objective C
>> Okrem toho, to nie je moc vzrušujúce
preto, že sme si to moc meniť ako vysoko pyramída bude,
tak sme asi chceli nejako získať vstup od užívateľa
a meniť výšku pyramída na základe toho, čo výstupu.
Takže budeme robiť, že.
Takže tentoraz, keď hovoríme runMario, nemáme len zavolať Mário priamo.
Tahle je titul.
>> Delegáta.
To je veľmi zaujímavé.
Čo je to delegát?
Chystám sa dať ja tu.
A budeme vidieť čo to znamená neskôr.
Tak tu sme v podstate vytvorili konkrétny príklad volal upozornenie UI
view.
Pohľad UI výstraha v podstate to, čo bude
pozri Každý, keď niečo popy up a požiada vás o vstup,
ako to, čo sa stane, keď sa snažíte niečo kúpiť na App Store.
>> Okrem toho, že po vás vytvoriť, sme len ukázať záznam.
Dobre, nech to jednoducho rýchlo Test bude, že práca, alebo nie.
To je veľmi cool.
Teraz poďme vlastne vytvoriť vstupné pole pre záznam UI.
To je, ako to urobíme.
A mali by sme mať Vstup výhľad na pohotovosti.
Veľmi cool.
Povedzme, že 10.
>> Nie je to niečo robiť pravý teraz, pretože volania skutočne
nezmenila pre vykonávanie Mario.
Tak sa to stalo trochu trochu divné, pretože vždy, keď
stlačíme tlačidlo nadol, kedykoľvek sme stlačenie tlačidla v zobrazení výstrahy,
sa niečo stalo, ale to sa nestane.
Ako chytiť, že?
Ako vieme, že užívateľ odmietol výhľad upozornenia
a už zadali číslo, pretože teraz sa nič skutočne deje.
>> No, možno ste uhádli to správne, delegácie.
Takže okrem všetkých tieto vyhlásenia,
musíme pridať novú delegáciu na Vyzvala UI zobrazenie v strehu delegáta.
Tak, že každý jednotlivý interakcie alebo udalosť
že budeme mať s výhľadom UI výstrahy
sa bude zaobchádzať podľa našej triedy tiež.
>> Takže okrem toho, bude alert pohľad Kliknite na tlačidlo na indexe.
Toto je dosiahnuté.
Takže v prípade, že máme already-- takže máme
Zistil protokol, ktorý bude spracovávať prípad, kedy
klikneme na tlačidlo Hotovo Na zobrazenie výstrahy.
Takže zakaždým, keď opomenieme Pohľad v strehu, keby k tomu došlo.
Dovoľte mi, aby som vyskúšať veľmi rýchlo.
No naozaj, sme tu dosiahli.
>> Tak tu, budeme čo nie v skutočnosti si je vlastne
dostať the-- Takže chceme dostať von text, ktorý sme predtým
vstúpil v zobrazení výstrahy.
A na základe textu, sme bude zobrazovať Mario.
Jedná sa o veľmi rýchlo ukáže, že ak to naozaj funguje, alebo nie.
Takže v tomto prípade, ak sa vstupné, povedzme, 10, mali by sme vidieť 10.
>> Veľmi dobre, máme číslo tu.
Je to celkom dobrý.
Teraz posledný krok bude be-- tak Posledným krokom musíme urobiť práve teraz
Je len zavolať Mario s level založený na vstupe
že sme dali do zobrazenia výstrahy.
Preto musíme previesť Tento reťazec do iOS.
Statické pretečeniu je veľmi desivý.
A potom stačí zavolať ja marioWithLevels hodnotu.
Poďme sa pozrieť, bude, že v skutočnosti fungovať, alebo nie.
>> Už ste daný pyramídu.
Skúsme zmeniť výšku.
To skutočne funguje.
Je to celkom v pohode.
Takže teraz môžete len Vstupné akýkoľvek hodnota, ktorú chcete.
Povedzme, že štyri.
To je dosť desivý.
Takže to je v podstate Naozaj rýchly príklad
o tom, ako vytvoriť projekt s kódom a ako sa veľmi rýchlo nadpájania
niektoré naozaj jednoduché akcie a funkcie.
>> Takže zdroj bude na uvedenie on-line neskôr.
Takže ak máte záujem v tom, ako iOS Mario funguje,
Chystám sa dať presne rovnaký Projekty na internetových stránkach CS50 neskôr.
Sme v podstate urobil s leto, a ako sme dokončiť
Len som vám chcel upozorniť ľudí na niektoré naozaj úžasné zdroje, ktoré
sú k dispozícii online.
>> Je zrejmé, že dokumentácia Apple bude veľmi užitočné.
Ale okrem toho, ja to najmä Odporúčame štyri zdroje, kód školy,
dom na strome, AppCoda a WWDC videa.
Kód škola a dom na strome sú dve on-line webové stránky vzdelávanie,
ktoré sa špecificky zameriavajú softvérového inžinierstva.
Najmä pre kód školy, ktoré majú naozaj dobrý návod na iOS.
>> To je naozaj rýchly príklad za to.
Sú to vlastne vytvoriť naozaj cute-- pozrite sa na to malé roztomilé iPhone
vole tam, že je to dosť desivý.
A spôsob, akým vysvetliť cieľ Syntax C je úplne jasné.
Strom dom je rovnaký.
A AppCoda je forum.
Je to vlastne blog, ktorý bol spustený by naozaj skúseného Objective C
programátor.
A všetky tie cvičenia v AppCoda sú celkom krátke a ľahko implementovať,
vysoko odporúčané.
>> A ak ste vývojár, rozhodne ísť skontrolovať
ako videá, WWDC, kde si môžete dozvedieť sa o najnovších programovanie iOS
techniky, rozhranie API a knižnice.
Tak to je celkom veľa to na seminári.
Ďakujem moc.
A ja dúfam, že sa baviť vytvoriť si vlastný iOS aplikáciu.