>> Tianyu LIU: Ahoj, jak se má to jde všem?
A to je iOS App programování Objective C semináře.
A mé jméno je Tianyu Liu.
Jsem Lowell junior právě teď, soustředit se v informatice.
Takže v tomto semináři jsem si bude vás naučí lidi
něco málo o tom, jak aplikaci.
Hurá, nadchnout pro to.
>> Takže než jsme se dokonce začít potápění do aktuálního programového straně,
Prostě velmi rychle mluvit Proč budete chtít vytvořit aplikaci iOS?
Proč je iOS tak úžasné?
Takže první problém, první věc, která je dost děsivý pro nás,
zejména jako CS50 student, je to, že iOS
používá Cíl C. No, je tu nový jazyk s názvem Swift,
ale my nebudeme použití, které v tomto semináři.
Máte-li zájem o Swift, tam je nezávislý seminář o tom.
Ale Objective C je v zásadě podmnožinou C. Význam
že všechno, co používáte v C může být přeložen do Objective C
velmi snadno.
>> Jak můžete vidět později, že skutečně tam jsou některé velmi základní syntax, jsou
v podstatě přesně stejný, C a Objective C. Tak,
protože jste vzali CS50 up tak daleko, že již
vím Objective C, alespoň 40%.
Také, Apple má opravdu robustní API pro iOS.
Existuje spousta opravdu šílené věci, které můžete udělat s ním.
Jedním z nich je někdo vlastně vytvořil aplikaci iOS
jejich ovládání vozidel, která Je docela zajímavé.
Pravděpodobně vrtulník je více vzrušující.
Ale to je, jak silný iOS API může být.
>> A jak by se mohlo mít přišel právě teď,
přetečení zásobníku je pravděpodobně jedním z Nejdůležitější on-line zdroje
K dispozici pro vás.
A dobrá zpráva, pro každého jediný problém, můžete případně
myslet při vytváření vašich závěrečný projekt v Objective C,
je pravděpodobné, přetečení zásobníku odpověď.
Je to prostě úžasné.
Kromě toho, iOS je opravdu platforma
kde se můžete dostat obrovský publikum s malým úsilím.
Není to jako Android, kde všechno je docela roztříštěný.
>> Vše iOS je jednotný.
A tak dlouho, jak si vytvořit aplikace pro iPhone,
můžete snadno port, který na iPad, iPad mini, nebo různé velikosti iPhone.
To vše jsou opravdu pohodlné.
A to je jen opravdu dobrý pro imponující své přátele.
Stačí si jen držet iPhone a řekněte svému příteli hej,
To je aplikace, co dělat.
Můžete to udělat, že pro jakýkoli desktopových aplikací, což je hezké.
>> Dobře, teď pojďme skutečně dostat do jazyka Objective C.
Tak proč ne my začínáme některé opravdu základní syntaxe.
Jak jsem se již zmínil dříve Cíl C Je to v podstatě podmnožinou C.
Takže hodně základní syntaxe vlastně úplně stejný.
Deklarace proměnné a přidá dvě proměnné spolu
je přesně tak, jak jsme to udělali v Mario.
Nic nového zde.
>> Stejně tak, nájemník pro smyčce a stav je také stejná.
Můžete to udělat pro smyčce, stejně jako vy které dělal v Mario [neslyšitelné].
A vy můžete udělat podmínky stejně jako to, co
dělali v předchozí p sad.
Nicméně, Objective C není zcela C,
a je tam něco, co Je trochu divné o tom.
>> První z nich je, že když jste dělá programování C, obvykle volání
patří a pak název knihovny.
Ale v Objective C říkáte, aby dovoz.
V podstatě říká funkčnosti jen různá jména.
A řetězce jsou vlastně trochu divné.
Můžete vidět, že první věc, která je trochu divný
je to, že máte dost weird-- sorry-- máte dost divné NS
Přihlašte se sem.
A druhá věc že je to trochu divné
se máte na znak před skutečně deklarovat řetězec.
Takže zavináč v podstatě znamená, že řetězec není jen řetězec,
to je ve skutečnosti objekt.
Budeme vysvětlovat že později takže se nemusíte
panika, pokud nemáte pochopit, co to znamená.
A tisk na konzole je trochu odlišné, protože v C nazýváme printf,
ale v Objective C, zavolejte [neslyšitelné].
>> Možná se divíte, co to je.
To je v podstatě printf, jen jiný jazyk.
Přesně stejné použití, přesně stejné funkce.
No, ukázalo se, že Objective C vlastně
má ns prefix téměř všechno, každá základní datový typ,
NSString, nsarray, nsdictionary.
Důvodem je, že ns vlastně znamená další krok
což je společnost, která Steve Jobs založil,
což je společnost, kde Jazyk Objective C je na světě.
Tak to je v podstatě tradice.
Já vím, je to trochu divně, ale je to Apple.
>> Takže něco, co je ještě divnější než že je deklarace funkce.
To je velmi odlišné od toho, co jsme vidět v C, protože tady to vlastně
nevypadá jako C už.
Co máte here-- by způsob, jak to není odrážka,
to je znaménko mínus.
Máte znaménka mínus závorka void a pak název funkce.
Řekněme, že pokud budeme mají Hello World, poté
typ návrat bude zrušena proto, že jsme nic vrátit.
>> To, co se opravdu divný je, že když jste
které mají více než jeden parametr přecházet do stejné funkce, která
bude opravdu divné, jak je znázorněno zde.
Máme název metody, volal addInt na [neslyšitelné]
a my jsme zadali jeden parametr.
Ale po tom, máme Více jméno volání metody se.
A poté, co se budeme absolvování Druhým parametrem.
To je vlastně trochu divné, Ale všechny tyto funkce prohlášení
sledovat stejný průběh, jako toto.
>> Máme mínus začít.
Znaménko minus může být znaménko plus někdy zakládají na tom, jaké metody
to je.
Metoda je v podstatě jiný název pro funkci.
A budeme se vysvětlit, že později, když
mluvíme o objektu orientované programování.
Nejprve určit návrat typ závorkách,
po kterém přichází název metody.
Ty předávání jeden parametr.
A pokud máte více parametrů je třeba rozšířit název metody
a v podstatě napsat něco více zde.
>> Může to být cokoliv chcete.
V našem případě je to s.
Ale dalo by se říct konec, nebo nebo nebo abc plný bar, co chcete.
A pak po tom jste předávání parametru b.
To je opravdu zvláštní konvence, ale my jsme
uvidí, proč Apple chtěl k tomu, že velmi rychle.
Tak jak se vám volání funkce?
Volání funkce v Objective C je také odlišné od C.
>> Vlastně, volání Funkce v Objective C
je spíš mluvíte s někým.
Zde máme já, které se nazývá objekt.
Vy jste v podstatě říct, námitky sebe říct: "Hello World!"
To je, jak k volání funkce.
Objekt a název metody v kombinaci s ostatními.
A to je místo, kde divný rozšíření pro název metody opravdu přijde do hry.
>> Pojďme se podívat na druhý příklad.
Právě jsme definovali metodu nazvanou addInt s bla bla bla.
Takže v tomto případě, kdy voláte že konkrétní [? poselství?] to jde
vypadat jako vlastní addInt: 10 s: 2.
Zní to jako angličtina.
I když funkce deklarace funkce je divný,
bod Cíl let C metoda prohlášení vzor,
je, že když voláte funkce nebo metoda
to bude znít jako skutečný angličtiny.
Takže je to velmi intuitivní jakmile se dostanete do toho.
>> Zejména v tomto případě, kde si můžete v podstatě
vidět, že název funkce je druh dokumentace sama.
Ty nepotřebuješ více vysvětlení vidět
co přesně se děje, co se přesně jeden parametr dělá.
Nad rámec, který, pojďme mluvit trochu bit o objektově orientovaného programování.
Objektově orientované programování je Jedním ze základních programů
techniky nebo vzory, které je použitý cíl C. Objective C
se nazývá cíl C, ne C, pro opravdu dobrý důvod.
>> Takže než se dostaneme do Cíl syntax C,
Pojďme se podívat na opravdu rychle co přesně je objekt.
Jsme asi udělali něco jako objekt před, který
se nazývá struct, když jste implementaci strom nebo propojený seznam
nebo [? zkusit. ?] Takže, to je v podstatě jako struct,
ale je to mnohem silnější než to.
Objekt má metody a vlastnosti.
Metody jsou v podstatě funkce.
V podstatě funguje, že specifické pro určitý objekt.
>> A vlastnosti jsou v podstatě pole zadáte do struct.
Takže pro každý objekt máme nějaký majetek
že má některé proměnné, které jsou specifické pro daný objekt.
A máme některé funkce, které jsou rovněž specifické pro daný objekt.
A funkce jsou volány metody a proměnné se nazývají vlastnosti.
Je to jen vymyšlené jméno.
Zatímco jsi skutečnosti, každý názor vidíte, když otevřete aplikaci iOS,
řekněme, že Twitter nebo Facebook, každý pohled vidíte, je objekt.
A dokonce i celá aplikace je objekt začít.
Velmi zajímavý koncept.
>> A proč chceme objekt orientovaného programování?
Takže si dovedete představit, že když Program, je to poměrně složité.
Řekněme, že když jste provádění šachovnice,
logika bude je opravdu složité.
Máte 36 různých kousky, takže pokud jste
chci psát logiku pro všechny 36 různých kusů v šachy,
že to bude hodně různé funkce a proměnné.
Je to hodně problémů.
A pravděpodobně budete psát jiný způsob nebo různé funkce
pro každý kus přesně kontrolovat, co dělají.
>> Ale pokud si objektově orientovaný programování, všechny tyto kousky
lze abstrahovat do jediný objekt.
A objekt bude mít nějaké společné vlastnosti, jako je, jaký druh dílu
je to?
Jakou má barvu?
Jak se to může pohybovat?
A tímto způsobem budete mít velmi zjednodušená logiku to.
Takže je to jen opravdu dobrý způsob, jak aby složité programy,
a hierarchický vztah v rámci programu, velmi jednoduché.
Jak budeme vidět Proto velmi rychle, když
jsme skutečně dělá programming-- když jsme vlastně
dělá S kód programování se později.
>> No kromě toho, objektově orientované programování
je jen spousta legrace.
Musíte vytvořit vlastní objekt.
Musíš vytvořit to, co dělá to vypadá, jako by sami.
Neexistuje žádná správná odpověď na to.
A je to úplně zajímavé.
Takže v objektově orientovaného programování, dva základní pojmy
Bude třídy a instance.
Třída je v podstatě šablona pro objekt.
A instance je v podstatě jeden konkrétní objekt.
>> Řekněme, že děláte cookie.
V tomto případě, každý cookie skutečně skončit
bude objekt.
Ale cookie desku můžete použít k pečení všechny cookies bude třída.
Třída je v podstatě šablona.
A instance bude jeden konkrétní objekt vytvořený z této třídy.
>> A instance bude vytvořena na základě deklarace třídy,
jak uvidíme v dalších snímků.
Tak pojďme vlastně dělat opravdu rychlý příklad [neslyšitelné].
Řekněme, že jsme vyhlášení objekt pro kočku.
Objekt by měl have-- třída kočka by měla
mají některé vlastnosti a metody.
Jaké vlastnosti by měl třída have-- by kočka mít?
>> Například, barva, věk a plemeno, ty
bude proměnné, které jsou specifické pro každou kočku.
A to jsou některé věci který používáme k popisu kočku.
Jaké metody, nebo co může kočka dělat?
Některé rychlé příklady byly by chase myš, jíst ryby nebo jen mňoukat.
To je opravdu rychlý Příkladem kočičí třídy.
A opravdu specifický kočka objekt bude kočka
kde určíme barva, věk a plemeno.
>> V tomto případě, náš objekt již třídy není ještě.
My zkopírujte šablonu ze třídy a určíme každé konkrétní informace
k tomuto specifickému předmětu aby byl nezávislý.
A když voláte Způsob uvnitř objektu,
stačí zavolat mňau na objektu, což je kočka jste právě vytvořili.
>> Pravděpodobně budete tisknout něco jako "Hello World!
Mňau ".
Docela roztomilé.
Dobře, řekněme, dostat se do nějaké detaily
a zjistit, co přesně to dělá přeložit do bytí programování iOS.
Takže v iOS programování každý třída bude realizován ve dvou souborech.
Jeden soubor je tu, která se nazývá rozhraní.
Další soubor je tu, která se nazývá implementace.
>> Typicky rozhraní bude mít extension.h
jak jsme viděli v C knihovny.
A implementace soubor bude mít extension.n.
Je to trochu divné.
Ale n znamená ve skutečnosti .c, neexistuje zásadní rozdíl mezi těmi
dvě.
Takže v tomto případě můžeme vidět, že jsme deklarovat rozhraní, kat: objekt.
To se nazývá dědičnost.
Jsme v podstatě dědění kočka třídy z třídy objektů.
Takže každá vlastnost, a metoda, která byla dříve definovány ve třídě objektu
bude automaticky definováno ve třídě kočky stejně.
>> Kromě toho, definujeme barvu, plemeno, a věk, tři proměnné.
To opravdu vypadá jako něco, co jste udělali předtím.
Vypadá to, že struct.
Že je v podstatě syntaxe o prohlášení struct,
a že je zcela správný.
A protože jsem se zmínil dříve, rozdíl struct
a předmět, jeden z zásadní rozdíly
je to, že předmět má způsob, zatímco struct má pouze proměnné.
Takže kromě vlastností nebo proměnné jsme vytvořili pro objekt,
určíme nějakou metodu.
>> Řekněme, že tady máme dvě metody, jedna je mňau,
Dalším z nich je chase myš.
Pravděpodobně Chceme být absolvování parametr na základě naší předchozí metody
prohlášení vzor.
Pravděpodobně budete chtít být absolvování myši.
A pravděpodobně budete chtít vrátit bool znamenat
Pokud je vaše kočka má úspěšně chytil myš, nebo ne.
>> Jedná se o rozhraní, ale můžeme vidět, že rozhraní skutečně
nedělá nic.
Je to jen řekne program, co exists-- to, co existuje ve třídě kočky.
Tak, aby pro Program něco udělat,
musíme mít implementace souborů.
Tak tady je první věc, kterou děláme, je samozřejmě dovážíme rozhraní.
Poté, co jsme importu rozhraní, definujeme metodu.
>> Řekněme, že tady mňau by jen vytisknout
"Hello World!" na konzoli.
A po provedení soubor, jsme skoro hotové.
To je v podstatě třída Prohlášení o jednu třídu.
Takže teď vyvstává otázka, Jak se vám deklarovat proměnnou?
Způsob, jakým použít třídu k vytvoření Je zde napsáno objekt v Objective C.
>> Ty první určit, že to je ukazatel kočka,
proto, že každý objekt v Objective C konečně implementován jako ukazatel.
A říkáte třídu, volat jim jak je Alloc, který je v podstatě malloc,
říká operační systém, který vám Potřebuji místo v paměti pro tento objekt.
Poté budete mít objekt a už jste právě inicializovat.
To je jen konvence.
Já vím, že je to je trochu divné, ale To je vlastně, jak Apple dělá věci.
>> Přiřazení vlastností je vlastně docela jednoduché.
Je to velmi podobné Co děláte, když
jste přiřazení některé konkrétní pole uvnitř Struct.
Musíte jen proměnnou jméno, název vlastnosti,
a přiřadit konkrétní hodnotu k němu.
A volání metody je velmi podobná.
Volání metoda je v podstatě o čem mluvím
pro volání do všech metodu cíl C.
>> Ty předávání objektu, v v tomto případě to bude myCat,
a vy jste předáním název metody.
Jako by mluvíte k objektu, myCat, že byste měli mňoukat.
Je to docela zajímavé.
Po tom, zde je jedna důležitější návrhový vzor
že musíme hovořit o než se dostane do skutečného S kód.
Tento návrhový vzor se nazývá událostmi řízené programování.
To je také pravděpodobně jedním z nejvíce základní myšlenky v programování systému iOS.
>> Takže si asi nevíte, co přesně je událostmi řízené programování,
ale to není opravdu tak děsivé.
No ve skutečnosti, budete mít Již udělal předtím.
To je jedna z linek, které jste pravděpodobně již psali v minulém [neslyšitelné]
of CS50, google.maps.event.addListener (značka,
"Click", function () {}) :.
Voláním tento řádek jste v podstatě říká počítač
že vždy, když volal událost "Klepněte na tlačítko" děje na značku,
použijte tuto funkci.
>> To je velmi odlišné od to, co dělat v mario.c.
V mario.c stačí spustit program jednou, to vám dává výstup,
a máte hotovo.
Jedná se o něco jako One Shot programy.
Událostmi řízené programy jsou velmi, velmi odlišné.
Pojďme si představit, pokud Facebook je jedna záběr programu to není opravdu dobrá.
Prostě jít na Facebook jednou a je to hotovo.
To vám dává nějaký výstup a nikdy ho dostal zpátky.
Ty nikdy nic víc.
>> Tak tady, a to zejména vzor používáme je
události řízené, takže každá funkce bude
být zachycen na základě toho, co Akce se stalo.
Například, pokud máme tlačítko a určíme
že kdykoli se, že kliknutí na tlačítko, volání funkce s názvem "Hello World!"
Tímto způsobem můžeme opravdu spravovat funkce logiku
průtok ve velmi flexibilně.
Uživatel si může dělat, nebo volání funkce , která již byla volána.
Je to zcela na základě toho, co uživatelé dělají.
>> Takže můžeme vidět, že je to ve skutečnosti mnohem lépe než mario.c.
A dobrá zpráva je, že je to ve skutečnosti není nový koncept.
Vy jste tak již učinili že v poslední problém nastavit.
Takže v Objective C existují tři různé diagramy
pro událostmi řízené programování.
První diagram volal cíl akce,
kde svázat tlačítko lis s nějakou funkcí.
Řekněme, že vždy, když klepnete na tlačítko některé tlačítko, volání nějaké funkce.
To je velmi jednoduchý cíl akce.
>> Druhý z nich je vlastně nejtěžší,
je to jen delegace na protokolu.
Budeme vysvětlovat že velmi podrobně později.
A třetí způsob je oznámení.
To je ve skutečnosti není velmi důležité, protože pokud
jak jsme znepokojen, protože šance že budete používat oznámení
v konečném projektu je velmi nízká.
Takže budeme přeskočit tuto část.
>> A budeme se potápět v delegaci na protokolu.
Takže co přesně je protokol?
Nebo co přesně je delegace?
Pojďme se bavit o protokol začít.
Protokoly nejsou nic jiného než akce.
Ale tyto události jsou uvedeny na vás Apple začít.
Například, já nejsem zcela jistý, jak mnozí z vás
kluci používat Apple originál app mail nebo kontakt,
ale pokaždé, když se posunete stůl a stiskněte konkrétní buňku
na stole, to je událost.
>> A pokud si chcete udělat že událost sami,
je to vlastně trochu tvrdý.
Takže Apple dal, že i pro vás takže stačí přímo použít
událost něco udělat na vlastní pěst.
Protokoly jsou vlastně opravdu, ale opravdu široce používán
v Objective C. dobře Skutečnost, každý app
Má něco chytil app delegáta.
Uvnitř delikátní je všechny protokoly pro načítání aplikace.
>> Řekněme, že je zde akce pro cca udělal zatížení.
Takže to, co by se mělo stát poté, co jste vytvořil aplikaci, po otevření aplikace,
Po zavření aplikace, nebo po si dát iPhone do režimu spánku.
To vše jsou události, které má již byly poskytnuty na vás.
A původně uvnitř těchto částic nebude realizace.
Apple vám právě řekl, že tuto funkci se stane, když se někteří události dojde,
ale to, co dělat s tím Funkce je zcela na vás.
>> Delegování je v podstatě říká třídu
že byste měli zvládnout tyto protokoly.
Je to trochu matoucí, ale to bude
mnohem jasnější, když děláme se s kódy v akci.
Delegace na protokolu je vlastně velmi robustní mechanismus v tom smyslu,
že pokud budeme dělat delegaci do určité třídy,
můžeme v podstatě zvládnout všechny druhy akcí
pomocí libovolného třídy máme, velmi pohodlný nástroj.
>> Takže jeden rychlý příklad pro delegace na protokolu
bude to, co jsem právě mluvil o.
Tento protokol konkrétně se nazývá TableView [neslyšitelné] vyberte roli
V [? index?] [? minulost. ?] Takže to událost, která by se chytil, když vás
vlastně klepněte na konkrétní buňka ve vašem TableView,
řekněme, že ve vašem mailu nebo v kontaktech aplikace.
>> Uvnitř funkce byl původně dělat nic.
Funkce není dělat nic ve výchozím nastavení.
Ale můžete zadat co funkce dělá,
vzhledem k tomu, co chcete z vaší aplikace.
Velmi vhodný nástroj.
A s tím vším Jak již bylo řečeno, jsem v podstatě
pokrývají některé velmi základní syntaxe a Základním konceptem pro Objective C
programování, a můžeme udělat nějaké y kód.
Mnohem více vzrušující.
Takže je kód je ve skutečnosti trochu ohromující
když jej otevřete poprvé.
>> Jeden rychlý poznámka, takže pokud máte Chcete udělat iOS rozvoje
Velmi doporučuji máte Mac.
Vzhledem k tomu, dělat iOS vývoj na Windows je opravdu, opravdu těžké.
Je to proveditelné, ale je to opravdu těžké.
A určitě dělat nebudete chtít používat g upravit.
Takže s kódem máme několik různých oblastí.
Při prvním otevření se s code uvidíte navigační oblasti,
který v podstatě vám ukáže všechny soubory, které je v aktuálním projektu.
>> Máte panel nástrojů prostor, který je v podstatě řídící názory,
nebo nějaký malý rychlý Nástroje asi s kódem sám.
A to je skutečná editor oblast.
Tato oblast je velmi podobný g editovat, ale mnohem lepší, než g editovat.
A v této pravé části, je volal užitná plocha.
Oblast se stává opravdu vhod, když budete vytvářet rozhraní nebo zadáním
Některé rychlé nastavení pro vaši aplikaci.
>> A poslední oblastí je ladění.
Tato oblast obsahuje konzolu.
Takže vždy, když říkáte printf, nebo NSLog v našem případě,
všechny vaše výsledky jsou bude vytištěn zde.
V pořádku?
Myslím, že můžeme velmi rychle udělat Příkladem pro programování iOS.
A pojďme vlastně otevřít s kód.
Takže pokaždé, když otevřou s kód, to je ukážu něco takového.
Bude se vás zeptat Co chcete dělat?
Chcete začít něco náhodný, dětské hřiště, v podstatě ty
si jen vyzkoušet kód bez ve skutečnosti se zavázat, že jakékoliv aplikace.
>> Chcete vytvořit nový projekt?
Nebo chcete, aby i nadále práce na stávajícím projektu?
V našem případě budeme k vytvoření nového projektu.
Takže je to opravdu pěkné, s Kód ve skutečnosti již
vám dal nějaké šablony pro vytváření objektů.
Pokud si chcete udělat hru, to kód ve skutečnosti má herní šablonu pro vás,
má strana na základě žádosti, Karta aplikace založené.
V tomto případě, budeme udělat něco velmi jednoduchého,
a budeme používat jedna žádost pohled.
>> Po tom, co chcete volat Váš produkt, a to, co je vaše jméno,
Jaký je váš identifikátor, a Jaký jazyk používáte.
Zde se nechceme zkontrolovat pomocí základní údaje.
Jádro dat je v podstatě databasing iOS.
Pokud tak učiníte základních údajů, s kód bude definovat
mnohem složitější třídy pro vás.
Tak, aby vše jednoduché, my jsme prostě dělat bez základních údajů
právě teď.
>> Problém budeme mít použití je that-- problému
budeme třeba vytvářet je, že jsme v podstatě chcete importovat Mario z C
do aplikace iOS.
Tak řekněme, že Mario-iOS.
Samozřejmě určíte, co vás chtějí, aby v projektu.
A tam jdeme.
>> Tak tohle je trochu ohromující, ale to je ve skutečnosti
to, co jsme právě viděli na snímcích.
A první oblast vidíme právě teď je v podstatě nastavení projektu.
Takže vše, co chcete dělat projekt, jaký druh zařízení,
řekněme, že to, co druh zařízení Chcete, aby vaše aplikace se objeví na?
Je to iPhone, iPad nebo univerzální?
Takže orientace zařízení, všechny ty věci.
Není příliš důležité, ale může být, ale toto
je místo, kde můžete nastavit Váš projekt, pokud jste skutečně
chtějí nasadit do obchodu Apple.
>> Dobře, pojďme se podívat na něco, co je v našem kódu.
Pojďme projít souboru navigátoru.
A to jsou všechny soubory, které již přišel s šablony, velmi pěkné.
Takže když jsme se na jednu z nich to je to, co to vypadá.
Velmi podobné g editovat.
Ale je vidět, že zvýrazňování syntaxe je pravděpodobně
trochu hezčí.
A to je ve skutečnosti mnohem víc mocnější než editaci g.
A můžete auto kompletní spousta věcí pro vás,
jak uvidíme velmi rychle.
>> Pojďme otevřít ladění oblast stejně.
Dobře, jak můžeme vidět, konzole je tady.
To je to, co budete vidět, kde jste v printf nebo nsloging něco.
Takže bez dalších okolků, pojďme vlastně sestavit aplikaci a uvidíme, co se stane.
Jeden zásadní vlastnost pro s kód, je to, že s kód
přichází s iPhone simulátoru.
Takže nemusíte mít iPhone vyzkoušet váš projekt,
s kód může simulovat, že pro vy, jak můžeme vidět hned teď.
>> Je to docela pěkné.
Je to brát trochu trochu času při sestavování
a v podstatě máme prázdný aplikace,
který vlastně nic nedělá.
Ale to sestavuje.
Je to dost děsivý.
Je to mnohem lepší, než C, co?
Dobře, tak pojďme zkuste něco přidat.
Jeden soubor, který je trochu Zde divný se nazývá scénář.
To je vlastně skvělý, úžasné funkce pro s kódem.
Vzhledem k tomu, v s kódem, můžete skutečně drag a pokles prvků na rozhraní
a to se přímo zobrazí.
Zkusme to.
>> Máme pokles štítek tady, "Hello World !!!"
Můžeme centrum, které.
Docela v pohodě.
A teď pojďme spustit tuto zastavení simulace.
Zde máme "Hello World !!!"
Neměli jsme ani dělat ještě žádné kódování.
Co to sakra děje?
To je, jak silný Interface Builder může být.
Někdo dokonce řekl, že Můžete si asi jen
dokončit aplikaci bez písemného Pravděpodobně tisíc řádků kódu
pouze pomocí rozhraní Builder.
Ale to asi není nejlepší způsob, jak to udělat.
>> Nyní pojďme skutečně dostat až na kódování.
Takže struktury souboru je ve skutečnosti opravdu zajímavé
protože, jak můžete vidět, tam není hlavní funkcí kdekoliv.
Vidíš?
Jak již bylo řečeno, můžete vidět, že to
je soubor implementace pro konkrétní třídu.
Ale není tam žádný hlavní nikde.
Takže kde je hlavní?
Ve skutečnosti je hlavní, ale Hlavní je vlastně skrývá od vás.
Hlavní je tady.
To vypadá povědomě.
>> Takže v podstatě to, co iOS dělá uvnitř hlavní
je to, že vždy, když hlavní je s názvem, který je v podstatě
vždy, když je aplikace spuštěn, vytvoří objekt s názvem AppDelegate.
Jak jsem již zmínil dříve, celý aplikace je vlastně objekt sám o sobě.
Takže tímto způsobem, v podstatě iOS app říká kompilátoru
to v pořádku, budu vytvářet produkt s názvem AppDelegate,
a to bude moje app.
Takže budete muset jít prostřednictvím tohoto AppDelegate
a uvidíme, co ten člověk dělá.
Moje práce je pro mě udělal.
>> A v AppDelegate můžete vidět, že tam jsou některé opravdu podivné funkce,
dobře vlastně metody, které Apple už dal.
Co je tohle?
Jsou to vlastně jen protokoly že jsem mluvil.
Tak to jsou události, které Apple vám dal začít.
Na tom není nic v některých funkce právě teď,
ale pokud chceme inicializovat něco pro naši aplikaci
než se dostane do zobrazením jakýkoli názor, uděláme tady.
>> Stačí si jen přečíst název a myslím, že akce je ve skutečnosti úplně jasné.
Takže teď hlavní vytvořil objekt pro AppDelegate.
A co AppDelegate bude dělat je vlastně také skrytý od vás.
AppDelegate se začnou načítání zásob ViewController.
Takže je to v podstatě začnou naložení do všechny pohledy, které máte
a jen vykreslit názor založený na hierarchii.
>> Takže v tomto případě máme jen jeden názor, který je tady.
Tak to je jen názor že to bude říkat.
Logika ViewController je tady.
To je kód, který skutečně ovládá názor, jsme právě viděli.
Dobře, pojďme udělat něco tady.
Takže viewDidLoad zní jako událost, i když ve skutečnosti je to také delegát,
To je také protokol.
>> Takže bez ohledu na názor je načten, Vše uvnitř funkce
se bude jmenovat.
V tomto případě bychom měli vidět "Hello Tianyu! ", Pokud jsme se spustit program.
Začíná to být trochu pomalý sestavování scénáře, souborů.
No samozřejmě, my vidět výstup pro něj.
Je to docela v pohodě.
Nyní se vlastně dělat Mario.
Budu definovat velmi rychle fungovat.
marioWithLevels: výsledky (int) úrovni.
>> Dobře, to je vlastně úžasné znakem s kódem auto dokončení.
Takže když budete psát pro a typ vstoupit, to už vzdal šablony
pro vás, což je docela v pohodě.
To by mělo vypadat opravdu znáte lidi.
Je nám líto, že je to moje chyba.
Dobře, v pohodě.
Tato logika by měla vypadat opravdu povědomý na vámi, zejména právě Mario.
>> Ale my se nyní tisknout na konzole pokaždé,
proto, že chceme, aby nějak zachovat track z toho, co se tiskne.
Budeme používat Výsledky nějak později,
zobrazit tisku out vést k uživateli.
Takže místo toho jsme jen nslogging všechno,
který jsme skladování vše v důsledku volání funkce,
ale logika je úplně stejný.
Poté, co jsme ji, skončíme jen vytisknout naše výsledky.
>> A tady místo tisku na mé název, budeme volat funkci.
Podívejme se, co se stane.
Jejda, samozřejmě.
Máme pěkný malá pyramida tady.
To je v podstatě C, jsme jen manipulaci kde volání funkce
a jak se funkce vypadat.
Na tom není nic jiného.
To je však ve skutečnosti není příliš vzrušující tady,
protože nejsme svědky něco z aplikace pro iPhone.
>> Takže pokud jste skutečně iPhone app-- pokud jste skutečně Mario iOS právo
teď, nebudeš vidět nic, co by
má co do činění s Mariem, protože všechny tyto výstupy do konzole
jsou skryté od uživatele.
To je to, co vidíte, což je "Hello World !!!"
To není dobré.
Nyní se snaží, aby se uživateli zobrazí co přesně jsme tisk.
Takže nemusíme označit ještě.
Zkusme a něco vymyslíme jiného, ​​co by mohlo být užitečné.
>> Tam je skutečně jedna prvek, který se nazývá
textové pole, které by mohly být velmi užitečné pro nás.
Je to v podstatě zobrazuje oblast Text, který může být upraven.
Takže to vypadá opravdu užitečné.
Nyní pojďme ji přetáhněte a umístěte jej.
Wow, máme textový výhled podle našeho názoru, opravdu fantazie.
To je trochu moc velký.
Pojďme dělat to menší.
Dej to do centra města.
Ať je to menší stejně.
>> Nyní máme textový výhled, který jsme mohli být použity k zobrazení našeho konečného výsledku.
Ale teď je to rozhodně nebude chodit do práce
protože tam je no-- ViewController jsme právě
definované neví, že je textový pohled venku.
Proto musíme nějak propojit text názoru jsme právě
vytvořený s třídou, která již přišel s námi.
>> Způsob, jakým to udělat, je ve skutečnosti opravdu kouzelné.
Takže otevřít scénář.
K dispozici je speciální [neslyšitelné] s názvem [? asistent?] [neslyšitelné].
Po klepnutí na to, že to je chystá otevřít dva soubory.
Jedním z nich je třída a druhý je odpovídající pohled na to.
Je to velmi, velmi užitečné.
A pojďme právě prochází soubor .h.
Control, to je [neslyšitelný] logika.
Stiskněte Ctrl a přetáhněte Text Pohled do prohlášení.
Budeme říkat, že outputView.
Připojit.
Takže tady máme prohlásil nový vlastnost pro naši ViewController třídu.
A nová vlastnost je jen textový názor
jsme vytvořili v budově rozhraní.
Takže tímto způsobem bychom mohli přístup ke všem datům
a manipulovat vše, co je uvnitř výstup názor, což je úžasné.
>> Takže v našem skutečném kódu pojďme něco udělat s ním.
Takže to doba, kdy jsme jako tisk out konečném výsledku pro Mario,
jsme v nepřihlašuje nic.
Mám na mysli můžeme udržet prohlášení protokolování.
Kromě toho, abychom poslat odečtu jsme právě
vytvořené na výstupní pohledu, který je UI TextView jsme právě vytvořili.
Nyní se podívejme, co se stane.
Wow.
Máme pyramidu v aplikaci právě teď.
>> Takže uživatel může vidět naši produkci z důvodu jsme zkopírovali výstup z našeho kódu
do našeho rozhraní.
Je to docela dobrý.
Je to vlastně není tak vzrušující, protože jsme can--
Všechny aplikace dělá, je ukazující pyramidu na vás,
a není to nic, co můžete dělat.
Je to nijak zvlášť vzrušující.
Takže teď pojďme udělat tlačítko že bude jasné názory.
Zdá se, že tlačítko bude užitečné.
Drag and drop.
Button jeden.
Button dva.
>> Takže když jsme klikněte levým tlačítko, pohled by se měly odstranit.
Mělo by být nic, co na obrazovce.
A když jsme potom klikněte na tlačítko pravým tlačítkem, Mario,
pohled bude opět objevit.
Tak takhle uděláme také magie věci, řízení a táhnout
k deklaraci třídy V asistent director--
V asistent prohlížeč.
V tomto případě se zadáním že by měly být akce.
clearMario.
>> Tak tady jsme již vytvořili akce s názvem clearMario,
což je způsob, který by byl nazýván vždy, když stiskneme tlačítko jasné.
Takže v našem vlastně kód, řekněme dal výstupní text a výstupní názor
do ničeho, a že cesta to bude vypadat, že je jasné.
Kromě toho, že si vytvoříme jiná metoda tzv runMario.
Oh promiň, že by neměl být majetek.
Dobře, že by se akce také.
>> A když se tato funkce je volal, my stačí spustit Mario deset.
Doufejme, že to bude v pořádku.
Má to sestavit?
Ano.
Nyní máme výhled.
Máme výstup.
A ať to prostě vidět, co se stane.
To je pryč.
To je zase zpátky.
Tak tady jsme stanovili jaké funkce
se bude jmenovat, pokud napíšeme v něčem,
když stiskneme konkrétní tlačítko.
To je v podstatě cíl akce schéma
pro událost řízený programování v Objective C
>> Kromě toho, to není moc vzrušující
proto, že jsme si to moc měnit jak vysoko pyramida bude,
tak jsme asi chtěli nějak získat vstup od uživatele
a měnit výšku pyramida na základě toho, co výstupu.
Takže budeme dělat, že.
Takže tentokrát, když říkáme runMario, nemáme jen zavolat Mário přímo.
Tahle je titul.
>> Delegáta.
To je velmi zajímavé.
Co je to delegát?
Chystám se dát já tady.
A budeme vidět co to znamená později.
Tak tady jsme v podstatě vytvořili konkrétní příklad volal upozornění UI
view.
Pohled UI výstraha v podstatě to, co bude
viz Každý, když něco popy up a požádá vás o vstup,
jako to, co se stane, když se snažíte něco koupit na App Store.
>> Kromě toho, že po vás vytvořit, jsme jen ukázat záznam.
Dobře, ať to prostě rychle Test bude, že práce, nebo ne.
To je velmi cool.
Nyní pojďme vlastně vytvořit vstupní pole pro záznam UI.
To je, jak to uděláme.
A měli bychom mít Vstup výhled na pohotovosti.
Velmi cool.
Řekněme, že 10.
>> Není to něco dělat pravý nyní, protože volání skutečně
nezměnila pro provádění Mario.
Tak se to stalo trochu trochu divné, protože vždy, když
stiskneme tlačítko dolů, kdykoli jsme stisknutí tlačítka v zobrazení výstrahy,
se něco stalo, ale to se nestane.
Jak chytit, že?
Jak víme, že uživatel odmítl výhled upozornění
a již zadali číslo, protože teď se nic skutečně děje.
>> No, možná jste uhodli to správně, delegace.
Takže kromě všech tato prohlášení,
musíme přidat novou delegaci na Vyzvala UI zobrazení ve střehu delegáta.
Tak, že každý jednotlivý interakce nebo událost
že budeme mít s výhledem UI výstrahy
se bude zacházet podle naší třídy také.
>> Takže kromě toho, bude alert pohled Klikněte na tlačítko na indexu.
Toto je dosaženo.
Takže v případě, že máme already-- takže máme
Zjistil protokol, který bude zpracovávat případ, kdy
klikneme na tlačítko Hotovo Na zobrazení výstrahy.
Takže pokaždé, když pomineme Pohled ve střehu, kdyby k tomu došlo.
Dovolte mi, abych vyzkoušet velmi rychle.
No opravdu, jsme tu dosáhli.
>> Tak tady, budeme co ne ve skutečnosti si je vlastně
dostat the-- Takže chceme dostat ven text, který jsme dříve
vstoupil v zobrazení výstrahy.
A na základě textu, jsme bude zobrazovat Mario.
Jedná se o velmi rychle ukáže, že pokud to opravdu funguje, nebo ne.
Takže v tomto případě, pokud se vstupní, řekněme, 10, měli bychom vidět 10.
>> Velmi dobře, máme číslo zde.
Je to docela dobrý.
Teď poslední krok bude be-- tak Posledním krokem musíme udělat právě teď
Je jen zavolat Mario s level založený na vstupu
že jsme dali do zobrazení výstrahy.
Proto musíme převést Tento řetězec do iOS.
Statické přetečení je velmi děsivý.
A pak stačí zavolat já marioWithLevels hodnotu.
Pojďme se podívat, bude, že ve skutečnosti fungovat, nebo ne.
>> Už jste daný pyramidu.
Zkusme změnit výšku.
To skutečně funguje.
Je to docela v pohodě.
Takže teď můžete jen Vstupní jakýkoli hodnota, kterou chcete.
Řekněme, že čtyři.
To je dost děsivý.
Takže to je v podstatě Opravdu rychlý příklad
o tom, jak vytvořit projekt s kódem a jak se velmi rychle napojování
některé opravdu jednoduché akce a funkce.
>> Takže zdroj bude k uvedení on-line později.
Takže pokud máte zájem v tom, jak iOS Mario funguje,
Chystám se dát přesně stejný Projekty na internetových stránkách CS50 později.
Jsme v podstatě udělal s léto, a než jsme dokončit
Jen jsem vám chtěl upozornit lidi na některé opravdu úžasné zdroje, které
jsou k dispozici online.
>> Je zřejmé, že dokumentace Apple bude velmi užitečné.
Ale kromě toho, já to zejména Doporučujeme čtyři zdroje, kód školy,
dům na stromě, AppCoda a WWDC videa.
Kód škola a dům na stromě jsou dvě on-line webové stránky vzdělávání,
které se specificky zaměřují softwarového inženýrství.
Zejména pro kód školy, které mají opravdu dobrý návod na iOS.
>> To je opravdu rychlý příklad za to.
Jsou to vlastně vytvořit opravdu cute-- podívejte se na to malé roztomilé iPhone
vole tam, že je to dost děsivý.
A způsob, jakým vysvětlit cíl Syntax C je naprosto jasné.
Strom dům je stejný.
A AppCoda je forum.
Je to vlastně blog, který byl spuštěn by opravdu zkušeného Objective C
programátor.
A všechny ty cvičení v AppCoda jsou docela krátké a snadno implementovat,
vysoce doporučeno.
>> A pokud jste vývojář, rozhodně jít zkontrolovat
jak videa, WWDC, kde si můžete dozvědět se o nejnovějších programování iOS
techniky, rozhraní API a knihovny.
Tak to je docela hodně to na semináři.
Děkuji moc.
A já doufám, že se bavit vytvořit si vlastní iOS aplikaci.