>> DANIEL ARMENDARIZ: Hello, kila mtu, kuwakaribisha kwa iOS programu ya maendeleo
na mwepesi.
Mimi nina Dan Armendariz.
Mimi nina precepter ya kompyuta sayansi hapa katika Shule
ya Uhandisi na Sayansi.
Na mwepesi ni kweli ni aina Lugha ya kweli nadhifu.
Na mimi kuwa na baadhi ya mipango ya leo.
Hivyo zaidi ya saa moja ijayo au hivyo tunakwenda kuangalia iOS programu ya maendeleo yenyewe
kutumia Xcode na kwa kweli kujenga baadhi msingi sana, rahisi sana maombi.
Na kuangalia njia ambayo wewe kweli kuchukua maombi hayo,
na kujenga yao, na kwa kweli kuziweka kwenye kifaa iOS.
Baadhi ya mambo ambayo sisi siyo kwenda kuangalia
itakuwa ni pamoja na mambo kama kweli kuchukua maombi
na kuweka juu ya kuhifadhi App.
Kuna mengi ya tutorials ni online kwamba kukusaidia na kwamba sehemu ya maisha yake.
Lakini pia kwa sababu kama sehemu ya CS50, unaweza kupata
kujiunga maendeleo Apple timu, timu programu ya maendeleo CS50 ya.
Kama hujafanya kwamba bado na wewe ni uhusiano na CS50,
Mimi kupendekeza kwamba kufanya hivyo kwa sababu hiyo
ni jinsi wewe ni uwezo wa kujenga baadhi ya mipango katika Xcode,
kuwajenga, na kwa kweli kuweka yao juu ya baadhi ya vifaa yako iOS
kama kweli una kimwili iOS kifaa.
Kama huna iOS kimwili kifaa hiyo ni zaidi ya faini.
Unaweza kweli kuendeleza kwa iOS.
Na Xcode ina simulator kwamba utapata
kuona maombi yako katika hatua kwenye kompyuta yako.
Lakini ni aina ya kitu nadhifu kwa kweli kucheza na kuingiliana
na maombi yako kwenye kifaa halisi.
Hivyo kuna wanandoa wa mahitaji ya kweli kufanya yote ya maendeleo hayo.
Mmoja wao ni kwamba unaweza kuwa na Mac.
Ina kuwa mbio 10.9.4 au baadaye ili kufanya maendeleo na mwepesi.
>> Unaweza kutumia mapema toleo kuendeleza
kwa lengo C kwa iOS na Mac.
Lakini mimi kupendekeza, na mengi ya mifano kwamba tutaweza kuona leo,
kutumia 10.10 Yosemite.
Hivyo kama una bado uppdaterade, ni udhuru nzuri ya kufanya hivyo.
Sasa Xcode 6.1 ni toleo la karibuni la jumuishi maendeleo ya mazingira
kwamba Apple hutoa kwa ajili ya bure ambayo unaweza kushusha off kuhifadhi App.
Na mimi kupendekeza kwamba pia kukimbia toleo la karibuni.
>> Kama kutokea kwa kuwa mbio mapema version, Xcode 5 na chini tu
tu hawana msaada mwepesi wowote.
Na matoleo beta ya sita, ambayo waliachiwa juu ya jua,
kufanya msaada mwepesi, lakini kuna imekuwa idadi kubwa
ya mabadiliko katika lugha, kutosha ili kificho kwamba uko
kwenda kuangalia na kwamba wanaweza kupata kwenye mtandao
si kweli kukusanya vizuri katika matoleo haya kabla ya Xcode.
Hivyo tena, kama wewe kufanya bado kuwa na akaunti developer,
Mimi kupendekeza wewe kwenda developer.apple.com.
Ishara ya juu, kuunda akaunti developer, na kujiunga na timu CS50 programu ya maendeleo.
Ambayo itatoa wewe nafasi kukusanya maombi yako
na kuziweka kwenye kifaa chako.
OK, hivyo hebu kupata kuanza.
jambo la kwanza kabisa tunakwenda kufanya ni
kwa kweli kujenga sana rahisi mradi katika Xcode
kwamba itawawezesha kufanya maombi.
>> Hivyo kama wewe bado hatuna Xcode wazi, kwenda mbele na kufungua
na kujenga mradi mpya.
screen maalum Splash itafungua na nitakupa
baadhi ya chaguzi juu ya nini ni kwamba unataka kufanya.
Tu kusema kwamba unataka kujenga mradi mpya, maombi mapya.
Hii dirisha mapenzi pop up, kuchukua unatumia Xcode 6.1.
Hivi sasa, na kwa ajili ya muda wa semina hii,
tunakwenda kutumia mtazamo maombi moja, tu
aina ya maombi ya msingi kupata miguu yako mvua.
Na unaweza tawi nje juu yako mwenyewe kutoka huko.
>> Bonyeza Next katika hatua hii.
Sasa hapa kuna michache ya mambo kwamba unaweza kutaka kuingia.
jina bidhaa ni jina ya mradi wako.
Katika kesi hiyo, mimi nina tu kwenda kumwita Seminar1
kwa sababu ni mfano wetu wa kwanza.
Jina Organization, katika kesi hii ni jina langu tu.
Unaweza bila shaka mabadiliko hayo kwa jina yako mwenyewe, au kwa CS50.
Shirika kitambulisho, kama wewe kutokea kwa kuwa tovuti tu kuchukua
jina la uwanja katika nyuma, com.yourname.
na kisha jina la bidhaa inapaswa kuonekana moja kwa moja
baada ya kuwa kama kifungu kitambulisho.
>> Ni wazi kwamba lugha tuko itakuwa ni ya kutumia kwa ajili ya leo ni mwepesi.
Unaweza, bila shaka, kutumia C Lengo kwa kuwa, lakini leo itakuwa mwepesi.
Na tutaweza kwa sasa wanasema vifaa zima, hivyo
kuwa ni kazi juu ya wote iPad na iPhone.
Na sisi kuondoka msingi data unchecked kuweka
mradi kiasi rahisi kwa wakati huu.
Basi hebu kwenda mbele na bonyeza Next.
Na itakuja kuuliza mimi ambapo nataka kuokoa yake.
Mimi itabidi kuokoa ni kwa desktop yangu kwa sasa.
>> Haki wote, hivyo sasa hii ni nini mapenzi kutokea wakati wewe kweli wazi Xcode.
Na taarifa kwamba jambo la kwanza kabisa unaweza kuona
ni mshangao hatua hii kwamba anasema hakuna kusaini utambulisho kupatikana.
Mimi kwa makusudi alifanya hivyo kompyuta yangu na mimi nina
matumaini kwamba mimi nina kwenda kuwa na uwezo wa kweli kurekebisha,
kwa sababu nataka kuona jinsi hii kweli kazi kwenye mashine yako mwenyewe.
>> Kwenda mbele na bonyeza fix suala hilo.
Ni kuuliza wewe kama una zilizopo akaunti apple developer.
Hii ni pale ambapo kujiunga CS50 timu programu ya maendeleo
ni muhimu ili wewe si tu una akaunti programu,
lakini pia una uwezo wa kutia saini programu
na kuziweka kwenye kifaa chako iOS.
Hii ni not-- kubonyeza fix suala hilo si muhimu
kama wewe ni kwenda tu kwa kujenga na kuendeleza ndani ya nchi,
kabisa ndani ya simulator iOS.
>> Lakini kwa sasa mimi naenda kuendeleza na kuziweka
juu ya iPad yangu, ambayo itakuwa uwezo wa matangazo pia.
Hivyo mimi wanataka kweli kuongeza hii.
Na ni kwenda kuuliza mimi kwa apple ID yangu.
Hivyo ni kwenda kuwa hii.
Na mimi kuwa kuchota yangu password, ambayo ni zaidi ya hapa.
Basi nipe moja tu ya pili kwa kupata kwamba, na nakala ya kwamba, na kuweka juu ya hapa.
>> Bonyeza Kuongeza.
Ni kwenda kuuliza mimi ambayo timu nataka kujiunga.
Mimi nina kwenda kufanya shule ya uhandisi.
Bonyeza Kujiunga.
Whoops, hiyo ni moja mbaya.
Hebu kufanya hii moja.
Hopefully kwamba moja itakuwa kazi.
Moja ambayo bado haifanyi kazi.
Sisi ni mbio nje ya watu wema hapa.
OK, hii ni moja wanapaswa kufanya kazi.
Sasa karibu hiyo.
Sasa hebu kufanya shule ya uhandisi, bonyeza kuchagua.
>> Na sasa hopefully baada ya wanandoa wa sekunde wewe can-- OK,
Mimi itabidi kufuta na ombi.
Oh mtu, hii ni kwenda kazi.
OK, mimi itabidi kujaribu moja tofauti.
Hebu kufanya hii moja hapa.
Demos kuishi ni kushindwa kwangu.
Tunaweza kuwa na revert tu kujenga kabisa ndani ya nchi,
lakini kwamba itakuwa OK katika kesi hii.
>> Hivyo hapa, wakati hii ni kweli kazi, nini tunakwenda kufanya ni tu
kujenga rahisi sana Habari World maombi.
Hivyo hii ni Xcode.
Na kama wewe si kuonekana ni bado, inaweza kuwa ni kidogo vitisho mara ya kwanza.
Kuna mengi ya panes, kuna mengi ya doodads katika maeneo mbalimbali.
Lakini tu kutambua kwamba kuna vipengele kweli kadhaa kuu
kwa mazingira haya ya maendeleo.
On mbali kushoto ni wote wa files ambayo ni husika kwa mpango wako
au mradi husika.
Tutaweza kuwa kubonyeza kuzunguka juu ya baadhi yao na tutaweza
kumweka nje zaidi ndio muhimu zaidi ya muda.
On mbali haki, sisi kuwa na seti ya sifa.
Na wote wa sifa hizi, kuna ni panes mbalimbali kwa ajili ya sifa.
panes kubadilika kutegemea mazingira ya maudhui kuu, ambayo
hutokea kwa kuwa katikati.
Sasa katikati unaweza kweli kuonyesha wewe aina ya mambo, kwa mfano
code yako yenyewe.
Au unaweza kweli have-- wakati bonyeza storyboard ambayo
ni, kwa njia, tu graphical uwakilishi wa user yako
interface kwa application-- yako basi sifa Pane
juu ya mbali sana haki itakuwa kweli mabadiliko.
Sasa kuna michache ya nyingine mambo ambayo nataka uhakika.
Unaweza aina ya kuchunguza karibu katika mazingira juu yako mwenyewe.
Lakini moja ya mambo ambayo imekuwa muhimu sana
ni kifungo hii hapa, haki juu ya dirisha.
Kuna kifungo hii kwamba inaonekana kama juu ya mbali
kushoto ina aya ikifuatiwa na duru mbili na aina
ya mishale miwili akizungumzia mbali na kila mmoja.
Kama kubadili kati kiwango mhariri, ambayo
ni mbali kushoto mmoja, hiyo kuchaguliwa kwa default,
na duru mbili ukipishana kila mmoja, kwa kweli nini kupata
ni mara mbili kidirisha maoni.
>> Na hii ni kweli kwenda kuwa na manufaa kwa ajili yetu
wakati tunahitaji kuunganisha vitu katika UI na kanuni.
Na tutaweza kuzungumza zaidi kuhusu kwamba katika muda tu.
Lakini kutambua kwamba kama wewe kupata panes hata zaidi kama hii,
unaweza kurahisisha maoni yako tu kidogo kwa kubonyeza nyuma
juu ya mhariri wako moja.
Hadi sasa hivyo nzuri.
Hivyo kimsingi tuna kanuni ya kushoto, sifa juu ya haki,
na chochote ni sisi ni kazi hapa katika kitovu.
>> Hivyo hapa nimekuwa clicked juu ya storyboard kuu.
Na storyboard, tena, ni njia katika Xcode
kuwa unaweza kweli kujenga user yako interface kutumia Drag tu na kuacha
mbinu.
Na hivyo kwa ajili yetu sana maombi ya kwanza hii
ni just nini tunakwenda kufanya.
Sisi ni kwenda chini kwa haki fungu mbali sana chini
ya screen, ambayo ina aina ya mambo user
kwamba unaweza kisha click na Drag kujenga user interface yako.
>> Sasa yote haya mambo ni kuitwa maoni
kwa sababu wao ugavi aina fulani ya maoni.
Kuna picha mtazamo, kwa mfano, kwa kweli kuonyesha
picha kwenye interface user.
Kuna meza lengo la kweli kuonyesha meza.
Kadhalika na kadhalika.
Kuna aina mbalimbali ya ni maoni kwamba unaweza kuchagua hapa.
Hivyo tu kwa sasa tunakwenda kutafuta studio.
Unaweza tu kitabu kupitia wote wa orodha hiyo ni huko.
Lakini kuna search bar chini sana
ambayo inafanya kuwa rahisi kutambua maoni maalum kwamba kweli
wanataka Drag katika user interface yako.
>> Kupatikana studio yangu.
Mimi nina kwenda Drag ni hapa, moja kwa moja kwenye sampuli yangu ya maombi.
Right pale katikati inaonekana nzuri.
Na mimi nina kwenda aina "Hello World!"
Hit Enter.
Sasa nina studio.
Ni haina kuangalia kama ni unaozingatia kabisa vizuri.
Hivyo siwezi kujaribu re-kituo cha hivyo.
Kwa bahati nzuri inatoa haya humwongoa kufanya mambo rahisi sana.
Mimi nina kwenda kujaribu kukusanya yake.
Hopefully itakuwa kweli kazi hapa.
Na kama hana, katika muda tu itakuwa kwa kweli kuonekana kwenye iPad yangu.
Ni haki hapa.
Kuna ni.
>> OK, hivyo hiyo ni yake.
Sisi ni kosa.
Tumeunda yetu sana maombi ya kwanza.
Sasa ni wazi hii haina kufanya kitu chochote.
Ni tu studio.
Hakuna uhusiano kati ya user interface na kanuni.
Hivyo kama sisi kweli alitaka kujenga uhusiano huu,
kama sisi kweli alitaka kuwa na aina fulani ya mawasiliano kati ya mambo
ambazo zipo juu ya screen na kificho kwamba
inaruhusu sisi kudhibiti mambo hayo, basi
sisi kweli wanahitaji kuangalia code yenyewe.
>> Hivyo hii ni kile kinachoitwa ViewController.swift.
Na kwa ajili ya, hasa kwa mipango yako ya kwanza wachache,
hii ni kwenda kuwa aina ya wingi wa kificho kwamba unaweza enter--
ni kwenda kuwa katika hati hii hapa.
Kuna mengi ya mambo hiyo ni katika hapa hivyo mbali, haki?
Kuna kuagiza UI kit darasa ni, override, [? Funk,?] mambo haya yote mbalimbali.
Na ni wazi kabisa nini ni kwamba wote wa hii ina maana.
Basi hebu kuchukua hatua nyuma mbali kutoka Xcode kwa muda kidogo
na kuangalia lugha yenyewe, mwepesi.
>> Hivyo, pamoja na mwepesi, ilikuwa katika kubuni na maendeleo
katika Apple kwa karibu nne miaka ufahamu wangu.
Na kuna wanandoa wa makala kuhusu suala hilo kuwa ni kweli nadhifu.
Awali ya yote, ni ulioandaliwa lugha, tu kama C.
Hivyo wewe kwanza na kukusanya yake na kisha kuendesha
kabla unaweza kweli kutekeleza kanuni kwamba matokeo.
Lakini kuna, tofauti na C, maingiliano haraka kwamba unaweza kweli kuendesha
na aina amri kiholela ndani.
Na sana kama JavaScript console, ambayo unaweza kuwa na mazoea na sasa,
ni kweli itakuwa kutathmini wale amri na kutoa na wewe pato.
Na wameweza hata kuchukuliwa kwamba ngazi ya pili
na wameweza kuundwa kitu kuitwa playgrounds katika Xcode
kwamba kuruhusu kuibua kazi na kanuni.
Na tutaweza kweli kuona baadhi ya mifano ya kwamba katika kidogo tu.
Ni kulingana na C. C underlies hivyo, kwa sababu yote ya compilers
kujenga code nje ya C na kujenga kitu kificho kutoka humo.
Lakini ni kweli hisa kiasi kidogo syntax.
Itakuwa kuangalia haki tofauti.
Kutakuwa na baadhi yanayofanana.
Lakini kuna ni kwenda kuwa tofauti kabisa chache
ikilinganishwa na, kusema, JavaScript au PHP.
Na tutaweza uhakika hizi nje katika muda tu.
>> Sasa moja ya mambo makubwa kuhusu mwepesi hiyo ni nzuri
ni kwamba, hasa ikilinganishwa kwa C, ni maana ya kuwa salama.
Kila kitu katika ni maana ya kuwa nguvu sana typed katika.
Kwa kweli ni karibu annoying mara ya kwanza, wakati wewe kwanza
kuanza kufanya kazi na mwepesi, tu jinsi kiasi utekelezaji aina kila mahali.
Chochote ambacho kamba ina kubaki kamba.
Ni vigumu sana kutatua ya kubadilisha au kushinikiza ni katika baadhi ya aina nyingine.
>> Na tena, tutaweza kuonyesha mifano ya hili.
Lakini hatimaye kutambua kwamba hii ni maana ya kulinda wewe,
na katika wewe I mean code yako, kutoka crashing katika baadhi ya njia ya kutisha wakati
una aina fulani ya mismatched aina.
Na tena, kazi na yake.
Sababu itakuwa frustrating kwa mara ya kwanza kama wewe kujaribu kufikiri kwa nini hasa
wewe ni kupata hii isiyo ya kawaida kosa kushughulika na aina.
Lakini itakuwa thamani yake katika mwisho.
>> Haina kukabiliana na moja kwa moja usimamizi wa kumbukumbu,
hivyo hakuna tena kufanya wewe kuwa na kushughulika na mambo
kama malloc na bure na wote ya aina ya mambo haya.
Na ni pia iliyoundwa kwa ajili generalities.
Hivyo wakati tunaweza kutumia Xcode kwa kuunda programu iOS na maombi Mac,
tunaweza pia tu matumizi yake kama lugha ya scripting.
Na ili tuweze kutumia ni aina ya badala ya PHP au badala
ya Python kwa kweli haraka Hazrat na mchakato
baadhi data kwamba tuna juu ya kompyuta yetu.
>> Ni ina aina mbalimbali za kisasa makala, optionals, mutability,
dawa za kurefusha maisha, kufungwa, na mengi ya hii mambo unaweza au anaweza kutambua.
Na ni tu aina ya bahati mbaya sehemu ya lugha ambayo baadhi ya hizi
aina ya futuristic, mambo ya kisasa kwamba zilizomo ndani ya mambo ni
hivyo imeshinikizwa kwamba mimi kwa kweli mapenzi na kufundisha CS50.5 kidogo.
>> Sisi na kujifunza kidogo zaidi kuhusu baadhi ya vipengele ili
kwa kweli kuelewa nini kinaendelea juu na ili uweze kuangalia code
na si kuhisi waliopotea kabisa.
Na utaona nini namaanisha na kwamba katika dakika moja tu.
OK, hivyo let's-- kutosha ya hii aina ya mambo ya kinadharia.
Hebu kweli kuangalia wetu kwanza kabisa mwepesi wa mpango.
Ni mstari mmoja wa code.
Line 14 haki hapa, ni anasema magazeti l n hodi CS50.
>> Hivyo kuna michache ya mambo ambayo ni tofauti sana kuhusu huu ikilinganishwa
kwa mambo ambayo unaweza kuwa kutumika kutoka C, kwa mfano.
Mmoja wao ni kwamba hakuna intmain, hakuna ni pamoja na sehemu,
kuna hakuna ya mambo haya ya ziada.
The pamoja, kama standard I / O, kama maktaba
kwamba kweli kutoa makala ya kiwango ya lugha,
ni moja kwa moja ni pamoja na kama sehemu ya mwepesi ya kiwango maktaba
na kwamba ni moja kwa moja kutoka nje.
Huna kufanya kwamba kuagiza manually.
>> Intmain haipo kwa sababu kuu kuingia kwa kificho
ni kweli katika mwanzo wa kanuni.
Hivyo kanuni yoyote kwamba una kuanzia mwanzo
kweli ni lazima ifanyike mwanzoni.
Hivyo hii simplifies kweli sana.
Taarifa pia, kwamba hakuna semicolon.
Hakuna semicolons katika lugha hii.
Unaweza kuweka taarifa juu ya line ya mtu binafsi
na kisha mstari wa pili inawakilisha kauli nyingine.
Kama unataka kuweka kauli mulitiple online,
basi una kujitenga na semicolons.
Lakini kwa sehemu kubwa, kwa mtindo mzuri, tuko
kamwe kwenda kuona semicolons kwa madhumuni ya kutenganisha kauli
katika mwepesi.
Hivyo ni jinsi gani hii kwa kweli kazi?
Naam sana kama C sisi kweli kuwa na kukusanya hii.
Na ili tuweze kufanya kwamba kwa kutumia mwepesi c na kisha 1.swift.
Na kisha baada ya wanandoa dakika hii kukusanya
na kisha siwezi kukimbia bidhaa moja.
Na kuliko itakuwa tu kusema "Hello CS50."
Ajabu, hivyo kuna sisi kwenda.
Kuna kwanza mpango wetu hodi dunia ni.
Hebu hoja juu ya namba mbili.
>> Sasa katika this-- hii imebadilika kidogo, kwa sababu wakati wewe kawaida
do-- kwa kweli daima gani una kukusanya maombi mwepesi kabla
kweli kukimbia ubaya wake moja ya sifa kubwa
kwamba mimi alluded kabla ni kwamba mwepesi kweli anaweza kutumika katika aina
ya mode Pseudo-interpretive, kuna kwa kweli ni kama mkalimani.
Lakini nini hii kufanya ni pale ni, kwa kweli, maombi mwepesi
kwamba unaweza kukimbia.
>> Hivyo kwa mfano kama wewe tu aina mwepesi hapa, nini kitatokea
ni kwamba utapata haraka.
Na unaweza aina mwepesi yako code, magazeti hello, na kukimbia nayo.
Na itakuwa kweli print-- vizuri, haikuwa magazeti katika kesi hii
sababu kuchapishwa na unaozingatia nje, ambayo ni kutoonekana hapa.
Lakini ni kweli uwezo wa kufanya kazi.
Na hivyo katika kesi hii, mimi nina tu kwenda kutumia hii kama script.
Na naweza kweli kukimbia code hii huko.
Hivyo njia kwamba mimi kwa kweli kukimbia itakuwa tofauti kidogo,
lakini utaona kwamba katika muda tu.
Sasa, katika kesi hii nini tunakwenda kufanya ni kwanza kufafanua kutofautiana.
Hivyo hii ni jinsi sisi kufafanua variable katika wepesi,
ni sisi kutumia let keyword, ikifuatiwa kwa jina la kutofautiana,
na kisha sisi kutoa baadhi ya initializing data hiari.
Hivyo kesi hii sisi ni kufafanua mara kwa mara kuitwa jina,
na tunakwenda kutumia katika pato la magazeti line yetu
chini sana, hello jina.
>> Sasa taarifa kwamba badala ya kutumia% s, tunaweza kurejelea jina la hii
variable katika / () na kuwa na uwezo wa concatenate katika maudhui ya hii
kamba katika kamba hii.
Sasa tofauti C, kamba ni halisi ya aina halisi katika mwepesi.
Na hivyo yapo sambamba ints na sambamba
DOUBLES kwa urahisi sana na asili ikilinganishwa
baadhi ya wengine lugha ambayo tumeona.
Hivyo hii ingekuwa kweli kazi kama ungependa kutarajia.
>> Siwezi kukimbia 2.swift.
Na tunaona kwamba jina langu ni kweli spliced ​​katika, "Hello Dan."
OK, kutisha.
Kuhamia kwenye namba tatu.
Sasa ni kidogo ya uongo nyeupe kwamba mimi
alisema kuwa njia ya kwamba sisi kutangaza vigezo ilikuwa kutumia let keyword.
Mara nyingi kama unaweza uwezekano unaweza kufanya wanataka kutumia basi, kwa sababu kile kwamba hana
ni amefafanua mara kwa mara.
Na kwamba anaelezea mwepesi kwamba unaweza kuongeza kasi ya maombi yako
sababu anajua kwamba variable ni si kwenda na mabadiliko.
>> Hivyo kutathmini kwa makini wakati wewe ni kwenda kutumia
kutofautiana kwa madhumuni ya kubadilisha.
Na wakati wewe kwenda kujenga variable tu
kushikilia baadhi data na kwamba ni si kweli kwenda na mabadiliko.
Hivyo dhana hii ya faradhi, siyo kweli kwenda na mabadiliko,
ni moja muhimu hata kama mbali chini kama kufafanua vigezo.
Hivyo hapa tumekuwa defined jina, basi jina, na katika kesi hii
ni mara kwa mara, ambayo ni ya aina kamba, na ni sawa na Dan.
>> Hivyo wakati katika kabla toleo, ni infers-- na kwa "it"
I mean swift-- mwepesi infers aina ya data
kwamba tumekuwa aliingia katika kutofautiana.
Katika kesi hiyo, tunaweza kuwa wazi.
Hivyo basi basi jina la hii kutofautiana ni jina, basi koloni.
Na baada ya koloni kufanya sisi kutaja aina ya data.
Hivyo tena ni jina int au kamba jina au kitu kama hicho.
Lakini badala basi studio, tuko kufafanua kama au si
ni mara kwa mara au variable, ikifuatiwa na jina,
ikifuatiwa na aina hiari.
>> Hivyo katika kesi hii sisi ni kufafanua jina hili ni kamba.
Sisi ni kusema ni Dan.
Na sasa mimi na mwingine kutofautiana, katika kesi hii ni kuitwa studio.
Lakini taarifa kwamba ni prefixed na var keyword.
njia var keyword kwamba variable hii unaweza
kubadilishwa katika hatua ya baadaye katika muda, mahali fulani chini ya katika kanuni
tunaweza kweli mabadiliko yake na si kutupa kosa lolote fulani.
>> Tunaweza kufanya standard concatenating operator hapa kwa kutumia plus ishara
kwa kweli kuongeza wetu jina katika kamba hii.
Na kisha tunaweza magazeti nje kama tuliona tu wakati iliyopita.
Sasa hebu kusema kwamba wanataka kujenga variable
lakini hawataki initialize yake bado.
Huwezi bado wanataka kuweka data yoyote ndani yake.
Naam mniambie mwepesi ni aina gani ya data
ni kwenda kuwa kabla unaweza kweli kufafanua vizuri.
>> Hivyo katika kesi hii, wakati tumekuwa defined variable kuitwa daraja sisi kuwa
wazi juu ya aina yake, kwa sababu haiwezi kudai kuangalia tu
katika data initialized kwamba wewe kutoa hiyo.
Itakuwa kutupa kosa kama wewe tu aina var daraja, kwa mfano,
kwa sababu hana aina hiyo.
Hivyo daraja = 100.
Hivyo kwamba 100 ni integer, ni inafaa nicely sana katika hiyo.
Ni itaendelea kufanya kazi.
Tunaweza kuona jinsi basi sisi unaweza concatenate hii katika.
Sasa unaweza kuwa kujaribiwa, kama kweli
alitaka concatenate daraja katika kamba mwingine wa maandishi,
ndani ya kamba mwingine, kuwa wewe tu kutumia concatenating operator huo.
Na kwamba kwa kawaida kuwa kweli.
Lakini mwepesi si kuruhusu implicitly kubadilisha aina ya data.
Hivyo katika kesi hii, hii line, 25, kushindwa
kwa sababu daraja ni integer na si kamba.
Na hivyo kuna mismatch seti ya aina.
Hivyo wewe kuwa wazi wakati unataka mabadiliko data hii,
wakati unataka kushinikiza hii data katika aina mbalimbali
na kusema, OK, nataka kuchukua daraja hii, ambayo ni integer,
na kubadilisha kwa kutumia kamba.
>> Hivyo mimi kuchukua mji mkuu s String yote ya aina, utasikia taarifa, ni mtaji,
Int, Double, Kamba, kadhalika na kadhalika.
Wote ni mtaji tu kufanya mambo rahisi.
Na tutaweza kusema capitalize Kamba kupita ndani yake daraja.
Na itakuwa kujenga kamba nje ya kwamba integer.
Na kisha tunaweza concatenate mbili nicely sana.
Maswali yoyote juu ya mambo haya hadi sasa?
Haki wote, hebu kulima kupitia namba nne.
>> Sasa hebu majadiliano juu ya baadhi ya juu zaidi miundo, kama arrays na loops.
Na tofauti na C, arrays katika mwepesi si kuwakilishwa na kuyatumia.
Kuyatumia katika wepesi, ingawa zipo, aitwaye
kama kuyatumia salama au baadhi ya aina hiyo kama hii,
re si wazi kwa wewe kawaida.
Hivyo inakuwa vigumu sana kwa wewe kuendesha
kumbukumbu moja kwa moja ya kompyuta yako.
>> Hivyo arrays ni aina tu data.
Na wao ni inatazamwa kwa kutumia aina hii ya sasa kiwango mraba bracket nukuu
kwamba ve kuonekana kabla.
Lakini wakati wewe kweli unataka kufafanua aina ya kutofautiana
kama safu ya baadhi aina fulani, basi
kuweka kwamba aina katika mabano mraba.
Hivyo ninachosema hapa ni kwamba Mimi nina kujenga variable kuitwa
darasa ya aina int safu.
Na mimi nina kuweka kwamba sawa na baadhi data initialized, ambayo katika kesi hii
ni 100, 0, 90, 85, ambayo ni tu ukusanyaji wa darasa holela hapa.
Sasa katika kesi hii mimi naweza, kumbuka, kuondoa aina,
na itakuwa na uwezo wa kudai ni kulingana na data initialized.
Lakini kama mimi kuondolewa huu na Mimi zinahitajika kuweka baadaye,
basi napenda kuwa na kuhakikisha kwamba mimi kuwa na aina huko.
Haki wote, hebu hoja pamoja.
Hivyo sisi can-- arrays kutoa kwetu aina
ya mbinu kwa njia ya kuwa dot nukuu saa wewe ni pengine sasa familiar with.
Hivyo grades.count, kwa mfano, anatueleza just simu
ya mambo ambayo ni zilizomo ndani ya safu hii.
>> Kama mimi nataka kuongeza additional-- sasa taarifa kwamba hii ni var
na not-- hii ni kutofautiana na si mara kwa mara, ambayo
maana ya kwamba siwezi kubadilisha yaliyomo wa safu hii, siwezi kuongeza vitu hivyo.
Lakini siwezi kusema tu darasa na kisha katika mabano mraba
nne, kwa sababu hiyo itakuwa nje ya mipaka kosa katika kesi hii.
Kama mimi nataka kweli mabadiliko ukubwa wa safu hii,
Nina kutumia njia dot append kwa kuongeza kitu kwenye mpaka mwisho kabisa wa hilo.
Naweza, hata hivyo, mabadiliko mtu binafsi fahirisi.
>> Hivyo mimi naweza kutumia darasa na mabano kisha mraba
zero kuendesha ripoti hii ya kwanza na kadhalika, kama wewe ingekuwa kawaida kutarajia.
Na naweza kufanya hivyo kwa kweli pokea data kutoka kwa kuwa vilevile.
Sasa kuna pia aina ya mbinu dhana ya kufanya hili, darasa plus sawa
na kisha index mwingine, ambayo itakuwa append--
au si mwingine index-- lakini orodha nyingine ambayo
itakuwa append orodha hiyo nyuma ya darasa.
Na darasa mapenzi kisha vyenye yote.
Lakini hiyo ni aina ya kitu ziada kwamba mimi nina tu kuonyesha wewe kwa ajili ya kujifurahisha.
>> Sasa kuna kwa kitanzi.
Na huu ni mwanzo wa ambapo mambo kuanza kubadili kidogo.
Angalia jinsi hii kwa kitanzi ni mbalimbali kutoka kwa loops katika C.
Sasa mimi kutambua kwamba kwa loops katika Swift unaweza
kufanywa kwa kuangalia kama kwa loops katika C, lakini kuna mengi ya constructs muhimu zaidi
kwamba kimsingi kuondokana na haja kuwa kwa var i sawa 0 semicolon i
ni chini ya baadhi ya urefu, kadhalika na kadhalika, haki?
Na kujenga hii ni mmoja wao.
>> Kwa index, index ni mpya kutofautiana, katika kesi hii, katika mbalimbali.
Na ninachosema ni kwamba kuna mbalimbali kutoka 0 njia yote hadi
lakini si pamoja grades.count.
Hivyo dot dot hii chini kuliko ishara inawakilisha
mbalimbali ya maadili kuanzia sifuri njia yote hadi grades.count minus 1.
Kuna tofauti operator kwamba lipo,
ambayo ni dot dot dot, ambayo ingekuwa maana kwamba mimi wanataka mbalimbali ya sifuri
kwa darasa kuhesabu umoja.
>> Lakini katika kesi hii, kwa sababu hizi arrays ni sifuri index, sisi bila shaka
hawataki kwenda upeo wa idadi ya wanafunzi wa darasa.
Siwezi muhtasari darasa, kama wewe nguvu kutarajia, na pato wote wa mambo haya.
OK, kuhama.
Sasa hebu majadiliano juu ya kazi.
Ili kufafanua kazi matumizi funk keyword.
Na tena, katika Swift una kuwa makini sana na aina.
You kutoa kwa ni vigezo na kufafanua, kwa mfano,
jina la parameter na basi katika Colin, aina ya data
kwamba wewe kutarajia kwamba parameter kukubali.
>> Hivyo katika kesi hii tuna kazi kuitwa magazeti daraja kuhesabu.
Ni anapokea variable kuitwa gradebook, au tuseme parameter aitwaye gradebook.
Na sisi ni kutarajia kwamba gradebook kuwa safu ya integers.
Kama kwamba gradebook ni tupu, tutaweza magazeti jambo moja.
Vinginevyo tutakuwa magazeti nje ya simu ya darasa kwamba hii kweli ina.
>> Sasa kama tunataka kurudi baadhi ya thamani, basi njia
kwamba sisi kurekebisha ufafanuzi huu ni kwa kweli matumizi mshale keyword,
au kutumia mshale signifier.
Hivyo hapa tunakwenda kufafanua kazi kuitwa wastani.
Sisi ni kwenda kukubali orodha ya namba.
Na sisi ni kwenda na kurudi mara mbili, ambayo itakuwa hopefully
kuwa wastani wa safu hii.
Na ili kufanya hivyo, ili kwa kweli mahesabu ya wastani huu,
tutachukua jumla na sisi ya Bila shaka kujumulisha yote ya vitu
ndani ya safu hii.
>> Taarifa kwamba kuna mpya mtindo wa kwa kitanzi hapa.
Hatuna kuwa wazi kuhusu iterating juu ya kila kipengele moja,
lakini tunaweza badala kusema kwa daraja na gradebook, maana
kwamba kwa kila moja bidhaa kwamba tuna katika hili,
kutoa bidhaa kwamba katika hii variable kuitwa daraja.
Na mimi nataka kufanya kitu kwa hayo.
Hivyo nina kwenda kwa jumla yote ya takwimu hii na kwa kweli kurudi mgawanyiko mbili.
>> Sasa taarifa tena hapa kuna dhana ya integer mgawanyiko katika Swift.
Kama unataka mara mbili mgawanyiko sababu unataka decimals,
basi wewe kuwa wazi, si upande tu kuhusu moja,
sababu si kwenda kuruhusu ya kushinikiza data juu ya upande wa hii,
una kweli bila shaka pande zote mbili katika DOUBLES
hivyo kwamba wewe ni sana wazi kuhusu kuhakikisha
kwamba wewe ni kufanya mara mbili mgawanyiko.
>> Hebu hoja juu.
Hivyo kama mimi kweli wanataka accept-- hivyo katika mfano huu, hasa
hii bado ni amri line makao maombi.
Na sisi ni mapya ya kuona baadhi ya upungufu wa lugha vijana
katika kwamba ingawa tunaweza kupata hoja kwa kutumia
process.arguments hii, ni bado si lazima safi
Jambo kwamba tumekuwa milele kuonekana.
Lakini kimsingi mimi moyo na aina ya kuangalia kanuni hii
na kujaribu kufikiri nini hasa kinachoendelea.
>> Kimsingi nini kinatokea ni kwamba sisi ni kuchukua orodha ya hoja
na walikuwa coercing yao katika integers, na kisha sisi ni
kwenda kutumia kama njia ya magazeti nje wastani wa wote wa darasa yetu.
Kuhama.
Sasa kuna aina nyingine ya data-- data mwingine aina badala ya arrays
kuitwa Mkwawa, ambayo ni sana sawa na hash meza au ramani hash
na ni sawa pia kwa PHP ya associative arrays.
Hivyo kuwa dhana funguo na maadili.
>> Na wao ni defined pia na hii mraba bracket nukuu,
lakini tofauti ni kwamba Mkwawa na
ndani ya bracket mraba, koloni.
Na koloni hutenganisha data aina hiyo ni muhimu na thamani.
Hivyo katika kesi hii, mimi nina kwenda kujenga kamusi kukubali baadhi darasa.
Na ni kwenda kuwa ya kamba aina: int,
ambayo ina maana kwamba wote wa funguo ni kwenda kuwa masharti,
na wote wa maadili ya wale funguo ni kwenda kuwa integers.
>> Nini maana ya hii ni kwamba naweza kisha rejea data maalum
kwamba mimi nataka kutumia funguo hizo badala kuliko kutumia fahirisi numeric kama mimi
ingekuwa kwa ajili ya safu ya kiwango.
Sasa hebu angalia, kuna jambo moja muhimu
kwamba mimi pia wanataka kutaja kuhusu mlolongo huu hasa wa kanuni.
Na kwamba ni kwamba kuna aina nyingine ya data,
au tuseme kuna hii wazo la data kwamba ni
zilizomo ndani ya Swift kuitwa optionals.
>> Na nini optionals maana yake ni kwamba inatambua ukweli
kwamba wakati mwingine wewe si kwenda kwa kupata data kwamba kweli kutarajia.
Na hivyo kile mimi maana na kwamba is-- hebu tuangalie mlolongo huu wa kanuni
ambayo iterates juu ya yote ya hoja kwamba walikuwa kupita kwa kanuni hii
na anajaribu kubadili yao, inajaribu umegawanyika katika aina ya masharti,
sababu anapokea sana aina fulani ya hoja.
Na basi ni kwenda kujaribu kushinikiza masharti kwamba kuwakilisha idadi
ndani ya integers kwamba ni darasa, kwamba naweza kisha compute.
>> Hivyo kimsingi mimi nina kwenda kutumia hii kazi mgawanyiko kwamba
ipo ndani ya Swift standard maktaba.
Mimi nina kwenda kupita ndani yake kamba kwamba nataka kupasuliwa.
Na kisha katika kutumia hii aina ya funky syntax, ambayo
Mimi sijui kama tutaweza kupata, lakini labda, sisi
kweli bayana sahihi tabia kwamba tunataka umegawanyika katika.
Basi nini hii kweli kuangalia kama?
Hebu tuangalie kweli mbio kanuni hii.
>> Hivyo kwa mfano, hebu sema nina Jaribio na I got 50 juu ya hilo.
Na mimi kuwa psets na I got mia juu ya hilo.
Na mimi got-- kuna mwingine Jaribio na I got 40 juu ya hilo.
Mimi hit Enter, na hatimaye nini kitatokea ni kwamba nini ni kufanya
ni kuchukua vigezo hizi, kugawanyika masharti katika colons haya,
kutambua kwamba kuna mambo mawili katika kila mmoja,
na ni kimsingi kuweka wimbo wa kila mmoja.
>> Hivyo nina katika kamusi yangu quiz, ambaye thamani ya kuwakilishwa na idadi 50,
Nina pset ambayo ina thamani ya 100, na jaribio moja ambayo ina thamani ya 40.
Kisha baadaye katika code mimi kweli wastani yote ya maadili hayo
na orodha yote ya funguo za kwamba kamusi fulani.
Lakini hii ni muhimu ili uweze taarifa
kile kinachotokea, ni kwamba kile sisi wanataka kufanya ni kuchukua kamba hii
na mgawanyiko katika tabia hii, ambayo tunaweza kufanya tena na mgawanyiko huu
kazi kwa kutumia aina hii ya kuvutia syntax kwamba ipo hapa.
>> Tu kwa ajili ya sasa kudhani kwamba ni sawa.
Tutaweza kuangalia zaidi katika hili katika kidogo tu.
Lakini sasa kuna kuvutia kipengele kwamba sisi kweli
unataka kujaribu kubadili hii kamba katika integer.
Lakini katika lugha zingine nini kinaweza kutokea ni
kwamba tunataka pengine kujaribu kufanya hivyo na ama kupata nyuma
baadhi ya aina ya sentinel thamani kama hasi moja
au labda null au kitu kama hicho.
Au labda ingekuwa tu unasababishwa makosa.
Na tunataka kuwa na kisha kupata kosa kwamba
na kisha kujaribu kufanya kitu kwa kuzingatia ukweli
kwamba uongofu huu kwa integer alishindwa.
Hiyo ambapo wazo hili ya optionals huja katika.
Unaweza kweli kujenga aina data kwamba ni int swali alama, kwa mfano.
Hiyo ina maana kwamba integer hii ni, kwa kweli, hiari.
Na nini kitatokea ni kwamba inaweza vyenye integer, au huenda si.
Ni inaweza, kwa kweli, kuwa hii nyingine wazo, kabisa kuitwa nill.
Katika ambayo ina maana kwamba kuna hakuna thamani yoyote katika hili.
Ni hata zero, kuna tu hakuna thamani.
Kuna kabisa hakuna thamani kuwakilishwa.
>> Na kwamba ni nini mstari huu 71 ni kufanya.
Ni kwamba ni kusema kwamba mimi unataka kujaribu kuweka thamani,
variable kuitwa daraja, sawa na ubadilishaji wa kamba hii katika int.
Hivyo nimekuwa kuchukuliwa kamba hii, vipengele hii ya kwanza,
au tuseme pili vipengele, kwa sababu hii
ni zero indexed, hii kamba kwamba nimepata kupasuliwa.
Na mimi nataka kubadili kwamba kwa integer.
Lakini inaweza kuendelea daima kawaida, kwa sababu kufikiria
nini kingetokea kama, badala ya aina simu, mimi aina ya shaka kama asdf.
>> Ni kwenda kushindwa.
Ni si kweli kwenda kuwa uwezo wa kubadilisha kwamba integer
kama napenda kutarajia.
Hivyo badala ya kick off aina fulani ya makosa,
tuna wazo hili la hiari.
Na hiyo ina maana kwamba kwa kutumia hii alama ya swali naweza kusema,
OK, inawezekana kwamba naweza kuchukua hii, waongofu ndani int,
na kuiweka katika kutofautiana, ambayo pia kuwa int.
Ikiwa hivyo, basi kwamba njia kwamba hii ilikuwa na mafanikio
na sehemu hii ya kwanza ya block inaweza kuendelea.
>> Vinginevyo, alishindwa.
Hakuna thamani katika grade-- au badala hakuna thamani katika zilizopo,
na mimi kwa kweli kuwa na kujaribu kushughulikia hali hii makosa.
Wewe ni kwenda kuona hii alama ya swali wakati wote
katika Swift na katika mfano kificho kwa Swift.
Na kwa kweli operator nill, aina hii ya alama swali, optionals sehemu,
ni kwenda kuwa pengine ni moja ya mambo magumu zaidi
na aina ya wrap kichwa yako karibu kweli kama wewe kazi nayo.
>> Ni wanaweza kufanya hisia sasa.
Na kwa kweli, wakati mimi nilikuwa kuandika sampuli kificho kwa hili,
hakika mimi kueleweka nini kinachoendelea,
lakini bado hawakupata yangu na mshangao kila mara nyingi
wakati mimi bila kujua kwamba baadhi data kweli alikuwa
nil version, toleo hiari ya data kwamba nilikuwa kutarajia.
Hivyo tu kutambua kwamba kama wewe na toleo hiari
una unpack kwamba data kutoka sanduku hili.
>> Hivyo ni aina ya kama I-- kufikiria kama kuwa na sanduku na ina kitu.
Na nini unahitaji kufanya ni kuuliza swali,
ni, inawezekana kwamba sanduku hii kwa kweli ina data kwamba mimi nina kuangalia kwa?
Ikiwa hivyo, basi kuvuta data kwamba nje na kuiweka katika variable hii zilizopo.
Kama siyo, basi mimi tu na kupuuza yaliyomo ya sanduku hili
kabisa kwa sababu literally ina kitu.
>> Maswali yoyote juu ya hili?
OK, hebu hoja mbali na hii aina ya mstari amri kulingana kitu
na kuanza kuangalia baadhi ya teknolojia
kwamba Xcode hutoa kwetu katika mfumo wa playgrounds.
Hivyo kuna mengi ya uwezo hapa na Swift.
Na kama wewe kufungua Xcode na anauliza nini unataka kufanya,
unaweza kufungua uwanja wa michezo na tu kucheza karibu
na mengi ya miundo tofauti na masuala ya lugha
kabla hata ya kuanza kugusa iOS SDK au Mac SDK.
>> Hivyo kesi hii, hebu kusema kwamba mimi have-- Nina mfano kiasi contrived
hapa, lakini kuzaa na mimi kama sisi aina ya kazi kwa njia ya mfano huu.
Hebu kusema kwamba tuna kufanya mengi wa mashujaa na thamani ya kudumu,
kama tunajua kwamba sisi ni kwenda haja ya kufanya mengi ya nguvu za mraba, kwa mfano.
Hivyo sisi ni kwenda kuchukua baadhi ya thamani x, tunakwenda mraba yake,
tunakwenda kuchukua baadhi ya thamani y na tunakwenda mraba yake.
Kadhalika na kadhalika.
>> Sasa sisi ili kweli kujenga tu nguvu ya 2 kazi kwa ajili ya hii, sawa?
Hivyo tunatarajia kujenga uwezo wa 2 kazi.
Sisi itabidi kukubali mbili.
Tutaweza output-- au tutaweza kurudi aina mbili.
Tutaweza kuchukua matokeo haya kisha kwa mara mbili
nini sisi kweli kuchukua matokeo, ambayo ilikuwa initialized kwa thamani ya moja,
na kuzidisha ni kwa x.
Hivyo katika kiini tuna x mara x hapa.
>> Na hivyo basi naweza basi, kama sisi anaweza kutarajia, kuchukua hii, kukimbia nguvu ya 2,
kutoa yake baadhi ya data, mimi kama 2.0.
Na sisi kupata kuona matokeo hapa 4.0.
Kukimbia nguvu ya 2 juu ya 3.2 na sisi kupata kuona matokeo yetu, 10.24.
Hadi sasa hivyo nzuri, haki?
Sasa sisi ni kufikiri, vizuri, OK.
Sasa mimi kwa kweli haja ya kufanya mengi ya nguvu ya 3.
Hivyo mimi itabidi nakala kuweka wote wa kanuni hii, kubadili jina la kazi kutoka
nguvu ya 2 kwa nguvu ya 3, na kila kitu itakuwa sawa isipokuwa kwa thamani hii
hapa, hii mbalimbali, 1 ... 2.
>> Hivyo badala ya kurudia kitanzi hii mara mbili,
Nataka kurudia kitanzi hii mara tatu.
Hivyo mimi kubadili tu kwamba thamani kutoka 1 kwa 3-- au tuseme 2-3.
Hivyo tena, kanuni huo, hiyo ni mabadiliko tu.
Sasa hii pia kazi.
Nguvu ya 3 zinazotolewa katika baadhi ya thamani ya 2.
Sisi kupata 8.
Hivyo 2 cubed.
Na 3.2 cubed ni 32.768.
Na hivyo sasa hivyo nzuri, haki?
Lakini hopefully hii ni kidogo kidogo ya bendera nyekundu kwa ajili yenu
kwa kuwa sasa tuna baadhi kurudia ya kificho
isipokuwa kwa baadhi ya madogo sana mabadiliko kutoka mmoja hadi mwingine.
Hivyo kuna baadhi ya njia ambayo tuweze kuwa na uwezo ili kurahisisha
tatizo hili, ambapo tunaweza kweli, wakati kukimbia, kufikiri baadhi,
kutoa kwetu baadhi ya kazi ambayo ina just nguvu ya kwamba tunataka.
>> Na kuna wazo hili la kufungwa, ambayo ni kweli, kweli
muhimu katika mazingira ya Swift, na katika lugha nyingine nyingi kama vile.
Lakini pengine utaona kutumika zaidi katika Swift
sababu ni iliyoingia ndani ya lugha
kuliko wewe katika nyingine pia lugha ya kisasa.
Hivyo wazo la kufungwa ni hii, ni kwamba sisi
unaweza kuwa na kazi ambayo ni maana ya kuwa kazi generic, nguvu generic
ya kazi.
>> Na kazi hii ni kwenda kukubali exponent hii kwamba sisi kweli
unataka kujenga.
Hivyo kwa mfano, kwanza kabisa mfano, tulitaka nguvu ya 2.
Hivyo tunataka kutoa nguvu ya na kisha katika mabano 2.
Na sasa taarifa ya nini hii kwa kweli anarudi.
Hii inachukua pembejeo ya utangulizi kuitwa y kwamba ni integer,
na kuirudisha hii mambo kuangalia Jambo katika mabano parentheses--
mara mbili na kisha arrow mara mbili.
>> Nini maana ya hii ni kwamba mimi nina kwenda na kurudi kazi.
Mimi si kurudi aina nyingine ya data, mimi nina
kwa kweli kurudi kazi ambayo ina parameter hii, kwamba
anapokea mara mbili kama pembejeo na matokeo mara mbili kama thamani ya kurudi.
Na matokeo yake, kwa sababu sasa nimepata kuitwa nguvu ya, kupita katika baadhi ya thamani kwa ajili ya y,
na mimi nina kujenga hii nyingine function-- taarifa kwamba kuna
kazi nyingine hiyo zwa ndani ya this-- ninachofanya
ni siwezi basi mabadiliko kuwa thamani, kwamba mtu
thamani kwamba mimi alikuwa iliyopita 2-3, mimi sasa kufanya hivyo y.
>> Na hili litaendelea.
Hivyo kila wakati kwamba mimi wito nguvu ya, kimsingi nini kinatokea
ni kwamba mimi kupata kurudi kazi.
Taarifa kwamba hapa Nimekuwa defined variable mpya iitwayo mraba.
Nimekuwa kuweka sawa na nguvu ya, zinazotolewa thamani huu 2 kwa nguvu ya.
Na nini hii kurudi ni kazi.
Hivyo mraba, variable mraba, sasa ni ya aina ya kazi
ambayo ina this-- oops, kitabu juu bit-- kidogo kwamba ina saini hii,
kukubali mara mbili na pato mbili.
>> Hivyo sasa nini mimi tumefanya ni mimi wameweza kimsingi
kuundwa kazi kuitwa mraba ambayo anapokea thamani yoyote na mraba yake.
Tunaweza kuona nini kinatokea hapa chini.
Square 3 kwa mfano, ina maana mimi nina kwenda kuchukua thamani ya 3 na mraba yake.
Hivyo jinsi gani hasa gani kazi hii?
Wakati mimi kupita nguvu ya 2-- wakati mimi kupita 2 katika nguvu hii ya kazi,
hii y kutofautiana ni wakazi na kwamba thamani 2.
Na kwamba ni aina ya uliofanyika katika kumbukumbu.
Hiyo ni aina ya like uliofanyika katika hali fulani katika kompyuta,
sisi si kweli huduma ya jinsi au ambapo katika hatua hii.
>> Lakini mimi kurudi kazi hii kuitwa exponentiate.
Na tena, ni kweli haina jambo nini kazi hii inaitwa,
sisi kweli unaweza kuiita chochote, kwamba anapokea mara mbili na anarudi mara mbili,
lakini anatumia y thamani ndani yake.
Hivyo hata kama ni kazi hii, hii kazi exponentiater kwamba
wamekuwa akarudi nyuma yangu variable kwamba mimi kuitwa mraba,
ina zilizomo ndani yake wazo hili la nini y mara.
Na anakumbuka kwamba.
>> Hivyo kila wakati mimi wito kazi kwamba sasa inaitwa mraba, inatumia hiyo.
Lakini hii pia ina maana kwamba naweza kuunda nyingine variable kutumia
nguvu tofauti ya.
Hivyo siwezi kujenga mchemraba variable, kwa mfano, kutoa yake nguvu ya 3.
Sasa mchemraba itakuwa kweli kuchukua baadhi thamani na Cube kuwa na kurudi.
Hivyo tunaweza kuona kwamba mimi kupata thamani 8 nje ya hiyo.
>> Lakini kwamba thamani y ina si iliyopita kwa sababu wao uko
uliofanyika katika aina ya vigezo huru.
Wao ni aina ya uliofanyika katika nafasi huru katika kumbukumbu.
Hivyo mchemraba daima kuwa x kwa nguvu ya 3.
Na mraba daima kuwa x kwa nguvu ya 2, ambayo
ina maana kwamba mraba daima namba mraba, kama mimi kutarajia.
Na mchemraba daima Cubed namba, kama mimi kutarajia.
Hii ina maana kwamba wakati mwingine unaweza kupata aina fulani ya funky kuangalia syntax
ambapo una uwezo wa saa sana chini ya screen hapa, uwezo wa 5.
Na wewe kupita katika matokeo.
You wito kwamba kazi hiyo ni wamekuwa akarudi na idadi 4.
Na hivyo kile kimsingi hii ni 4 kwa nguvu ya tano,
tunaweza kuona matokeo hapo.
Pamoja nami hadi sasa?
>> Hivyo wazo hii inaitwa kufungwa, kwa sababu nini tuko kimsingi kufanya
ni sisi ni encapsulating baadhi data into-- aina
ya enclosing data hii ndani ya kazi na tuko
kuwa na uwezo wa kutumia tena kazi hii.
Sasa syntax hii ingawa unaweza kweli kurahisishwa kiasi kubwa.
Na kuna kura ya uwezekano katika Swift kwa kurahisisha hii.
Na kwamba ni nini aina ya ndio baadae kweli kuangalia.
Hivyo katika 7b kwa mfano, sisi kuchukua hii halisi code huo.
>> Lakini sasa badala ya kweli kufafanua kazi
ndani ya hii nguvu ya kazi na kuwapa jina,
na kisha kurudi jina ya kwamba kazi, ambayo
basi ni kutumika kama sehemu ya kufungwa hii, badala tuko
tu kwenda kurahisisha hilo.
Hatuna haja ya kazi hii jina lake litajwe.
Hivyo hii ni dhana ya kazi bila majina ambapo tunaweza basi
kukubali kama pembejeo, katika mabano hapa, x variable ambayo ni ya aina mbili.
>> Sisi ni kwenda na kurudi aina mbili.
Na kisha keyword, n, ni mwanzo wa kazi hii.
Hivyo taarifa kwamba haya yote ni ndani ya mabano curly
na sisi ni kufafanua majina kazi hapa.
Tu njia rahisi ya kufafanua halisi kitu kimoja.
OK?
Lakini kushikilia, Swift kweli inaruhusu sisi kwenda mbali zaidi na kurahisisha hata zaidi,
kwa sababu kwa kweli hatufanyi huduma ya kwamba parameter hii ni
aitwaye jambo fulani.
Ni kweli unaweza kuitwa chochote na sisi bado unaweza kutumia kwamba parameter kwanza.
>> Kwa hiyo kwa kweli kuna hii maalum aina ya data katika kazi bila majina,
kuna jina hili maalum ya vigezo katika kazi bila majina
kwamba kuanza na dola ishara na wa kuwakilisha
namba parameter, zero indexed, kwa ajili ya kazi hii.
Hivyo kuna michache ya mambo kinachoendelea.
Hapa mimi nina kwenda na kurudi, na kisha curly brace anayewakilisha kazi,
haki?
>> Ilani kwamba mimi si kuwa defined aina parameter au aina kurudi.
Ni kweli anaweza inferred kwa sababu ya saini
ya kazi hii ya awali.
Hivyo tunaweza kuondokana na kwamba kama uwezekano.
Lakini pia naweza kutumia dola ishara sifuri kwa kuwakilisha parameter hii ya kwanza kwamba
kupita katika kazi hii bila majina.
Hivyo kurahisisha hata zaidi.
OK?
Hadi sasa, hivyo nzuri?
>> Sasa ni type-- hii kufanya wewe kumbuka hii dola ishara zero
kuwa tuliona katika brace curly hii kuwa tuliona kidogo tu
iliyopita katika hii Swift sita mfano?
Ilikuwa haki hapa.
Taarifa hiyo hasa nini tuko kuangalia,
ni kwamba sisi kupita ndani ya kazi hii kupasuliwa
kazi bila majina kwamba hundi parameter kwanza
ili kuona kama ni sawa na koloni ishara.
Na kwamba ni nini hasa kinachotokea, ni kwamba wote
tuko doing-- kurudi keyword ni an
katika case-- hii sisi ni kurudi thamani hii ambapo sisi ni kulinganisha
parameter kwanza dhidi ya hii koloni tabia.
Na hivyo kwamba aina ya demystifies hii.
Na wewe ni kwenda kuona kujenga hii mengi katika Swift syntax, hivyo kufanya kuendelea kuwa
katika akili wakati wewe ni kuchukua kuangalia hii.
Sasa tunaweza kupata off reli kidogo
na kwenda kweli dhana kwamba inaonyesha hata baadhi ya zaidi ya nguvu Swift ya.
Unaweza hata kuona baadhi haya katika codes sampuli.
Hivyo kwamba ni kwa nini mimi nina kwenda kuonyesha na wewe.
>> Kimsingi nini tunaweza kufanya ni kwamba, kwanza ya yote, ilikuwa ni aina ya Bila kwa ajili yangu
kutekeleza yote ya kwamba nguvu ya code sababu kama wewe kuagiza Darwin
maktaba, ni kweli pamoja na kazi kuitwa pow kwamba hana huu kwa ajili yenu.
Hivyo tunaweza kurahisisha hivyo hata zaidi na kuwa na nguvu hadi kazi yetu sasa tu
kuwa ajabu mjengo moja ambapo sisi tu kurudi kazi hii bila majina kwamba
anapokea dola ishara 0 kama yake msingi na y kama exponent yake.
>> Lakini tunaweza kupata kweli, kweli dhana wakati sisi
kutambua kwamba Swift ina mengi ya nguvu chini ya Hood.
mengi ya kampuni hiyo tumekuwa kushughulika na,
plus ishara na alama mgawanyiko na mambo yote hayo wewe kawaida
kazi na na aina data katika lugha ya programu,
ni kweli extensible katika Swift.
Hivyo nini maana kwa kuwa sisi Unaweza kufafanua operators yetu wenyewe.
>> Hivyo sasa mimi nimechoka kuandika katika haya yote pow na kisha mabano na kisha
msingi.
Sitaki kufanya hivyo.
Mimi kwa kweli unataka kuwa operator kwamba inaruhusu mimi kufanya hivyo.
Hivyo siwezi kuwaambia Swift kwamba mimi nataka kujenga operator, nyota
star-- kwa njia siwezi kutumia carat kwa sababu carat ni operator kwamba
hana kitu kingine kabisa.
Hivyo mimi si unataka kutatua ya yanapogongana na kwamba.
Na hivyo nini kuona katika aina mbalimbali ya lugha, ikiwa ni pamoja na chatu,
ni kama nyota nyota operator kuwakilisha mashujaa.
>> Hivyo kwamba ni sababu ya pekee kwa nini nimekuwa amefanya hivyo.
Na itakuja kuwa infix aina operator.
Na mimi kuwa kutoa yake baadhi ya habari
kuhusu umuhimu wa hii operator hivyo ni wa kushoto associative.
Ni kama kiasi high precedence ikilinganishwa
kwa summation au kuzidisha.
Ni juu precedence kuliko wote wa wale.
Kadhalika na kadhalika.
Na kisha mimi kufafanua kazi ambayo kwa kweli
inaonyesha nini operator hii haina.
Hivyo kuchukua kwamba nina kushoto upande na upande wa kulia,
ambayo itakuwa labda variable jina bora kwa hili.
Mkono wa kushoto upande na upande wa kulia.
Siwezi kisha kuchukua hii nguvu ya mkono wa kushoto upande wa upande wa kulia
na kurudi thamani hiyo.
Hivyo sasa ni super tamu.
Wote sisi kufanya ni 2 nyota nyota 3 na kwamba ni 2 kwa nguvu ya tatu,
na sisi kupata thamani ya 8.
2 nyota nyota 10 ni 2 kwa Nguvu ya 10, sisi kupata 1,024.
>> Hivyo sasa nguvu yetu ya kazi, ambayo tena ni tofauti,
kwa sababu dhana nzima nyuma ya hili ni kwamba tuna kazi moja ambayo
daima inachukua baadhi ya thamani na humzidishia ubaya wake au tuseme
inachukua exponent ya nguvu sawa.
Hivyo sasa ni hata rahisi.
Hivyo sasa ni dola tu ishara 0 nyota nyota y.
Hatuwezi hata kuwa na matumizi ya pow tena.
>> OK, ambaye ni kupotea?
Je, sisi kufanya OK?
Maswali yoyote juu ya mambo haya?
Yeah?
>> Watazamaji: Wakati you-- [inaudible] funk nguvu ya y mbili.
Hivyo wakati wewe ni kurudi kazi.
DANIEL ARMENDARIZ: Funk nguvu ya y mbili.
Oh yeah, sijui nini idadi y ni.
Pole juu ya hilo.
>> Watazamaji: Kwa nini kurudi kazi [inaudible] enclosure.
Je, si dola sifuri nyota nyota y [inaudible]
kupata kwamba operator na kwamba kurudi mara mbili [inaudible] mara mbili?
>> DANIEL ARMENDARIZ: Hivyo basi mimi kujibu swali lako
jinsi mimi kuelewa ni na unaweza kuniambia kama sikuelewa swali lako.
Hivyo kujenga huu, brace curly ishara ya dola sifuri nyota nyota y,
ni kazi.
Na anapokea parameter kwamba ni kuwakilishwa na hii ni ishara ya dola sifuri.
kurudi keyword ni alisema katika hii mfupi sana, bila majina kazi syntax.
>> Ambayo ina maana kwamba kimsingi nini hii ni kusema
ni kwamba mimi nina kufafanua function-- na kisha mimi itabidi
tu kuiita something-- ambapo mimi na baadhi ya y thamani.
Nina y, ambayo ni mara mbili.
Na mimi nina kurudi mara mbili.
Na mimi kuwa ndani ya kuwa kurudi y-- sorry, Mimi haipaswi kuwa kuitwa hii x y--.
Oh dear, oh dear, oh dear.
X-- nope-- nyota nyota y.
>> Hivyo hii ni tu kilichorahisishwa toleo la hii.
Na hivyo sababu ya kuwa mimi na dola ishara zero ni kwamba kwa kutumia enclosure hii
ina maana kwamba mimi tena na aina pow, au tena kufanya
Nina kufanya kitu kama 3 nyota nyota 2.
Mimi wanaweza tu kuwa na single kazi kuitwa mraba
kwamba daima itachukua baadhi ya thamani kama mchango
na kwa kweli kurudi mraba ya kwamba.
>> Hivyo kusudi lote la kufungwa ni tu aina ya kurejelea ukweli
kwamba mimi daima wanataka kutumia y wakati wowote Mimi wito kazi hiyo kama nguvu
wakati kuchukua exponent hii.
Hivyo kurudi basi, kazi ambayo anapokea
mara mbili, ambayo ni ya msingi, na kurudi matokeo ya exponent
ni muhimu hapa.
Na kwamba ni tofauti kubwa.
Kulikuwa na kidogo tu ya kushamiri.
>> Hii si tofauti yoyote ikilinganishwa na mifano ya awali,
lakini ilikuwa kidogo tu ya a kushamiri tunaweza kweli
kujenga operator katika Swift na kwa kweli kufanya mambo na hayo,
ambayo ni aina ya kitu baridi.
Je, mimi kujibu swali lako?
Sweet.
Kitu kingine kabla ya kuendelea?
OK.
>> Sasa hii aina ya anaomba Swali ni that-- vizuri OK,
sasa tuna uwezo kwa kazi ya kurudishwa.
Je, sisi pia kupitisha kazi kama data au kama vigezo na kazi nyingine?
Na kwa kweli tunaweza.
Basi hebu kusema kwamba tuna yote ya kificho huo.
Tuna variable mraba ambayo mraba kanuni hii.
Na tuna mchemraba variable ambayo mchemraba baadhi ya data.
Na sisi kweli unataka kuomba mbalimbali ya namba.
>> Hivyo kile sisi kujaribiwa kufanya, bila shaka, ambayo ni hakika halali,
ni iterate juu ya orodha hii ya namba na kuomba kazi yangu mraba na mchemraba
na kupata orodha mbili mpya kama matokeo kuwa ni orodha hii ya awali ya mraba
na cubed, kwa mtiririko huo.
Kikamilifu kukubaliwa.
Lakini nini ni jambo kwamba sisi kuona hapa ni kwamba tuna,
tena, kurudia ya kanuni zetu.
Na kuna labda nafasi kwa ajili yetu ili kurahisisha hii kidogo.
Nini kama kuna njia kwa sisi kweli daima iterate juu ya baadhi ya orodha
na tu kupita kwa hii kichawi kazi variable kwamba
inawakilisha kazi kwamba tunataka kuomba
kwa kila kitu moja katika orodha hii.
Hii huleta up dhana ya nini wameitwa kazi kiwango cha juu.
Na kwamba kimsingi ni nini hii ni, ni kwamba tunaweza kujenga kazi.
>> Na katika kesi hii ni kuitwa mapper, tu kutoa jina, tu
ramani juu ya kila item moja katika orodha.
Ambapo mimi kuchukua orodha na mimi kuchukua kazi.
Na kazi hiyo, bila shaka, ina sahihi fulani.
Ni anapokea kama parameter mbili na itakuwa pato ni mara mbili.
Na matokeo yote ya kazi hii ni kwenda
kuwa orodha mpya ambayo ni ya aina mbili.
OK?
>> Na kile Mimi naenda kufanya ni kuomba hii f kazi
kwa kila kipengele katika orodha yangu.
Na reply-- na badala kurudi hii mpya orodha kama matokeo, ambayo ni kweli cool.
Sasa siwezi kupita kazi kote.
Na hili wazo la juu ili kazi ni muhimu.
Na mapper hii ni kweli tu utekelezaji mtu maskini
ya kazi ambayo imejengwa katika Swift kuitwa ramani.
Na ni gani hasa hii, pengine hata kidogo bora.
>> Hii ni aina ya generic, kilichorahisishwa toleo kwamba
inaruhusu sisi kuona dhana kwamba inatumika hapa.
Sasa kuangalia njia ambayo mimi unaweza kweli kutumia mraba yangu
na yangu mchemraba kazi orodha hii ya namba.
Mimi kukimbia mapper yangu.
Mimi kutoa kwa ni orodha yangu ya namba.
Mimi kutoa kwa ni kazi hiyo ni kwenda
kuomba kwa kila mmoja wa fahirisi hizo.
Na ni kwenda kuwa pato kama matokeo.
Nami kupata kuona kwamba nimepata squared na Cubed namba yangu kama matokeo.
>> Na bila shaka mapper itachukua aina yoyote ya kazi bila majina.
Tunaweza hata kuona kwamba nimepata kuundwa mpya kazi bila majina kwamba
tu inachukua baadhi parameter na mgawanyiko hivyo kwa 2.
Na tunaweza kuona kwamba mimi wameweza, kwa kweli, kugawanywa orodha yangu na 2 badala yake.
Cool?
Hadi sasa, hivyo nzuri?
Haki zote, sasa hebu kurudi na wazo hili.
Hebu kutekeleza hii nyuma katika mazingira ya gradebook.
>> Na kama mimi kufanya hivyo, tunaweza kuona kwamba naweza kuomba mbalimbali ya options-- haya
au aina mbalimbali ya hizi kazi juu ili
kwa kweli kurahisisha uwezo wangu kufanya aina ya mambo katika orodha ya namba.
Hivyo kwa mfano, kama mimi kuchukua orodha ya namba,
moja ya kazi ya juu ili kwamba ipo inaitwa kupunguza.
Nini kupunguza gani badala kuliko ramani, ni kupunguzwa mapenzi
kuchukua mambo mawili katika orodha, itachukua baadhi ya kazi kwamba
inalinganishwa mambo mawili ya orodha, na itakuwa basi
aina ya output-- pato la kazi ambayo
itakuwa kipengele kingine kwamba wewe basi kulinganisha na wengine.
>> Hivyo unaweza kutumia hii ili kweli Jumla ya namba katika orodha yako.
Kwa mfano, kama wewe alikuwa orodha ya 1, 2, 3, 4, 5,
wewe kuchukua mambo ya kwanza, 1 na 2.
Unaweza kuomba kwa hiyo kuongeza kazi ambayo inachukua mambo hayo mawili
na mtemi nje moja ya mambo hayo, ambayo itakuwa thamani 3.
Kisha sisi kuchukua thamani 3 na ijayo kipengele cha orodha, muhtasari hizo mbili,
na kisha kuendelea chini orodha.
>> Sisi ni kupunguza orodha ya thamani moja.
Na tu hivyo hutokea kwamba pamoja na alama
ni operator, tu kama sisi tu kuona.
Operator Hii ni kweli kazi ambayo
ina just orodha hii kwamba sisi wanataka, badala mali hizi
kwamba tunataka unataka.
Hivyo mimi kuhimiza wewe tuangalie hii.
Nataka aina ya hoja juu ya kutoka kwa baadhi ya kanuni hii
ili tuweze kweli kuangalia baadhi halisi, halisi, Swift kweli katika Xcode,
katika iOS maendeleo.
Lakini tuangalie hii na kuona kama unaweza
Hazrat kupitia nini kinaendelea na baadhi ya ili haya ya juu
kazi ikiwa ni pamoja na filter, kupunguza, na wewe utakuwa hata
kuona mahali fulani katika hapa ramani pia.
Ni haki hapa.
Ambapo itachukua mlolongo ya darasa na kwa kweli
ramani yao kwa kutumia kubadili kujenga, ambayo unaweza kutambua kutoka C,
lakini kwa kweli ni mengi zaidi nguvu zaidi kuliko kubadili kujenga
kwamba tuna katika C.
>> Na tutaweza kuomba kwamba kila kipengele katika orodha
na kwa kweli kutoa barua daraja ya kila
ya wale darasa kutumia dhana zote hizi kwamba tumekuwa tu kuongelea kabla.
Sasa hebu sidestep kwa ajili tu dakika na majadiliano juu ya structs.
Na hivyo structs ni kusubiri katika C kwamba sisi walikuwa na uwezo wa kufafanua aina mpya ya data.
Structs zipo ndani ya Swift.
Na hivyo kufanya mengi ya constructs nyingine kuitwa enums na madarasa, kwamba kweli
kuchukua wazo hili na mzima mbalimbali ngazi.
>> Na kimsingi ni njia tu ya kufafanua aina mpya ya data.
Hivyo kama wewe get-- kama wewe kuja hela darasani au structs au enums,
hawapati kuchanganyikiwa kwa hilo.
Ni njia tu ya kufafanua hasa baadhi ya aina mpya ya data.
Na hii ni kweli muhimu wakati tunazungumzia iOS programu ya maendeleo
sababu kila kitu ambacho ipo ndani ya programu iOS
kimsingi ni kitu ya aina fulani.
Na kitu ni kimsingi darasani au enum au struct.
>> Hivyo katika kesi hii mimi nina kufafanua aina mpya ya data
kwamba mimi nina tathmini wito kwamba baadhi ya mali, ikiwa ni pamoja na
jina na mlolongo wa darasa.
Hivyo aina moja ya tathmini ili nipate kuwa katika akili
itakuwa Quizzes, kwa mfano.
Napenda wanataka kuwa tathmini hiyo ilikuwa jaribio
na kwamba alikuwa na aina ya darasa kuhusishwa na kwamba, kwa jaribio moja,
Jaribio mbili, kadhalika na kadhalika.
>> Au nipate kuwa aina tofauti ya tathmini kwa seti tatizo.
Na naweza kufanya mambo.
Siwezi kweli kuwa kazi ndani ya aina hii
ya data, ambayo ni sasa inaitwa mbinu.
Hivyo kama wewe milele kuona neno mbinu, ni kweli
ni tu kazi ambayo inatumika darasani maalum sana,
au aina maalum sana ya data.
Ni inaruhusu sisi kurekebisha data ndani.
>> Hivyo kwa maneno mengine, kama nataka kuongeza daraja na tathmini yangu,
basi yote mimi haja ya kufanya ni append alama kwamba alikuwa pembejeo
kwa kazi hii kwa mali yangu ndani.
Kuna kujenga mwingine nadhifu hapa katika Swift, ambayo ni hii dot dot dot
operator, ambayo ina maana kwamba alama unaweza sasa kukubali idadi yoyote ya integers.
Na alama itakuwa safu ya integers kwamba
wamekuwa kupita kwa kazi yangu, ambayo ina maana kwamba siwezi kufanya mambo kama haya.
>> Siwezi kufanya kuongeza darasa na tu kutoa namba holela wa integers ndani yake
na kwa kweli zitatolewa safu ya maadili hayo katika kazi yangu
au katika njia yangu, kama ilivyo.
Sasa hii ni muhimu kwa sababu kila kitu katika Xcode, kila kitu katika iOS,
kwa kweli ni kitu.
Hivyo kuendelea kuwa katika akili wakati sisi kuivunja Xcode wazi
na ruka mbele zaidi iOS matoleo mawili na tatu
na kwa kweli kwenda kwenye toleo nne.
>> Na tena, haya yote mapenzi kuwa posted kwenye ukurasa semina.
iOS nne ni aina ya full barugumu utekelezaji wa programu ya msingi sana.
Na nini programu hii haina ni mizigo UI, ambayo inaonekana kama hii.
Tena, kama sisi bonyeza storyboard tunaweza kuona kwamba hii ni nini inaonekana kama.
Hii ni UI.
Ina cheo saa ya juu sana.
Nimekuwa kuitwa ni mtandao nyumba ya sanaa.
>> Katikati kuna kipengele kuitwa UI picha maoni.
Na chini kuna toolbar na kifungo moja ambayo
ina nafasi stretchy kwamba kuruhusu kituo cha katikati ya toolbar hii.
Na kile kinachotokea ni kwamba wakati huu mizigo yake downloads JSON faili kwamba
zilizomo kwenye server mahali pengine, parses kwamba JSON faili,
na JSON faili inaonekana kidogo kama hii.
Faili JSON inaonekana kama hii.
Kuna ni.
>> Ina jina la albamu na ina safu ya photos.
Kila moja ya picha hizo jina na pia
URL wenyewe kwamba kuwakilisha jpeg toleo la kwamba picha ya mtu binafsi.
Hivyo kile kutokea ni kwamba wakati mpango huu mizigo, ni downloads JSON faili,
parses yake, unaweka yote haya katika sawa wa safu katika iOS
programu ya maendeleo, ambayo ni nsarray.
Na kisha mimi wanaweza kupakia data hii katika maombi
na mzigo juu ya screen yangu.
>> Kuna picha kwamba alikuwa kubeba na kifungo chini sana.
Kama mimi click Kupata Next Image, basi pulls picha kwamba kutoka katika mtandao
na nafasi picha kwamba katika UI picha maoni.
Hivyo unaweza kushusha hii na kwa kweli tuangalie kwenye kompyuta yako.
Na kujenga na kwa kweli kukusanya yake kwenye kifaa yako.
Lakini kimsingi mchakato ilikuwa hii, kujenga storyboard--
au tuseme si create-- lakini kuchagua storyboard.
Na kwa kweli we'll-- kama huna mind-- tutaweza kuchukua michache tu ya sekunde
kwa kweli kuonyesha jinsi hii ilifanyika.
>> Tu ili jinsi gani tunaweza kweli kufanikisha hili ni alifanya kidogo zaidi
dhahiri.
Single maoni maombi, mimi nina kwenda kuwaita semina hii
nne anayewakilisha hii simu fulani.
Ila juu ya desktop.
OK, kwenda bonyeza storyboard.
Na kile Mimi naenda kufanya ni kupata picha maoni yangu,
Drag ni kwenye user yangu interface na kituo cha hivyo.
Sasa tu centering ni bahati mbaya si kwenda kufanya mengi nzima,
isipokuwa kwa screen yaani ukubwa huu halisi.
>> Hivyo tunaweza kushawishi wenyewe wa kuwa na kubonyeza hii mara mbili jambo mduara,
kuleta chini pop hii up menu hapa na kubadilisha
preview, ambapo tutaweza kweli kupata nafasi ya preview jinsi
hii kwa kweli kuangalia juu ya vifaa vingine.
Kama tunaweza kuona, sisi kufanya hata kuona juu ya kesi hii.
Hivyo nina kwenda kuifunga kwa sasa.
>> Na mimi nina kwenda kuchagua icon hii chini sana
chini sehemu ya screen.
Ni anasema kutatua Auto Layout Masuala.
Sorry, ni kukatwa chini.
Lakini kama mimi bonyeza kwamba, kile ambacho mimi kupata ni pop hii up-- kwenda mbali.
Nini mimi kupata ni pop up hii kwamba inaruhusu mimi kuongeza vikwazo missing.
Na kwa kufanya hivyo ni kisha aina ya lock
katika kituo cha fungu la screen kama mimi kutarajia.
>> Sasa ili kupata kifungo hii juu ya juu yake, mimi haja ya kwenda kwa Mhariri.
Kwenda Embed Katika na click Navigation Mdhibiti.
Nini kwamba kufanya ni kwamba kuongeza hii yote sehemu nyingine kwa hiyo,
lakini kwa kweli itakuwa kiungo nyuma ya UI yangu ya awali.
Na maelezo, tena, hatufanyi kweli wanahitaji huduma ya juu hivi sasa.
Lakini mimi nataka kuwa na toolbar chini sana.
Hivyo mimi itabidi kuangalia Shows Toolbar.
>> Na hii inatoa ndani ya maoni yangu, ambayo sasa ni mahali pengine,
tunaweza kuona ni wanaohusishwa zaidi ya hapa.
Ni sasa inatoa toolbar chini ya UI yangu.
Hivyo sasa, badala ya kuchagua picha mtazamo, siwezi kupata studio,
au tuseme toolbar-- hebu angalia, ambapo ni kwamba?
Nini ni kuitwa?
bidhaa button-- bar-- item-- sorry-- bar kifungo item.
Plop kwamba kuna na kuomba wanandoa nafasi ya rahisi upande
kwa kweli kituo cha hiyo.
Hivyo sasa nimekuwa kuundwa UI yangu, kimsingi.
Na naweza kuwapa jina na kubonyeza mara mbili juu sana
hapa na kusema mtandao nyumba ya sanaa na kadhalika.
Sasa tena, haya ni mambo ambazo zipo kwa wenyewe.
Na mimi kuwa kuungana yao na kanuni yangu
Siwezi kufanya na tena kuleta up hii mara mbili mduara icon,
kubadilisha kutoka hakikisho.
Ambayo, kwa njia, sasa tunaweza kuona ni nicely katikati na kuangalia nzuri
juu ya aina ya vifaa.
>> Kubadili moja kwa moja, ambayo itakuwa kuleta ViewController code.
Na sasa sehemu hii ni muhimu.
Ili kwa wewe kuungana haya mambo mawili, kanuni yako kwa UI,
kuchagua bidhaa kwamba unataka kuunganisha.
Hivyo katika kesi hii, sisi kweli wanataka encode
kubadilisha sura hiyo zilizomo ndani ya hii mtazamo UI picha.
Hivyo kama wewe kudhibiti click kutoka picha mtazamo na Drag,
utasikia taarifa kwamba wewe kupata bar kidogo, wakati wewe basi kwenda ya kila kitu pop hii
up kutokea.
>> Na inasema kwamba sisi kujenga uhusiano.
Na kutoka hapa nataka kuwapa jina, kitu kama nyumba ya sanaa.
Hit Enter.
Na kwa kweli hii inatoa variable kuitwa nyumba ya sanaa
kwamba naweza kisha rejea katika code yangu kubadilisha picha, kwa mfano.
Hivyo ni jinsi gani kwamba kanuni kweli kuangalia?
Naam tena, mimi sitaki kutumia muda sana juu yake.
Na mimi kuhimiza wewe kushusha ni na kuangalia.
Lakini mmoja wa watu wengi kipengele muhimu ni kanuni
kwamba kweli fetches picha.
>> Hivyo katika kesi hii nataka kupata ndani ya picha yangu
safu, ambayo ni zilizomo ndani ya darasa langu.
Nataka kufafanua jina na URL hiyo imekuwa parsed nje ya JSON hii.
Kweli kuuliza kifaa kupata URL, kuchota URL kutoka hii,
na kisha kuchota data kutoka yaliyomo ya kwamba URL.
Kisha kuwabadili data kwamba katika mfano kwa kupita ndani UI picha.
Hivyo tena, hizi ni aina tofauti ya vitu, aina mbalimbali ya madarasa.
>> Na kisha naweza kisha kuweka yangu gallery.image sawa na data hiyo.
Na hiyo ni aina ya nyama yake kwamba kweli ni kisha
uwezo wa kubadilisha data from-- mabadiliko picha kutoka kwa mmoja hadi mwingine.
Hivyo tena, hopefully sasa mengi ya constructs
itakuwa mantiki kidogo zaidi.
Taarifa kwamba kuna baadhi ya pointi Moderators hapa.
pointi Moderators ni kimsingi kuhusiana na optionals.
>> Nini mimi kimsingi akisema ni kwamba bila hata kuangalia
kuona kama kuna data ndani ya hii hiari,
Mimi nina kwenda mbele na kudhani kwamba kuna na unwrap yake.
Kumbuka kwamba sisi kutumika mfano wa aina ya mfuko kwa ajili ya optionals
na tunahitaji unwrap mfuko na kuvuta data nje.
Moderators kumweka vikosi kwamba kweli kutokea.
>> Lakini najua kwamba hii ni salama kwa sababu mimi checked
kuona kama picha data ni sawa kwa nil, Nimekuwa kwa kweli kuangalia
kuona kama hiari ilikuwa, kwa kweli, alishindwa.
Kama kwamba alikuwa, kwa kweli, alishindwa tayari.
Na hivyo mimi nina uhakika kwamba mara moja mimi kupata hii uhakika Mimi unaweza salama unwrap data hiyo.
Unaweza pia kuona katika aina ya alama ya swali.
Hivyo kama sisi kitabu chini ambapo mimi haja kwa kweli Hazrat data.
>> Hivyo si kuwa na kuweka mbali na hizi aina ya majina ndefu.
Unaweza kupata katika Apple developer tovuti mengi
ya marejeo yote ya vitu na shughuli zote za
kwamba kweli kufanya huu.
Lakini taarifa kwamba hii ni kimsingi kazi ambapo mimi kupita baadhi ya data.
Na mimi kupata nyuma baadhi ya aina ya data.
Na mimi haja ya kutumia hii kama keyword kuwabadili ndani nsdictionary hii?
Ambayo ni tena, hiari nsdictionary.
Ambayo mimi kisha haja ya kuangalia kuona kama ipo.
>> Hivyo siwezi kutumia kwamba kama basi mafanikio sawa parsed,
basi mimi kujua kwamba hiari kweli ina baadhi ya data.
Au nini mimi hapa ilikuwa kudhani tu kwamba kama kuna
walikuwa hakuna makosa ambayo kwa kweli ni salama.
Haki wote, mimi nataka kuwashukuru wewe wote sana kwa kuja.
Najua hii ilikuwa mengi, lakini ilikuwa tu saa
kwa majadiliano juu ya baadhi pretty juu mambo ya ajabu.
Na hivyo hopefully utapata nafasi ya kushusha wote wa code
na kuchukua bora zaidi, kuangalia uhakika katika hilo.
Aina ya kuwashawishi mwenyewe wa yote ya mambo ambayo kinaendelea.
Na mimi nataka kuwashukuru yote, tena kwa kuja.
Na bahati nzuri na miradi yako ya mwisho.
Kuwa na siku kubwa.