[Powered by Google Translate] [Seminar] [iOS: Pagsusulat ng mga Apps Tulad ng Boss]
[Tommy MacWilliam] [Harvard University]
[Ito ay CS50.] [CS50.TV]
>> Lahat ng karapatan, lahat, maligayang pagdating sa iOS: Pagsusulat ng mga Apps tulad ng Boss.
Seminar na ito ay tumuon sa pagsusulat ng mga apps para sa iPhone
at siya namang pagsusulat apps para sa iPad, at kaya talaga namin ay pagpunta sa lakad sa pamamagitan ng
ng ilang iba't ibang mga halimbawa ng kung paano gumawa ng app, isang simpleng laro tulad pagkimbot ng laman Tac daliri ng paa,
o kung ikaw ay mas interesado sa paggawa ng isang app tulad ng ilang mga uri ng balita reader
o isang bagay na nakikipag-ugnayan sa Internet ako makipag-usap tungkol sa na pati na rin.
Narito ang aming maikling agenda.
>> IOS apps ay nakasulat sa isang wika na tinatawag na Layunin-C,
at kaya ito ay kaunti katulad sa C ngunit hindi talaga sa lahat,
kaya namin ang pakikipag-usap ng kaunti tungkol sa wika mismo
at pagkatapos ay kung paano bumuo ng iPhone apps na gamit ang app na ito na programa na tinatawag na XCode,
kung saan kung hindi mo na-download ko pa ito huwag mag-atubiling upang simulan ang pag-download ngayon.
Ito ay ilang gigabytes.
Dapat ito ay libre sa App Store, kaya kailangan mong magkaroon ng isang Mac
perpektong tumatakbo ang pinakabagong bersyon ng OS X.
Kung hindi ka, walang problema.
Mayroon kaming mga Mac sa agham center para sa iyong paggamit
may XCode-install, at kaya't huwag mag-atubiling gamitin ang mga para sa pag-unlad.
Kung nais mong gumawa ng app ngunit hindi magkaroon ng isang Mac, huwag mag-alala.
Mayroong maraming mga mapagkukunan ng campus para sa.
At kaya pagkatapos namin ay pagpunta upang masakop ang mga 2 mas malaking mga halimbawa ng iba't ibang mga apps na maaari mong gawin.
Layunin-C ay technically kung ano ang tinatawag na isang napakabilis na hanay ng C.
Nangangahulugan iyon na din ang anumang C code ay wastong Layunin-C code.
Iyon ay nangangahulugan na namin ang uri ng maliit na tubo tape sa ilang mga karagdagang tampok sa C.
Ang ilan sa mga tampok na ito ay kinabibilangan ng hindi pagkakaroon ng kailanman isulat ang malloc muli, salamat sa Diyos,
hindi na kinakailangang mag-alala tungkol sa mga mga bobo payo na iyon at pagbabakante mga ito at ang lahat na bagay
kinasusuklaman mo tungkol sa C, at ito uri ng nawala sa Layunin-C.
>> Ngayon, Layunin-C ay mayroon ding isang mas malaking library pamantayan,
kaya ng maraming higit pang pag-andar makakakuha ka ng para sa libreng loob ng Layunin-C.
Tandaan kapag kami ay sumusulat PHP napansin namin na nagpunta kami mula sa
ang pinakamaliit na wika sa higanteng library ng lahat ng mga nakatutuwang mga bagay na maaari mong gawin.
Ang parehong bagay ang mangyayari sa iOS.
Mayroong mga bagay para sa mga bagay tulad ng kalendaryo Buddhist, at talagang anumang
maaari mong posibleng isipin marahil umiiral na sa Layunin-C pagpapatupad.
Ang layunin bahagi ng Layunin-C ay tumutukoy sa isang bagay
tinatawag na Bagay-Nakatuon Programming.
Ito ay uri ng isang bagong konsepto, ngunit aktwal namin ang karamihan natutunan
marami sa mga konsepto na.
Ang ideya sa likod ng Bagay-Nakatuon Programming na kayo ay pagpunta sa buuin
ng maraming ng iyong code sa paligid ng mga bagay na ito na tinatawag na klase,
at ang mga klase na ito ay talagang glorified structs.
Sa loob ng isang struct talaga namin sinabi dito ay isang bagay,
at ang bagay na ito ay maaaring magkaroon ng mga kasapi.
Halimbawa, ang isang node sa isang naka-link na listahan ay maaaring magkaroon ng iba pang mga bagay
tulad ng isang halaga, isang pointer sa susunod na node sa listahan,
at kasama na ang pointer at na halaga binubuo ito isang halimbawa ng isang struct.
Klase na halos kapareho maliban
klase ay maaari ring magkaroon ng mga function sa loob ng mga ito.
Kapag namin ipinahayag ng struct, maaari lamang namin sabihin int n o node * susunod.
>> Ngayon may Layunin-C namin ang aktwal na ilagay ang mga function
sa loob ng mga bagay.
Ang isa pang bagay na mga klase ay maaaring gawin ay maaaring sila magmana ng mga data mula sa ibang klase.
Halimbawa, makikita namin pagtingin sa isang grupo ng mga built-in na klase ng Layunin-C.
Isa sa mga ito ang klase na kumakatawan sa pagtingin para sa isang screen,
at ito sa pamamagitan ng sinasabi gusto kong ipatupad ang aking sariling pagtingin
talaga namin sabihin na ang isang tao sa paglipas ng sa Apple, marahil ay talagang maganda ang mga tao,
sinulat ni klase na ito para sa akin, at nito pinangangasiwaan ang mga bagay tulad ng pagpapakita ng pindutan
o nagre-render ang screen, at gusto namin talagang nasasaktan
ipatupad ang lahat na pag-andar na ating sarili, at iba pa sa pamamagitan ng simpleng
inheriting data, maaari naming sabihin na ang lahat na iyong ginawa sa na klase
Gusto ko rin sa loob ng aking klase, at pagkatapos ay ako pagpunta sa gawin ang ilang iba pang mga bagay-bagay,
lalo na ipatupad ang isang app.
Iyon ang kung ano ang ibig sabihin ng salitang iyon inheritance. Namin makita ang isang mas kongkreto halimbawa.
>> At sa wakas, ang susi sa Bagay-Nakatuon Programming na
humahantong sa data encapsulation.
Sa ilang sa aming mga problema Nagtatakda kami ng mga malaking, pangkalahatang variable
at globals lahat ng dako, at na kung paano nais naming subaybayan ng estado.
Na may klase namin simulan ang encapsulating ng impormasyon sa loob ng isang bagay.
Kung kami ay may isang screen sa aming app, hindi namin talagang kailangan upang magkaroon ng anumang mga data mula sa
isa pang screen sa aming app loob ng na,
at ito sa pamamagitan ng encapsulating ng mga bagay sa loob ng klase ito aktwal na humahantong
sa mas mas mahusay na code disenyo, at ito ay posible sa ilan sa mga karagdagang mga tampok
ng Layunin-C.
Forewarning, ang syntax para sa Layunin-C ay saging.
Ito ay tulad ng walang nakakita kami bago,
kaya ito ay isang kaunti ng isang pag-aaral curve nagsisimula ginagamit upang
kung ano ang ano ba ang ibig sabihin nito?
Ngunit sa sandaling makakakuha ka nakalipas na paunang pag-aaral curve talaga, talagang makinis
upang simulan ang pagsusulat ng mga apps.
>> Idedeklara ang isang klase, upang sabihin dito ay aking klase, umiiral na ito,
at baka narito ang ilang mga bagay na ako pagpunta upang tukuyin sa ibang pagkakataon,
Ako pagpunta sa sabihin @ interface.
Ako pagpunta sa sabihin @ interface. Ako pagpunta upang bigyan ang aking klase ng pangalan.
At pagkatapos mamaya sa ibang lugar ako pagpunta sa sabihin @ pagtatapos,
at lahat ng bagay sa pagitan ng @ interface at ang @ pagtatapos
pagpunta sa aking klase.
Na ay pagpunta sa kung ano ang sa loob ng aming. File h.
Tulad ng sa C ang aming. H file talaga sinabi dito ang ilang mga bagay na umiiral.
Hindi ako kinakailangang nagsasabi sa iyo kung ano ang ginagawa nila pa,
ngunit ang tagatala kailangang malaman na umiiral ang mga ito.
Mamaya sa loob ng aming. M file-dahil m para sa Layunin-C
ay kung saan aktwal na namin ay upang tukuyin kung ano ang mga klase gawin.
Karamihan tulad ng aming. File c, ibinigay namin ng pagpapatupad para sa mga function.
Sa loob ng aming. M file kami ay pagpunta sa sabihin dito ay ang lahat ng mga pagpapaandar
sa loob ng aking klase-ang lahat ng mga ito ay ginagawa.
At sa wakas, sa loob ng isang struct ay maaaring namin sabihin sa loob ng mga kulot tirante
int n o node * susunod,
at sa Layunin-C kami ay pagpunta sa gamitin ang keyword @ ari-arian,
at ito ay kung ano ang nangyayari upang tukuyin ang mga katangian,
o ang mga non-function na ay isang bahagi ng aking mga klase.
>> Pagtawag ng mga function sa Layunin-C ay din saging.
Kapag ipinahayag namin ang mga function sa C sinabi namin ang isang bagay tulad ng int foo
at bukas paren at pagkatapos ay nagbigay ito ng isang listahan ng mga argumento.
Ito ay kung ano ang deklarasyon ng mga pamamaraan o function Mukhang sa Layunin-C.
Kung gusto ko upang idedeklara ang isang function o isang pamamaraan
kung saan ako sinasabi na pamamaraan ay talagang lamang ng isang function na ang isang miyembro ng klase,
kaya ang uri ng mapagpapalit, ngunit hindi talaga,
ito sa loob ng aking paraan ng Gusto kong lumikha ng isang bagong paraan ng.
Ito ay upang bumalik wala, kaya ito ng uri void.
Ito ay ang uri ng return ng aking function na.
Ngayon ay mayroon kaming parens dito dahil-hindi ko alam.
Susunod ay ang pangalan ng aking function na,
at pagkatapos ay sa wakas mayroon kami ng semicolon tulad ng nagkaroon kami sa C.
Ano ang bago dito ay ito tao dito.
Gitling ito ay talagang kinakailangan, at kung ano ang sinasabi ay na
ang pamamaraang ito dito ay dapat na tinatawag na sa isang instance ng isang class.
>> Pagkatapos naming ipinahayag aming structs sinabi namin marahil isang bagay tulad ng
struct node n, at na aktwal na nilikha
o instantiated isa sa mga structs sa gayon na maaari kong aktwal na simulan ang nagtatrabaho
sa kung ano ang sa loob nito, kaya gitling ito ay nangangahulugan na mayroon kaming
magbigay ng halimbawa ng uri lang bang namin instantiated na struct
bago kami tawagan ang pamamaraan na ito dito.
Kung gusto ko upang magsimulang magdagdag ng mga argumento sa aking pamamaraan
ito ay nakakakuha ng higit pang saging.
Narito ang aking paraan ng pangalan.
Pagkatapos ako pagpunta sa magkaroon ng isang tutuldok, at pagkatapos ng tutuldok ito sabi dito ay ilang mga argumento.
Ang pamamaraang ito ay tumatagal ng isang argument.
Isang int, at ang pangalan ng argumento na ang uri ng mga argumento
o ang variable na ako pagpunta upang simulan ang paggamit sa loob ng pamamaraan ay tinatawag na i.
Muli, ito ay paraan. Tumatagal ng isang argument.
>> Kung nais mong magsimulang magdagdag ng higit pang mga argumento nakakakuha ng higit pang saging
na namin ito tutuldok na sinasabi dito ay ang aking listahan ng mga argumento.
Ang unang argument ay isang integer.
Ngayon, ang pangalawang argumento ay kawili-wili.
Ang variable na ako pagpunta sa gumagamit sa loob ng aking function na
ay tinatawag na f, kaya sa loob ng aking mga function na maaaring kong sabihin
f + = 1 o isang bagay.
Ito bagay dito ay isa lamang key para sa na argumento o parameter.
Tulad lamang nagkaroon kami key na mga pares ng halaga at isang bagay tulad ng JSON o nag-uugnay array
Layunin-C ginawa ang desisyon upang sabihin, okay lamang sa gayon ay talagang malinaw
kapag tumawag ka ng isang pamamaraan na kung ano ang lahat ng mga parameter na ito ay
Aktwal na ako pagpunta upang pangalanan sila lahat ng.
Kapag tumawag ka ng isang pamamaraan, aktwal kang magna sabihin andFloat,
at pagkatapos ay kayo na ipasa ito.
>> Nang kawili-wili, ang isang ito ay hindi na pinangalanang, ngunit ang lahat ng iba pang mga parameter ay,
kaya kung nagkaroon kami ng 3rd argument ko sabihin andFloat
at isa pang Float at iba pa.
Kapag tumawag ako ng mga pamamaraan na ito ay ng saging kurso,
kaya kung mayroon akong isang bagay, at ako nagbigay ng isang pamamaraang tinatawag foo,
at gusto kong tumawag sa ang mga ito, sa halip na sinasabi ng foo bukas / malapit parens
Ako pagpunta upang buksan ang isang bracket.
Narito ang pangalan ng aking paraan ng.
Ako pagpunta sa isara ang bracket, at ito ay ang mga bagay na ako pagtawag ito sa.
Tandaan, ang lahat ng mga pamamaraan na ito ay umiiral sa loob ng klase
dahil klase ay maaaring magkaroon ng mga pamamaraan na tinukoy sa loob ng mga ito.
>> Narito mang Lumikha ako ng isang bagay ng ilang mga klase,
at ito ay ang syntax para sa paggawa na.
May 2 hakbang sa paglikha ng isang bagay.
Ang unang hakbang ay upang sabihin na gusto kong maglaan ng espasyo.
Ito ay ang katumbas ng isang malloc. Hindi namin sabihin malloc ito.
Bumaba kami sa m, ginawa ito alloc, at pinalitan ang. C may. M.
Pagkatapos alloc namin ng isang bagay na kailangan namin pagkatapos simulan ito.
Isa lamang kapag lumikha ka ng mga bagay na maaaring gusto mong ilang logic
na executes kapag sila ay nilikha, kaya maaari kang pumasa sa ilang mga halaga ng default
o isang bagay tulad na, at kaya ito init paraan ng kung ano ang aktwal na lumilikha ng object.
Muna namin maglaan ng espasyo, tulad ng ginawa namin sa C,
at pagkatapos namin initialize ito, na maaaring o hindi maaaring gawin ang isang buong maraming.
Pagkatapos kami ay bumabalik ang bagay na ito sa isang bagay o.
Mayroong isang bituin dito dahil ito ay technically isang pointer,
ngunit huwag mag-alala, mga payo ay hindi na malaking deal sa Layunin-C na ito.
>> Na namin ngayon ang instantiated klase na ito na tinatawag na NSObject,
at ito ay isang random klase na Apple ay may lamang.
Namin na instantiated ito, at ngayon mayroon akong isang halimbawa ng ganitong uri
sa o sa bagay na ito, kaya na nangangahulugan na kung na tinukoy ko
mga pamamaraan na ito ay maaaring kong tumawag sa kanila na katulad nito.
Katulad nito, kung Nais kong tumawag sa isang paraan nang may isang argument,
kaya ito ay pamamaraan ng bar, na tumatagal ng isang argument,
at dito sa baz: qux paraan ng, kaya ito ay tumatagal ng 2 argumento.
Ito ay pagtawag ng isang function na sa sa bagay na ito o.
Kabuluhan?
Syntax ay dapat magkaroon ng kahulugan, ngunit uri ng masanay dito.
>> Okay, sabihin usapan ang tungkol sa ilang mga bagay na binuo sa Layunin-C
na hindi kinakailangang binuo sa C.
Sa C namin uri ng ay humarap sa mga string bilang mga bobo array ng character na,
at Mayroon talagang nakakainis.
Layunin-C ay may mga lahat ng built in para sa amin, at ito ay itinayo noong
gamit ang klase na ito na tinatawag na NSString.
Kapag gusto ko upang lumikha ng isang NSString mayroon kaming mas arcane syntax.
Sa halip na nagsasabing "cs50" sabihin namin @ "cs50"
at ito lamang ang syntax para sa deklarasyon ng mga string sa Layunin-C.
Ito ay lubos na madaling kalimutan, kaya hindi.
Ngayon, sa sandaling mayroon akong ito, ito ay isang string, ngunit mapansin
ito ay talagang isang bagay lamang.
Ko sinabi NSString, na nangangahulugan ko instantiated klase
na tinatawag na NSString, kung saan ang ibang tao sinulat ni para sa akin,
at sila ay napakabuti tungkol dito, at kaya ngayon
Maaari kong simulan ang pagtawag pamamaraan dito.
Kung Tinatawag ko ang paraan ng haba sa sa bagay na ito s
ito ay bumalik sa akin ang haba ng string.
Ito ay tulad ng strlen sa C.
Ito ay magbabalik ng 4.
>> Katulad nito, ang ibang paraan na maaaring ko gusto mong pakialam tungkol ang characterAtIndex na ito.
Ito ay isang pamamaraan na nagsasabing sa ang string na ito s
Gusto ko sa iyo upang makuha ang 0 karakter,
at kaya ito ay bumalik sa akin ng character c,
at ang maramihang higit pa sa mga pamamaraan na maaari mong Google talagang madali.
Apple ng dokumentasyon ay mahusay, at isasaalang-alang namin ang isang pagtingin sa na sa ilang saglit.
Iyon ang string.
Din kami ng variable laki ng array na binuo.
Tandaan sa C kapag ipinahayag namin ang isang array
nagkaroon kami sabihin nating mayroon kang 5 elemento, dulo ng kuwento.
Kapag nakuha namin sa JavaScript at PHP kami maaaring magsimula
paggawa ng mga bagay tulad ng pagdaragdag ng mga elemento o paglipat ng mga elemento.
Maaari naming gawin ang parehong sa Layunin-C.
Sa halip na lumikha ng isang array sa normal na paraan ng C
mayroon kaming muli isa pang klase na tinatawag na sa NSMutableArray.
Mayroon ding NSArray,
at ito ay pagpunta sa isa lamang encapsulate ilang array.
Sabi ito ang unang bagay na gusto kong gawin ay gusto kong maglaan
espasyo para sa isang bagong array, at pagkatapos maglaan ko ito
Pagkatapos ko kailangang simulan ito.
Muli, lamang pagtawag sa mga 2 pamamaraan.
Ngayon, ito ay nangangahulugan na sa loob ng sa bagay na ito
Ko ang isang walang laman na array sitting doon.
Kung gusto ko upang magdagdag ng isang bagay na ito array, maaari ba akong tumawag sa addObject paraan ng.
Gusto kong magdagdag ng isang bagay sa array ng, at gusto kong idagdag ang string CS50.
Kung Nais kong pasalungat alisin na ang maaari kong sabihin gusto kong
alisin ang mga bagay sa unang lugar sa array o isang bagay.
>> Kabuluhan?
Okay, uri ng ginagamit upang ito square bracket bagay.
Sa pamamagitan ng paraan, sa loob ng maraming mga aklatan ng Apple makikita mo ang NS.
NS Ang aktwal na nakatayo para sa susunod na hakbang, na kung saan ay isa sa Steve Trabaho unang kumpanya,
at na kung saan siya talaga nagsimula ang pagsusulat ng maraming ng code
bilang uri ng batayan para sa Mac OS X at lahat ng iba pang mga bagay-bagay,
at kaya NS ito ay uri ng ito maganda ang legacy shout out sa isa sa mga mas maaga kumpanya
bumalik kapag Apple ay unang nagsisimula ang.
Ito ay lahat ng dako.
Natin tingnan sa isang mas halimbawa holistic Layunin-C.
Narito Ako loob ng XCode.
Upang makarating dito, ako unang-download XCode mula sa App Store,
binuksan ito, at pagkatapos ay nagpunta ako dito sa file,
sa paglipas dito sa bago, at pagkatapos ay proyekto.
Pagkatapos gawin ako na mayroon akong lahat sa mga pagpipiliang ito ng kung ano ang gusto kong lumikha,
at sa gayon ay isasaalang-alang namin ang isang pagtingin sa mga pagpipiliang ito sa ibang pagkakataon,
ngunit para lamang sa mga halimbawang ito, dahil hindi namin ang aktwal na magkaroon ng isang app,
Bumaba ako dito, at sinabi ko ang Command Line Tool,
at ito ay isang app na maaari kong tumakbo sa command line
tulad lang namin ang tumatakbo mula sa C.
Iyon ay kung paano nilikha ko ang proyektong ito, at kaya ngayon ako dito,
kaya sabihin unang pagtingin sa ang file na ito, at ito ay dapat magmukhang medyo pamilyar.
Mayroon akong isang int pangalan. May aking kaibigan argc, ang aking iba pang mga kaibigan sa argv.
At upang maaari naming makita na ito ay ang entry point para sa aking unang Layunin-C application.
Dito maaari naming huwag pansinin ito sa ngayon.
Ito ay isa lamang ilang mga bagay-bagay sa pamamahala ng memory na ikaw ay hindi talagang
kailanman mag-alala tungkol.
>> Tingnan natin sa unang block dito.
Ang unang linya na ito, kung sinasabi ko ng Mag-aaral * Alice = [[Estudyante alloc] init] kung ano ang ang paggawa?
Ito unang mag-aaral dito, ito ay marahil isang klase.
Ito ay hindi isang klase na Apple sinulat ni, ngunit ito ay isang klase na aking sinulat ni.
Ang unang bagay na gusto kong gawin ay gusto kong maglaan ng espasyo para sa isang bagong mag-aaral,
at pagkatapos Gusto kong simulan ito, kaya ito ay nagbibigay sa akin muli
bagong mag-aaral ng bagay na ito, at ako sa pag-iimbak ng ito sa isang variable na tinatawag na Alice.
Saan klase na nanggaling mula?
Well, sa paglipas dito sa kaliwang bahagi ito ay ang lahat ng iba't ibang mga file sa loob ng aking proyekto.
Maaari naming makita dito mayroon akong ng Student.h at isang Student.m.
Ang file na. H, tandaan, kung saan ipinapahayag ko lahat ng mga bagay
na umiiral sa loob ng klase.
>> Natin kumuha ng isang pagtingin sa na.
Lahat ng karapatan, dito mayroon kaming @ interface na ito, at ito sabi ni na dito ay
ang mga pagdeklara ng lahat na umiiral sa loob ng aking klase.
Pagkatapos Mayroon akong ng tutuldok. Pagkatapos Mayroon akong NSObject bagay na ito.
Sumisimbolo na inheritance bit na namin ang tinatalakay ng kaunti mas maaga ang tutuldok na ito.
Ito sabi ni ang lahat ng maaaring gawin ng isang NSObject
kung saan ang NSObject klase na ito na nakasulat sa pamamagitan ng ibang tao,
lahat NSObject na ito ay maaaring gawin gusto ko upang gawin iyon.
Sa pamamagitan ng sinasabi: NSObject na nangangahulugan na ako talaga
minana ang lahat ng pag-andar ng isa pang uri.
Na talagang nagbigay ako ng isang buong grupo ng mga iba't ibang mga pamamaraan at mga katangian na maaari kong gamitin.
Down dito Lumilikha ako ng 2 mga katangian.
Iyon ay nangangahulugan na ang aking mga mag-aaral, kung ito ay isang struct, mga ito ay ang 2 bagay
sa loob ng aking struct, kaya bawat mag-aaral ay may isang pangalan
na isang string, at ang mag-aaral ng isang grado,
na isang int.
>> Panghuli, pababa dito ako pagpunta upang lumikha ng isang paraan para sa aking mga mag-aaral.
Tinatawag ko ang aking paraan ng, initWithName, at ito ay tumatagal ng isang argument,
at ang argument na isang string, at tinatawag ko ito pangalanan.
Ngayon tingnan natin sa kung paano namin aktwal na ipinatupad ng klase na ito.
Dito, ngayon ako sa loob ng aking mga file na. M,
m para sa pagpapatupad, hulaan ko.
Ko ang aking pagpapatupad, ang aking pagtatapos, at dito ay kung saan aktwal ako pagtukoy
ano initWithName ginagawa.
Mayroon akong initWithName, ang pangalan ng aking mga parameter, at pagkatapos na ito
kung saan aktwal na Lumilikha ako ng isang mag-aaral,
at kaya ito ay kaunti misteriyoso, ngunit ito ay uri ng boilerplate
na nais mong isama sa iyong mga constructor.
Function na ito Pinasimulan dito, initWithName, ay isang uri ng constructor.
Talaga mong bumuo ng isang bagong bagay ng mag-aaral
at maaaring pagpapadala ng ilang mga data sa loob nito.
Ang unang bagay na gusto kong gawin ay gusto kong tumawag sa init sa sobrang bagay na ito.
>> Tandaan na kapag sinabi ko bumalik dito sa file na. H
na lahat NSObject ay may isang mag-aaral ay mayroon ding.
Nangangahulugan iyon na kapag lumikha ako ng isang mag-aaral kung ano ang kailangan ko rin na gawin ay
tiyakin na ang NSObject na ako inheriting ang lahat ng data na iyon mula
din ang maayos na nasimulan.
Ano ang kailangan ko upang sabihin ito sobrang ay aktwal na pagpunta sa sumangguni sa klase ng magulang
na ako inheriting mula sa, kaya gusto kong tiyakin ko initialize
lahat na ako depende sa bago sisimulan ko ang sinusubukang gamitin ito.
Pagkatapos kung na nasimulan tama, ito ay tulad ng sinasabi kung malloc
ay hindi bumalik null pagkatapos maaari kong simulan ang pagtatakda ng ilang mga katangian.
>> Sa JavaScript at PHP namin keyword na ito na tinatawag na ito,
at ito ay tinutukoy sa kasalukuyang Halimbawa ng isang klase.
Sa Layunin-C tinatawag naming ito sa sarili.
Kapag sinabi ko self.name, na nangangahulugan na ang bagay
Ko lang nilikha kapag sinabi ko ang mag-aaral alloc init,
na pagpunta upang bigyan ako ng isang bagay.
Iyon ay nangangahulugang gusto ko upang i-set ang pangalan ng bagay na iyon
sa anumang ko lang ang pumasa.
Tulad sa C, hindi namin ma-access ang mga miyembro na may tuldok na ito,
kaya sabi ng self.name ang pangalan ng mag-aaral ang mga bagay
ngayon ang pagpunta sa anumang mo lamang ang pumasa.
At kaya sa wakas, ang maaari kong ibalik ito kaya ko aktwal na makakuha ng isang bagay na pabalik.
>> Mga tanong?
Okay, sa gayon sarili ito = sobrang init,
kung hindi mo lubos na maunawaan ang mga bagay-bagay ng mana huwag mag-alala.
Lang malaman na kung sakaling nais upang gumawa ng iyong sariling paraan ng init lamang
gawin iyon, at ikaw ay handa na upang patakbuhin.
Oo. >> [Mag-aaral] Ano ang ibig sabihin ng kung sarili sabihin?
Nangangahulugan ito na kapag malloc namin ng isang bagay na lagi naming naka-check kung ito ay katumbas ng null,
at kung ito ay null, pagkatapos namin lumabas.
Ito ay ang parehong bagay, dahil kung ito babalik sa null, pagkatapos marahil kami ay pagpunta sa seg fault
kung sinimulan namin ang pagsubok na manipulahin ito.
Na ang aming klase ng mag-aaral.
Ito ay nangangahulugan na maaari naming simulan ang aming mga mag-aaral sa isa sa dalawang paraan.
Kung sinasabi ko ang mag-aaral alloc init hindi ko ginagamit na paraan ng ko lang sinulat ni,
at sa halip ko lang sabihin alice.name,
at ngayon ako i-set na ang pangalan ng ari-arian.
>> Katulad nito, kung gusto kong gamitin na initWithName paraan ng
Ko lamang sabihin ang alloc, at pagkatapos ay sa halip na sinasabi init
Ako pagpunta sa tumawag na paraan ng ko lang nilikha, at ako pagpunta upang pumasa sa Bob.
Sa puntong ito, sa bagay na ito ni Bob ay may pangalan na katumbas ng Bob.
Okay, pababa dito ako gamit na NSMutableArray na namin ay tumingin sa mas maaga.
Ako paglaan space.Then ako Sinisimulan ang isang bagong array.
Ako pagpunta upang magdagdag ng 2 mga bagay na ito.
Ngayon hold ang mga bagay ng mag-aaral ang array na ito.
Pansinin na ay wala saanman kong sabihin na ito ay isang hanay ng mga mag-aaral.
Sinabi ko ito ay isang array, panahon.
Pagkatapos ay maaari ko bang ilagay ang anumang sa loob nito na gusto ko.
Narito Mayroon akong 2 bagay.
>> Panghuli, mayroon akong isa pang bagay dito, ito tf.
Sa paglipas ng dito sa TF.h talaga ang parehong bagay.
Ako inheriting mula sa NSObject, at sa pamamagitan ng ang paraan,
kapag lumikha ka ng klase na ito ay ginawa para sa iyo,
ganitong uri ng interface boilerplate.
Ay isang ari-arian ng mga mag-aaral.
Mayroon akong ilang mga pamamaraan dito na hindi talagang gawin ang isang buong maraming,
at sa gayon ay nangangahulugan na pagkatapos lumikha ko ito tf bagay
Maaari kong tawagan ang pamamaraan na ito ng grado dito tulad nito.
Anumang mga katanungan sa Layunin-C syntax bago simulan namin ang paglipat sa ilang higit pang
kawili-wili apps unlad bagay?
>> Okay, kaya sabihin aktwal na gumawa ng iPhone app.
Ang mga klase ng core na makikita mo gamit sa loob ng iyong iPhone app ay tinatawag na tanawin controllers,
at ng tanawin controller talaga ay kumakatawan sa isang solong screen
sa loob ng iyong app, kaya kung ako sa app ng musika, halimbawa,
isang view controller ay maaaring kumatawan sa view ng kung saan ko tingnan ang lahat ng mga kanta sa aking iPhone.
Isa pang view ng controller ay maaaring kapag ako ay i-click ang isang kanta at simulan ang nagpe-play ito
o bilang ako pagbabarena down sa artist.
Ang bawat isa ng mga iba't ibang mga screen ay maaaring kinakatawan bilang isang iba't ibang mga view ng controller,
at ng tanawin controller ay talagang lamang klase na sinasabi kung paano gumagana ang screen na ito.
Mga bagay sa loob ng isang view ng controller, kami ay pagpunta sa may ang mga katangian ng,
kaya ang mga bagay na tulad ng isang pindutan pagpunta sa isang ari-arian ng aming view ng controller.
>> Rin namin na magkaroon ng mga pamamaraan, at ito ay isa lamang na kaganapan handler.
Sabi ng pamamaraang ito kapag pindutin ang pindutang ito
Gusto kong gawin ang isang bagay, at sa wakas, muli,
kami ay pagpunta sa gamit ang sarili keyword upang ma-access ang kasalukuyang Halimbawa.
Upang bumuo ng mga interface sa iOS ay talagang talagang, talagang madali.
Mayroon silang ito gandang i-drag at i-drop na interface na tinatawag na Interface Builder,
at ang 2 pangunahing konsepto na wire up ang iyong Layunin-C upang Interface Builder
ay IBOutlet at IBAction.
IBOutlet isang simpleng sabi na kung idedeklara ka ng isang ari-arian na ang isang pindutan,
at nais mong Hook up ang mga ito sa isang bagay sa iyong aktwal na UI,
ka upang sabihin ito ay isang outlet.
Gayundin, kung nais mong kinakatawan ang isang kaganapan handler
ka upang sabihin ito ng isang aksyon.
>> Upang aktwal na wire graphical na representasyon na ito
at ang iyong code talaga, talagang simple.
Kung nais mong maglakip ng IBOutlet, ang lahat ng kailangan mong gawin ay kinokontrol mo click,
at makikita namin makita ang isang halimbawa ng mga ito talagang mabilis.
Kinokontrol mo i-click ang kung saan sinasabi nito View Controller.
Ka upang i-drag sa interface, o pasalungat,
kung gusto mong i-hook up ng isang kaganapan handler ka upang i-drag mula sa interface
sa iba pang direksyon.
Natin ng isang pagtingin sa isang talagang simpleng halimbawa iOS.
>> Natin lumikha ng isang bagong proyekto.
Pupunta ako upang makabuo dito upang Application,
at ako pagpunta sa i-click ang Single Tingnan ang Application.
Ako pagpunta sa i-click ang susunod. Bibigyan kita ng aking proyekto ng pangalan.
Tatawag ako ito Hello.
Nang kawili-wili, ang Apple Ipinagpapalagay lumilikha ka ng isang produkto
upang maaari kang magbenta ng ito at maaari silang gumawa ng pera.
Down dito ako upang sabihin na ito ay isang iPhone app.
Maaari kang lumikha ng isang iPad app, o kung nais mong lumikha ng isa ng mga apps
na sumusuporta sa parehong mga aparatong maaari mong gawin na masyadong.
Mga ito ay kung ano ang nais mong iyong mga checkmarks sa hitsura.
>> Na nais mong gamitin ang storyboards, na makikita namin makita mamaya,
at talagang nais upang magamit ang awtomatikong reference nadaragdagan,
kung saan ay isang magaling na tampok na pumipigil sa iyo mula sa pagkakaroon ng sabihin malloc at libreng.
Maliban kung gusto mong tumawag malloc at libreng, nais kong mag-iwan ito naka-check.
Ko i-click ang susunod na, at sa wakas, ito ay pagpunta sa hilingin sa akin kung saan gusto ko upang i-save ang mga ito.
Makikita ko pindutin lumikha, at dito namin pumunta.
Lumikha ako ng bagong proyekto.
Sa paglipas dito sa kaliwa ay ang lahat ng mga file na sa loob ng aking proyekto,
at pansinin na Nakatanggap ako ng buong bungkos, at hindi ko kahit gawin.
IOS ay mahusay.
>> Halimbawa, narito ang ViewController.h,
ito ay kumakatawan sa aking unang view ng controller,
kaya ang unang screen sa loob ng aking app.
Ngayon namin malaman kung ano ito ay sinasabi.
Namin sinasabi na ako pagtawag ito klase ViewController,
at isang ViewController ang lahat na isang UIViewController ginagawa,
at ito, muli, ilang klase na sinulat ni Apple na ginagawa ng maraming mga madaling-gamiting mga bagay-bagay para sa amin
bang ipakita sa screen.
Narito ay kung saan maaari kong aktwal na magsimula sa pagtukoy kung ano ang aking pagtingin ng controller,
at ito ay lumiliko ko talagang hindi na kailangan ang anumang mga ito.
Ito ay boilerplate code na Apple ay nagbibigay sa akin nang libre.
Ko ginawa kailangan na unang linya, o hindi ko magkaroon ng isang klase,
upang maaari naming makakuha ng mapupuksa ng na at mapupuksa ng ito.
Okay, kaya ito ang aking walang laman na screen.
>> Ngayon sabihin i-click ito MainStoryboard.storyboard,
at ito ay kung saan ito nagsisimula upang makakuha ng kawili-wiling.
Ito ay kumakatawan sa unang screen sa aking app.
Kung gusto kong magdagdag ng isang pindutan, sa HTML ko ay upang lumikha ng isang pindutan tag.
Sa Android mayroon kang lumikha ng isang pindutan tag,
ngunit sa iOS kung ko lang bumaba dito sa kanan ng ibaba
at kung ako mag-click sa ito 3rd isa dito kung saan sinasabi nito Objects,
at maaari ba akong mag-scroll pababa, o maaari kong simulan ang paghahanap para sa pindutan.
At tumingin, isang pindutan, kaya kung aktwal ko i-drag at i-drop sa karapatang ito doon,
Lamang Idinagdag ko na ang isang pindutan sa screen na ito sa aking app.
Kung gusto kong baguhin ang teksto, maaari kong i-double click ito,
sabihin nakakaakit ng isang bagay tulad ng "Pindutin Akin."
Okay, ngayon kung nagpatakbo ako ng app na ito, kaya kami makatipon ito,
upang patakbuhin ito ko i-click ang play button sa itaas na kaliwang, at ang aking app.
Hindi ko gawin, at Nakatanggap ako ng matamis na naghahanap iPhone app.
Kung gusto ko upang ihinto ang mga ito, maaari mong i-click ang pindutan ng stop
dahil ito ay mas masaya.
>> Sabihin natin na gusto ko aktwal na isang bagay na mangyari kapag pindutin ko ang pindutan na ito.
Upang gawin na kung ano ang kailangan kong gawin, kailangan ko upang lumikha ng
isang bagong handler ng kaganapan o ng isang aksyon.
Iyon ay nangangahulugan na kailangan ko upang lumikha ng ilang mga paraan na gusto ko na tinatawag na
kapag pindutin ko ang pindutan, kaya sabihin lumikha ng isang bagong paraan ng.
Ako loob ng ViewController.h.
Kailangan kong sabihin na ang paraan ng isang umiiral.
Kailangan ko ng gitling unang dahil ako pagpunta sa pagtawag na ito sa controller view.
Kailangan ko upang bigyan ito ng isang uri.
Ang uri ng ito ay na IBAction bagay na nakita natin mas maaga.
Ito ay isang kaganapan na handler, kaya ito upang ibalik isang IBAction,
at ito ay isang pahiwatig sa XCode sabihin na
ito ay isang bagay na gusto ko sa wire ng isang bagay sa.
Maaari kong bigyan ito ng isang pangalan, tulad ng buttonPressed, semicolon.
>> Ngayon ko na ipinahayag ng isang bagong paraan sa loob ng aking klase.
Ko na sinabi ang pamamaraang ito ay may umiiral.
Ngayon hayaan ang dumating sa ViewController.m,
at sabihin natin kung ano ang pamamaraang ito ay maaaring gawin.
Kung sisimulan ko ang pag-type, halimbawa, (walang bisa) buttonPressed
abiso XCode ay talagang maganda ang at autocompletes para sa akin.
Na talagang kahanga-hangang.
Mapansin dito na loob ng. M file ko ring sabihin walang bisa,
at ito ay dahil ang IBAction na ay hindi tunay na isang uri.
Aktwal na ito hashtag tinukoy sa isang lugar sa isang walang bisa,
at muli, ito ay isang pahiwatig sa XCode na nagsasabing
Gusto ko ito upang maging isang kaganapan handler, at ipapakita namin makita kung bakit sa loob lamang ng pangalawang.
Kapag ang pindutan na ito ay pinindot ako pagpunta sa gawin ang isang bagay na nakakainis
bang magpakita ng isang popup.
>> Upang magawa Maaari ba akong lumikha ng isang bagong halimbawa ng ganitong klase na tinatawag UIAlertView,
at ito ay isang klase na sinulat ni Apple na nangyayari upang ipakita ang mga nakakainis na popup.
Susubukan naming tumawag ito popup alerto, at mayroon akong 2 hakbang, tandaan, sa paggawa sa bagay na ito.
Ang unang bagay na kailangan kong gawin ay maglaan ng espasyo.
Gusto kong ng UIAlertView.
Gusto kong maglaan ng espasyo. Na ang aking unang paraan.
Aking susunod na paraan Gusto kong simulan ito,
at kaya ko ito malaki, mahaba pamamaraang tinatawag na initWithTitle.
Na talaga upang kontrolin kung ano ang mga sinasabi ng popup.
Ang pamagat ng aking mga popup kumusta.
Ang mensahe na ito popup "Ito ay iOS."
Nakatalagang bagay, hindi ko alam kung ano na.
Ipagpalagay natin na ito ay walang.
Ngayon ang pindutan na upang lumitaw maaaring sabihin na ang isang bagay tulad ng "bang ay,"
at hindi ko talagang gusto anumang iba pang mga pindutan, kaya sabihin tanggalin iyon at isara ang bracket.
>> Okay, nilikha ko ang dagdag na isa. Doon kami.
Ito ay kung paano maaari kong lumikha ng isang bagong popup.
Kung gusto kong aktwal na ipakita ang popup Gusto kong tumawag sa palabas na paraan ng.
Upang gawin na maaari kong sabihin ng alerto at palabas,
at muli, autocomplete ay sobrang magaling.
Kung nakalimutan ko ang kung ano ang na, kung ko lang nai-type sa mga,
Maaari ba akong mag-scroll sa dito upang malaman kung ano ito ay,
at sinasala ng mabuti.
Ngayon ko nilikha ang bagong popup.
Susubukan naming bumalik sa kung ano ang nakatalagang ay nangangahulugan sa ibang pagkakataon,
at ngayon ay nais kong sabihin na gusto ko ang pamamaraang ito upang ma-fired
kapag ako pindutin ang pindutan, kaya ako pagpunta upang bumalik sa aking storyboard,
at gusto kong i-attach ito IBAction.
Ang unang bagay na gusto mong gawin ay i-click ang pindutan.
Kapag pindutin ko ang pindutan na ito Gusto ko ng isang bagay na mangyayari.
Hindi ako pagpunta upang i-hold down ang control.
Ako pagpunta sa i-click at i-drag mula sa pindutan
sa paglipas dito kung saan sinasabi nito View Controller.
Maaari naming makita na ito ay mabuti Ilaw.
>> Kung ako ipaalam sa aking mouse ako ngayon ang popup na ito sa paglipas ng dito kung saan mayroon akong ilang mga pagpipilian.
Isa sa mga ito ay ang mga kaganapan na maaari kong magrehistro.
Ito ang lahat ng mga pamamaraan na ipinahayag ko sa aking h file bilang IBActions.
Ito ay kung paano XCode alam kung ano ang dapat na lumitaw sa maliit na listahan na ito,
sa gayon ay isang pahiwatig.
Kung ako mag-click sa pindutan pinindot, ngayon ko na nakarehistro sa kaganapan handler.
Sa JavaScript nagkaroon kami upang sabihin Mayroon akong ilang mga code na nakarehistro sa kaganapan handler.
Sa Layunin-C ay talagang na madaling.
Kung nagpapatakbo ko ito muli
ngayon kapag pindutin ko ang pindutan aking handler ng kaganapan ay pagpunta sa sunog,
at ako pagpunta upang makuha ang popup.
Super, sobrang simpleng doon.
>> Kung sakaling nais upang makita ang lahat ng mga kaganapan na nangyari mang nakarehistro ang
sa isang bahagi kung ako mag-click sa button na ito
at dumating sa paglipas ng ko dito sa kanang bahagi
unang maaari mong makita dito ang maaari kong gawin ang mga bagay tulad ng uri ng pindutan,
kaya kung gusto mo ang isa sa mga ako o magdagdag ng pindutan ng contact
o anumang.
Kung gusto ko upang makita ang lahat ng mga kaganapan na sa button na ito
kung dumating ko ang lahat ng mga paraan sa dito sa kanang bahagi
maaari naming makita dito sa mga kaganapan Mayroon akong lahat ng mga iba't ibang mga kaganapan.
Ko pindutin ang pindutan, kapag ako ay ipaalam sa pumunta ng pindutan, kapag ako ay nag-double tapikin o anumang,
at ang isa ko lang nakarehistro sa kaganapang ito na tinatawag Touch Up Inside,
at ito sabi ni na sa lalong madaling panahon ng aking daliri ay off ang pindutan
na kaganapan ng pagpunta sa sunog, at na eksakto kung ano lamang ang nangyari.
Ito ay uri ng default na kaganapan pindutan pinindot.
>> Anumang mga katanungan sa ngayon?
Okay, na kung paano namin maaaring magsimula sa wire up ng mga bagay sa aming code
sa mga bagay sa loob ng aming interface.
Tandaan ang unang bagay na namin ay may sa gawin ay upang mahanap ang code,
at pagkatapos namin wired ang interface sa code,
at ang aming unang app.
Okay, na talagang cool na, at nilikha namin ang pindutang ito.
Paano kung hindi namin nais upang lumikha ng isang grupo ng mga katangian ng
kumakatawan sa mga button na ito?
Halimbawa, sa pagkimbot ng laman Tac daliri Mayroon akong 9 pindutan,
at nais ito sobrang, sobrang nakakainis sa upang i-drag at i-drop ang mga 9 beses
o kung ako ay upang gumawa ng pagkimbot ng laman Tac daliri na may 81 sa halip ng 9
at ako ay upang i-drag at i-drop ang 81 beses, at na pilay.
Ano ang maaari naming gawin sa halip ay mas tulad ng isang HTML
kapag nagkaroon kami ng mga bagay tulad ng mga ID at pangalan at maaari naming maghanap para sa mga bagay
sa pamamagitan ng kanilang ID, may isang katulad na paniwala sa iOS tinatawag na tag.
>> Ang tag ay lamang isang natatanging numerical identifier para sa isang bahagi.
Kung sinasabi ko ito ay may tag na 0, halimbawa,
kung ako lilikha ng isang pindutan at bigyan ito ng isang tag ng 0, at kami na makita kung paano gawin na sa loob lamang ng pangalawang,
kung gusto ko upang makakuha ng na pindutan ko lang sabihin na gusto kong tumawag sa
viewWithTag paraan sa bagay sa loob dito,
ang self.view, na kumakatawan sa kasalukuyang screen, halimbawa.
Kung tawagan ko na viewWithTag paraan ng, ako pagpunta upang hilahin pabalik ang pindutan na may tag 0.
Natin ng pagtingin sa ito sa pamamagitan ng gusali pagkimbot ng laman Tac daliri ng paa.
Una, ito ay aking storyboard.
Lumikha ako ng mga 10 pindutan UI.
Mapansin sila lahat ang parehong laki.
Kung ako i-click ang isa sa mga ito at dumating ako pabalik sa paglipas dito sa kanang bahagi na ito
makikita mo inaayos ko ang font dito mismo, kaya ginawa ko ang font ng kaunti mas malaking,
ngunit kung ano ang ko din ginawa ay ako magse-set ang tag na ito.
Sinabi ko na ito ay may isang tag ng 1, at na ang kaliwang tuktok.
>> Ngayon, kung nag-click ako ng isa pang pindutan, tulad nito ikalawang isa dito,
ngayon makikita mo na ang aking mga tag ay 2.
Ang bawat isa sa mga button na ito lamang ay isang natatanging tag,
at kaya ito ay mamaya kung paano ako pagpunta upang simulan ang nakikipag-ugnayan
sa aking app.
Ito ay lahat ng loob ng isang view ng controller,
ngunit dito ay kung ano ang mayroon kami.
Mayroon kaming 3 mga katangian dito.
Ang una at huli pagpunta upang kumatawan sa estado ng aking board.
Isa lamang ang unang isa ay isang array na kumakatawan sa kung saan Xs at Os.
Iba pang isa dito na ito Sinasabi sa amin ng may pagliko ito ay.
Mapapansin mo na ako ay mayroon ding mga bagay na ito dito.
Bago kapag ipinahayag namin mga katangian na namin ibinigay sa kanila ng isang pangalan at isang uri.
Maaari din namin bigyan sila ng ilang karagdagang impormasyon dito.
Ang unang sabi nonatomic, at kung ano ang sinasabi
talaga lamang isang bagay ay kailanman sinusubukan upang ma-access ang variable na ito sa isang pagkakataon.
Maaari mong gawin ang mga mas kumplikadong mga application na multi-may sinulid,
at kaya bumalik sa simula nagkaroon kami ng iba't ibang mga thread,
at iba't ibang mga sprites ma-paggawa ng iba't ibang mga bagay sa parehong oras.
>> Kung hindi ito ang kaso, na ito ay hindi sa anumang bagay na gagamitin namin pagtingin sa,
kung sinasabi namin nonatomic aktwal na ito upang gumawa ng mga bagay ng kaunti mas mabilis.
Mayroon din kaming ito bagay na tinatawag na magtalaga, malakas, o mahina.
Ito magtalaga lamang sinasabi na ito ay isang karaniwang uri.
Ito ay hindi isang bagay o isang pointer dahil ito lamang bool,
kaya bool ay binuo sa Layunin-C.
Nagsasabing hindi subukang gawin magarbong na may mga payo dito.
Ito ay isang regular na lumang scaler.
Malakas at mahina, ito mahina sabi na aktwal na
Gusto kong ito na tumuturo sa isang bagay sa controller view.
Hindi ako pagpunta sa aktwal na magtalaga o init na ito sa aking sarili.
Ang tagabuo ng interface, kapag nagpatakbo ako ng app, upang pangasiwaan ang lahat na Pinasimulan.
Kung sinasabi ko mahina, na sinasabi ng ibang tao ay pagpunta sa paglikha ng.
Kung sinasabi ko ng malakas, ito sabi ni na ako na ang isa
na paglikha ng board bagay na ito,
at kaya dito Mayroon akong ilang higit pang mga pamamaraan dito,
Halimbawa, ang isang pagkilos para sa kapag ang bagong pindutan ng laro ay pinindot,
ng isang aksyon para sa kapag anumang ng iba pang mga pindutan ay pinindot,
at iba pa.
>> Hindi namin ay makakuha sa masyadong maraming ng logic ng pagkimbot ng laman Tac daliri ng paa,
kahit na ito ay napaka-kapana-panabik, ngunit sabihin tumingin sa
ilang ng mga bagay na maaari naming gawin sa loob ng iOS.
Ang bagong paraan ng laro ay pagpunta sa-fired
sa tuwing ako pindutin ang bagong pindutan ng laro.
Upang Hook na hanggang ko lamang darating sa aking storyboard.
Ako nag-click sa bagong laro.
Kung ako sa paglipas dito sa kanan ko maaaring makita ang na
Pindutin Up Inside ay wired sa newGame paraan ng.
Iyon ay kung bakit ito ay pagpunta upang fired.
Ang newGame pamamaraan na gawin ang ilang mga set up.
Ito ay upang sabihin na gusto kong mong i-clear ang estado ng board.
Ito ay isang magaling na paraan sa sumpungin array.
Ito ay pagpunta upang sabihin ito ngayon X sa pagliko,
at ngayon ako pagpunta upang samantalahin ng mga ito viewWithTag bagay.
>> Alam ko na ang aking mga pindutan mayroon ang mga tag 1-9,
at ang isang bagay ko mang pinili.
Kung gusto ko upang i-set ang teksto ng bawat pindutan walang laman
dahil ko lang makapagsimula ng bagong laro at hindi ko nais ang anumang
Xs o Os sa natira ang maaari kong gawin ito.
Maaari kong sabihin na gusto ko ang pagtingin sa mga tag, 1, 2, 3, 4 at iba pa.
Ito ay hilahin ng ibang pindutan sa bawat oras.
Narito ako pinalayas ito sa UIButton.
Tulad lamang ay maaaring namin pinalayas ang mga ints sa mga kamay at sa kabaligtaran
sabi ito na gusto kong pinalayas ito sa isang UIButton.
Iyon ay nangangahulugang ang uri ng ito ay isang UIButton *
dahil sa mga payo, ngunit huwag mag-alala, hindi nakakatakot ito.
>> Kapag mayroon akong ang pindutang ito ako pagpunta sa tumawag sa isang paraan dito.
Ang paraan na ito ay tinatawag na setTitle forState, at kaya ito sabi
Gusto kong upang itakda ang teksto ng pindutan sa ang walang laman na string,
at gusto ko ito sa ang walang laman na string kapag hindi ito pinindot.
Kung ako gamit ang pamamaraang ito, maaari ko bang baguhin ang teksto ng pindutan
sa lalong madaling may mga hit ito, ngunit nais naming sabihin na kapag ang pindutan sitting doon
Gusto ko ang teksto blangko.
Sa wakas, kami ay pagpunta sa initialize ang aking board,
at ako pagpunta sa sabihin na ang lahat ng bagay ay kasalukuyang sa 0,
kaya ang board na ito ang mga miyembro walang pagbabago ay nababago array,
na nangangahulugan na maaari kong tumawag sa addObject na paraan ng at lamang 0 loob nito.
Iyon ay kung ano ang mangyayari kapag lumikha ako ng bagong laro.
>> Natin tingnan sa ibang.
Ang pamamaraang ito dito ay ang IBAction na pagpunta sa ay pinindot
sa tuwing ang isa sa mga parisukat ay pinindot.
Ngayon ay mayroon kaming ilang pagkimbot ng laman Tac daliri logic dito.
Nalaman namin may pagliko ito ay,
at batay sa na namin alinman magtakda ng isang X o isang O,
ngunit napansin namin na kami ay reusing ito parehong handler ng kaganapan
para sa bawat solong isa sa mga pindutan.
Nangangahulugan iyon na hindi ko magkaroon ng isang paraan para sa mga tuktok na kaliwang pindutan,
ng ibang paraan para sa mga pindutan sa kanang ibaba, bagaman maaari ba akong magkaroon ng tapos na.
Na hindi talagang mahusay na disenyo.
Ano ako ginagawa dito ay aktwal na ako upang matukoy
kung ano ang tag ng pindutan na pinindot.
Napansin mo na ito paraan ng pag-play ay tumatagal ng isang argument.
Ito ay tinatawag na nagpadala, at kung anong nagpadala ay ay nagpadala ay pagpunta sa
kumakatawan sa eksaktong kung ano ang nagsagawa ng pagkilos kapag.
Kung ako pindutin ng isang pindutan, nagpadala ito na UIButton
na pinindot ko aktwal na, sa gayon ay nangangahulugan na na UIButton
ay isang tag dahil nilikha ko ang isang tag.
>> Kung gusto ko upang makakuha ng sa tag ko lang sabihin
Gusto ko ang tag ng nagpadala,
at muli, lamang ko na casted ito sa isang UIButton.
Mangyayari kong malaman na nagpadala ng UIButton.
Ito ay hindi palaging isang UIButton.
Maaaring ko, halimbawa, magrehistro sa parehong handler ng kaganapan
para sa isa para sa isang pindutan, isa para sa isang slider.
Sa kasong ito, alam ko na ang mga ito ang lahat ng mga pindutan, kaya ako pagpunta sa sabihin
Gusto ko ito sa isang pindutan, at pagkatapos ko makukuha ang tag,
at mula sa tag ko ngayon alam kung nasaan ako sa loob ng board.
Pagkatapos ay maaari ko lamang itakda ang alinman sa X o O, maaaring i-flip ang pagliko,
check na napanalunan, at iba pa.
>> Anumang mga tanong na ito sa ngayon?
Okay, ang lahat ng mga code na namin nai-post online-hindi namin nais upang makakuha ng sa masyadong maraming
ng pagkimbot ng laman Tac daliri logic, ngunit ngayon maaari mong makita na talagang
lahat ng ginagawa namin ay kami ay looping sa ibabaw ito array,
kaya mayroon kaming ilang para sa loop dito, at lang kami ng paghahambing upang makita
kami ng isang tugma sa lahat ng mga hilera, ang isang tugma sa isang hanay o anumang bagay tulad na.
Upang aktwal na patakbuhin ang app na ito, kung ako mag-tap sa isa sa mga button na ito
na-play ng paraan ng fired, kaya nangangahulugan iyon ko lang magtakda ng
ang pindutan ng X, kaya ngayon pindutan na ito ay isang O, at iba pa,
at sa gayon ay kung paano kami ay nagsisimula upang makipag-ugnay sa app ang nag-iisang pahina.
>> Magpo-post kami ng code, kaya huwag mag-atubiling upang bumasang mabuti na,
ngunit sabihin na ngayong makipag-usap tungkol sa ilang apps na higit pa kaysa sa isang pahina lamang.
Tulad ng kapana-panabik na bilang pagkimbot ng laman Tac daliri ng paa, ng maraming ng mga apps sa loob ng iOS
uri ng mga drill pababa sa mga bagay na may maramihang mga screen.
Ang unang konsepto na kakailanganin naming makipag-usap tungkol sa mga protocol,
at ang protocol ng lamang ng isang hanay ng mga pamamaraan
na maaari mong nangangako upang tukuyin.
Kung ako lilikha ito bagong protocol na may 2 pamamaraan, ang unang isa,
ay walang bisa kung ang uri ng return, tinatawag ko ito foo.
Ito ay tumatagal ng mga argumento. Mayroon akong ibang paraan.
Nagbabalik ng isang int. Tinatawag ko ito bar, at ito ay tumatagal ng isang argument.
Lahat ng protocol na ito ay na tinatawag na SomeProtocol dito,
ito ay isang hanay ng mga bagay na ang isang tao ay maaaring ipatupad.
Hindi ko pa sa loob ng protocol na ito sinabi kung ano ang foo ginagawa.
Sa halip, ako sinasabi na maaari mong tukuyin ang foo kung gusto mong.
Kapag ako ay ang paglikha ng isang view ng controller o paglikha ng isang klase
Ko sa loob ng na klase ng pangako na ipapatupad
ilan sa mga pamamaraan na ito, kaya halimbawa, kung sabihin
ito ngayon sabi nagsasagawa ako ng isang pangako sa iyo na loob
ng ganitong klase ng view ng controller ba akong magkaroon ng kahulugan para sa parehong foo at bar.
>> Bakit ay na kapaki-pakinabang?
Isang maraming ng mga bahagi sa loob ng iOS samantalahin ito
disenyo pattern na tinatawag paglalaan, at kung ano ang paglalaan sabi
ay na, halimbawa, kung mayroon akong isang text box
at may ilang mga kaganapan na maaaring nakarehistro sa loob ng aking text box,
halip ng paglikha ng hiwalay na mga kaganapan sa kung ano ang maaari kong gawin ay maaari kong sabihin
pinaglaanan ng text box na ito ay ilang mga bagay.
Kapag sinabi ko na ito ng nakatalagang ngayon na nangangahulugan na
tuwing may kaganapan ilang na-fired sa kahon ng teksto
sa halip ng pagkakaroon upang irehistro ito o anumang bagay tulad na
lamang ito tumawag sa isang paraan sa nakatalagang.
Halimbawa, sa loob ng aking text box mayroon akong isang paraan para sa kapag pindutin ko
na tapos na pindutan sa kanang ibaba,
at kaya sa halip kaysa sa pagrehistro ng kaganapan handler kung ano ang maaari kong sabihin ay
text box, narito ang isang bagay na gusto kong mong tumawag sa isang paraan sa
sa tuwing may pagpindot tapos pindutan,
at na nangangahulugan na ang bagay na ipatupad ang ilang mga protocol
na nagsasabing nangangako ako upang tukuyin na tapos na pagkilos ng pindutan,
dahil kung hindi ito tukuyin na paraan at pindutin ang tapos,
ito na nakalilito.
>> Natin tingnan ang isang halimbawa.
Narito lamang ako ay isang text box,
at isa ng ang mga katangian ng text box na ito sa paglipas dito sa kanang bahagi ay ang nakatalagang.
Ito ay isang ari-arian ng klase.
Ano ang ginawa ko dito ay kontrolin ko click, at drag ko mula sa lugar sa paglipas dito
sa view ng controller, at na nagsasabing ngayon ang nakatalagang ng text box na ito
pagpunta sa view ng controller.
Iyon ay nangangahulugan na kapag ang ilang mga aksyon mangyari, kaysa sa pagrehistro
hiwalay na kaganapan handler gusto ko sa iyo na magpadala ng mga ito sa nakatalagang.
Ngayon sabihin tingnan sa aking pagtingin controller.
Loob ng ang file na. H ako na ginawa ng pangako.
Ipinangako ko na ipatupad ng ilang mga pamamaraan sa loob ng protocol na ito
tinatawag UITextFieldDelegate, at muli,
ito lamang ang ilang mga listahan ng ilang mga bagay na maaari kong piliin na ipapatupad.
>> Kung dumating ako dito sa aking file sa. M, ko na ipinatupad ang isa tulad pamamaraan ng.
Ko na tinatawag na ito textFieldShouldReturn
dahil na kung ano ito ay tinatawag na sa loob ng protocol.
At ngayon tuwing pindutin ko ang tapos na sa loob ng pindutan na patlang ng teksto
ito ay kung ano ang nangyayari upang tinatawag na, kaya hindi ko magrehistro ng isang kaganapan handler.
Konektado ko ang nakatalagang, at tuwing may kaganapan na ito ay fired
ito ay ang paraan na makapag tinatawag, kaya kung dumating ako sa paglipas dito upang aking storyboard at patakbuhin ito
habang na naglo-load, maaari naming makita kung ano ang ginagawa.
Sa aking screen Mayroon akong 2 bagay.
Mayroon akong ito ng patlang ng teksto, at mayroon akong label na ito.
Lamang ako sinasabi gusto ko ang teksto ng label na ito
katumbas sa anumang gumagamit na nai-type sa loob ng patlang ng teksto.
Ito susunod na linya dito ay simpleng paraan na ako pagtawag
sa patlang ng teksto na nagsasabing gusto kong mong itago ang keyboard.
Ito ay arbitrary paraan na Apple pinili.
>> Muli, bago ko ginawa ang anumang bagay na ako ay may sa wire ang lahat hanggang, kaya ko unang dumating sa paglipas dito.
Mula sa controller view i-drag ako sa kahon ng teksto.
Ipaalam ko pumunta, at ang maaari kong makita dito na maaari kong gawin ito ang field ng teksto ari-arian
dahil sa paglipas dito sa controller view tinukoy ko na ang ari-arian ng
na isang IBOutlet ng isang patlang ng teksto.
Sabi ko wire property na ito
sa isang patlang ng teksto sa aking UI.
Ngayon kapag nag-click ako ito ang maaari kong simulan ang pag-type.
Ngayon kung ako i-click ang tapos na pindutan na ito ay pagpunta sa sunog
isang kaganapan na maaari kong ngayon tumugon sa.
Walang mga handler ng kaganapan.
Kung paano ko lang ang tumugon sa na tapos na pindutan.
Kabuluhan?
>> Ito ay hindi isang disenyo pattern na-hindi ka kailanman maaaring mahanap ang iyong sarili
paglikha ng iyong sariling protocol, ngunit lamang malaman na ang ilang mga
ibang iOS bahagi magrehistro ng mga kaganapan sa iba't ibang paraan.
Pindutan, halimbawa, gamitin ang mga IBActions iyon.
Teksto patlang, sa kabilang banda, ay pagpunta sa gamitin ang mga delegates.
Maaari naming makita at maaari mong tingnan ang lahat ng na up sa loob ng dokumentasyon.
Sa pamamagitan ng paraan, mayroon talagang isang tonelada ng UI bagay na inilagay sa iOS para sa iyo,
kaya halimbawa, ang paraan na ang aking ginawa na nagsasabing tapos sa kanan ng ibaba
ay pinili ko ito ng patlang ng teksto.
Ako dumating sa paglipas dito.
Ko scrolled isang bit upang ibalik ang key,
at maaaring aktwal ko gawin ang isang buong grupo ng mga bagay, tulad ng kung gusto ko na sabihin
emergency tawagan sa halip ang maaari kong gawin na, na kung saan ay lubos na random,
at hindi ko alam kung bakit may built-in pindutan ng tawag ng emergency,
ngunit doon, sinasabi nito ang pang-emergency na tawag sa talagang maliit na titik.
Mayroong kang pumunta.
>> Talagang galugarin ang lahat ng iba't ibang mga pagpipilian sa iOS.
Anumang mga katanungan sa mga delegates?
Muli, isang kawili-wiling pattern disenyo na dapat mong malaman.
Okay, sabihin susunod na tumagal ng isang pagtingin sa mga tanawin ng talahanayan.
Ang pagtingin ng talahanayan ay isa lamang na listahan ng mga item na lahat sa ibabaw ng lugar sa iOS.
Kapag ikaw ay flipping sa pamamagitan ng lahat ng iyong mga contact, tumitingin ka sa
ang pagtatakda ng pahina, at na uri ng listahan ng mga bagay ay tinatawag na isang pagtingin ng talahanayan.
Pagpapatupad ng isang pagtingin sa talahanayan sa iOS ay medyo simple.
Sa halip ng paggawa ng isang klase na descends mula sa na UIViewController
tulad ng ginawa namin bago kailangan lamang namin sabihin kaysa
lahat ng UIViewController ang mga gusto kong gawin,
Sinasabi ko lahat ng UITableViewController isang ay gusto kong gawin,
upang lamang ay nagdadagdag ng ilang mga karagdagang bagay na lubos na ginawa para sa amin.
Kailangan naming gawin napakakaunting sa isa lamang na punan ang mga blangko sa loob ng talahanayan.
>> Upang ipakita ang isang talahanayan na kailangan kong sagutin ang ilang mga katanungan.
Ang unang tanong na kailangan ko upang sagutin ay kung gaano karaming mga seksyon ay sa talahanayan?
Kapag ikaw ay flipping sa pamamagitan ng iyong mga contact ng app mapapansin mo na ang uri ng
isinaayos ng Bilang, mayroon kang BS, at mayroon kang na maliit na sub header.
Ang bawat isa ng mga ay tinatawag na seksyon.
Maaari mo o hindi maaaring kailangan ng mga.
Ang unang bagay na kailangan mong gawin ay ipatupad ang pamamaraan ng
tinatawag na tableView: numberOfSectionsInTableView.
Na nagbabalik lamang kung gaano karaming mga seksyon mayroon kang,
kaya ito ay maaaring sabihin bumalik ang isa kung mayroon kang isang malaking view ng talahanayan.
Ang susunod na tanong na ang iOS kailangang malaman kung gaano karaming mga hilera mayroon ka?
Halimbawa, ikaw ay flipping sa pamamagitan ng pagtingin ng talahanayan.
Mayroon kang isang nakapirming numero ng mga kanta tinitingnan mo o isang nakapirming numero ng mga contact.
Kung ikaw ay akin, siyempre, hindi na maraming,
at sa gayon ay kung paano iOS alam kung gaano karaming mga cell upang ipakita.
>> Muli, ito ay maaaring sabihin na ang isang bagay tulad ng return 3.
Aking pagtingin ng talahanayan ay may 3 mga hilera.
Panghuli, ang iOS ay kailangang malaman kung ano ang cell sa bawat mukhang,
kaya kung ano ang aktwal na ito ay pagpunta sa gawin ay tawagan ang pamamaraan na ito dito,
ito tableView: cellForRowAtIndexPath.
Ito ay tawagan ang pamamaraan na ito sa bawat solong cell sa loob ng iyong talahanayan.
Paano ito alam kung gaano karaming beses na tumawag ito?
Well, sinabi mo ito sa loob ng bilang ng mga hilera sa seksyon.
Kami ay pagpunta sa tumawag ito sa bawat isa sa aming mga cell,
at sa loob ng mga ito ay kung saan maaari mong aktwal na gawin ang mga bagay tulad ng
itakda ang teksto o sabihin sa iyo kung ano ang na maliit na asul na pindutan sa kanang bahagi.
Ang pattern para sa pagkuha ng mga cell na ito, kami ay pagpunta sa gamitin ang pamamaraan na ito
tinatawag dequeueReusableCellWithIdentifier.
>> Layunin-C ay talagang mahusay na kilala para sa katawa-tawa haba ng kanilang mga pangalan sa paraan ng,
at ito ay talagang isang magaling na kaso sa point halimbawa.
Ano ang pamamaraang ito ay ginagawa ito sabi lang gusto ko sa iyo na bigyan ako ng cell.
Lamang ng isang iOS bagay.
Kung mayroon kang isang bagay tulad ng mga 100,000 kanta sa iyong iPod
kung ano ang iOS ay hindi nais na gawin ay maglaan ng 100,000 cell,
dahil kung ikaw ay sa tuktok ng iyong listahan, huwag mo ba talagang kailangan upang magtalaga ng memory
para sa cell na 99,000 hilera pababa?
Hindi, dahil ang ka-scroll maaari mong uri ng magtalaga ng bilang ka sumama.
Ito ay ginawa para sa iyo.
Hindi mo na kailangang mag-alala tungkol sa lahat na bobo pagganap ng mga bagay-bagay.
Ang sinabi mong tawagan ka ang pamamaraang ito dequeueReusableCellWithIdentifier,
at ito sabi, okay, kung kailangan mo ako upang lumikha ng isang bagong cell para sa iyo.
>> Ngunit kung ikaw ay sa ibaba ng talahanayan at nakalikha ka na inilalaan ng ilang mga cell
sa tuktok ng talahanayan na ikaw talaga hindi kailangan sa anumang oras sa lalong madaling panahon
Ako pagpunta sa magbibigay sa iyo ng isa ng mga sa halip ng paglaan ng isang bagong,
at kaya ito ay isang magaling na pagganap alalahanin.
Hindi mo na kailangang maglaan ng mga cell na iyong sarili.
Na pagpunta upang bigyan ka ng isang cell.
Ito ay upang bumalik sa ka ng isang bagay sa cell.
Sa sandaling mayroon kang ang cell bagay na maaari mong gawin ang mga bagay-bagay dito.
Maaari mong itakda ang teksto ng cell sa property na ito na tinatawag na teksto ng label.
Maaari kang magdagdag ng na arrow sa kanan o ilang iba pang mga random na mga bagay-bagay
may iba pang ari-arian na ito ay tinatawag na accessoryType, at iba pa at iba pa.
>> Natin ng pagtingin sa aktwal na pagpapatupad ng isang pagtingin ng talahanayan ngayon.
Kapag nilikha ko ang proyektong ito
kaysa sa sinasabi ng iisang view ng application ko aktwal na dumating sa paglipas dito
master-detalye ng application, at iba pa talaga ito tumutugon sa app mail
sa iPad sa table ng view sa kaliwa at pagkatapos ay ang mga nilalaman sa kanan.
Sa iPod o iPhone na ito ay tumutugma sa isang solong tanawin ng talahanayan.
Na kung saan ko nakuha ang aking code sa starter.
>> Natin munang tingnan sa storyboard.
Lahat ng ito ay ginawa para sa akin, isa lamang nilikha.
Ang navigation bar na ito ay nagpakita sa akin kung ano ang isang halimbawa cell ay maaaring magmukhang,
at ang maaari kong i-double click ito, baguhin ang pamagat.
Anumang iba pang mga alalahanin ng UI ko pangangasiwaan doon.
Sa header ng file ay mukhang talagang simple.
Sa halip na sinasabi ito ay UIViewController ngayon namin sinasabi na ito ay isang
TableViewController, upang malaman namin na gusto naming tawagan ang lahat ng mga pamamaraan ng talahanayan.
Susunod na gusto kong lumikha ng isang ari-arian na upang kumatawan
ang mga bagay sa loob ng aking mga talahanayan.
Ang table na ito ay pagpunta sa mang ipakita
isang listahan ng mga prutas, at kaya kailangan ko upang lumikha ng ilang array
kung saan maaari kong ipasok ang prutas.
Sa loob ng aking pagpapatupad file ang unang bagay na gusto kong gawin
gusto kong tiyakin-initialize ko ito array.
>> Sinabi ko ang alloc init, nilikha aking prutas array,
at ako pagdaragdag ng 4 na bagay na ito, na kung saan ay mas kontrobersyal kaysa sa iba pang mga 3.
At ngayon Mayroon akong isang hanay ng mga laki 4.
Kami ay alog ito sa CS50.
Ako ngayon ay may isang hanay ng mga laki 4.
Ngayon ako pagpunta upang simulan ang pagsagot sa mga tanong, at aktwal na,
kapag nilikha ko ang app na ito ang lahat ng ito ay ginawa para sa akin.
Hindi ko i-type ang bilang ng mga seksyon sa pagtingin ng talahanayan.
Na ito ay doon, at ako pagpuno sa blangko.
Gaano karaming mga seksyon ang mayroon ako?
Isa. Tapos na.
Gaano karaming mga hilera ang mayroon ako?
Well, mayroon akong isang hilera para sa bawat prutas, kaya ito ang bilang ng
ay isang ari-arian ng anumang array na nagsasabing kung gaano kalaki ito?
Iyon ay kung gaano karaming mga hilera na may ko.
Panghuli, kailangan ko upang sabihin kung ano ang cell sa bawat hitsura?
Ako pagpunta sa sabihin ng dequeueReusableCellWithIdentifier.
>> Muli, ito ay isinulat para sa akin.
Hindi ko gawin ito sa aking sarili, at gusto ko upang makabalik
ang cell na ito sa lokasyong ito.
Tandaan na kami ay pagtawag ito parehong paraan sa bawat solong cell,
at ito argument dito, ito indexPath argument,
sinasabi kung ano ang hilera ako.
Kung sinasabi ko indexPath.row pababa dito
ito ay 0, pagkatapos ito ng 1, pagkatapos ay ito ay 2, at ito ay upang malaman ko
ano cell kasalukuyan ako nagpapalabas.
Gusto kong i-set ang teksto ng cell gamit ang textLabel ari-arian
sa loob ng aking array ng prutas at makakuha ng
ang bagay na naaayon sa bawat hilera.
Kung ito ay isang string, ako ngayon pagtatakda ng
teksto ng ari-arian sa isang string.
Ang maaari kong gawin ang isa pang bagay.
Ko ring magparehistro ng handler ng kaganapan sa bawat isa sa mga cell,
kaya kapag ako ay i-tap ang bawat isa sa mga cell na ito
ito didSelectRowAtIndexPath, ito ay pagpunta sa tinatawag na para sa akin,
kaya lamang sa pamamagitan ng pagtukoy ito ako ngayon pangasiwaan ang kung ano ang mangyayari
kapag mong i-tap ang isang cell, at muli, kami ay pagpasa kung saan cell ay tapped
upang maaari naming muling gamitin ang parehong handler ng kaganapan para sa lahat ng aming mga cell.
>> Muli, ito ay isang bagay iOS ay ginagawa para sa akin.
Natin ipakita ang isa pang nakakainis na popup
na lamang sinasabi na pinili mo ang isang bagay kung saan na may isang bagay
ay ang object ng hilera.
Kapag nagpatakbo ako ito, ako pagpunta sa magkaroon ng ang magandang tanawin talahanayan na ito
may isang hilera para sa bawat isa ng mga prutas, at kung ko i-tap ang isang
ito ay nagsasabi sa akin kung ano ang nangyari.
Kabuluhan?
Hayaan ang mga bumuo ng kaunti mas kumplikado ng isang app,
ng maraming bilang ng pag-click na iyong pinili kamatis.
Ang magaling na bahagi tungkol sa storyboarding
ay hindi lamang ito upang matulungan kaming screen ng disenyo indibidwal,
din ito upang matulungan kaming talian ng aming buong app,
kaya ang panghuling app na kami ay gusali ito magaling na sports news reader,
at kaya pagpunta sa magkaroon ng maramihang mga screen, at sa gayon ay maaari ko aktwal na kumakatawan sa
sa bawat isa ng mga maramihang mga screen sa storyboard,
at maaari ba akong mag-zoom out at makita ang aking app mula sa isang mataas na antas.
>> Upang lumikha ng isang bagong elemento sa loob ng aking storyboard
ito ay talagang simple sa loob ng Interface Builder.
Kung gusto ko upang magdagdag ng isa pang screen na ito, halimbawa,
Ko munang mag-zoom out may pakurot zoom na Apple nagmamahal kaya magkano,
at pababa dito bago ako maghanap para sa isang pindutan
at ako ay i-drag at i-drop ang isang pindutan
kung gusto kong lumikha ng isang bagong screen ko aktwal na i-drag lamang at i-drop
isang buong view ng controller, kaya kung ako pipili ito, hilahin ito sa dito,
hey, may ibang screen, at kaya ngayon gamit ang parehong file na ito sa storyboard
Ko ang lahat ng screen sa loob ng aking app, at maaari ba akong mag-zoom out
at makita kung paano sila nakikipag-ugnay.
Mga ito ay hindi nakikipag-ugnayan pa.
Ang paraan kung saan nakikipag-ugnayan ang mga ang 2 screen mong tukuyin ang relasyon.
Maaari mo talaga sabihin ang screen na ito, kung kailan mo pindutin ang pindutan na ito,
Gusto ko sa slide sa bagong screen na ito.
Nangangahulugan iyon na may ganitong uri ng ugnayan sa pagitan ng
ang unang screen at ang pangalawang screen.
Magkakaroon ka talaga ng isang arrow mula sa na pindutan sa pangalawang screen
na nagsasabi na kapag pindutin ang pindutang ito na kung saan gusto ko ang umalis.
Tulad lamang ng aming kontrol click at drag upang tukuyin ang mga outlet
kami ay pagpunta sa gawin ang parehong bagay upang tukuyin ang mga segues.
>> Susubukan naming makita ang isang halimbawa para sa na, at bago aktwal na namin transition
mula sa isang screen sa isa pang iOS maganda sapat upang tawagan ang pamamaraan na ito
tinatawag prepareForSegue, at ito ay kung saan maaari naming magsimula
pagpapadala ng mga data mula sa isang app sa isa pang.
Sa halimbawa sa hindi namin upang tingnan ito ay isa lamang payagan kaming
upang i-filter ang mga koponan ng baseball sa pamamagitan ng mga liga at dibisyon.
Kapag pumili ako ng liga, halimbawa, gusto kong i-transition
sa aking susunod na screen kung saan maaari kong ipakita ang lahat ng mga dibisyon
na liga o lahat ng iba't ibang mga koponan.
Kailangan kong ipadala sa na screen kung ano ang koponan ang dapat mong ipakita.
Upang gawin na ako pagpunta sa samantalahin ng ang paraan na ito dito.
>> Sa wakas, ang isang random na punto sa iOS.
Kung nais mong i-imbak ng data ito bagay na tinatawag na core data,
na talagang uri ng kumplikado upang gumana sa.
Maaari mo ring gamitin ang SQL upang mag-imbak ng data,
kung saan, muli, ay magaling ngunit uri ng sa mas kumplikadong bahagi upang gumana sa,
ngunit iOS din sumusuporta sa mga talagang cool na bagay na tinatawag na ari-arian listahan,
at isang listahan ng ari-arian ay isang file na kumakatawan sa pangunahing mga pares ng halaga.
Mong tukuyin ang isang listahan ng mga susi, at sabihin mo ang key na ito ay pagpunta sa isang array.
Ang key na ito ay isang string, at talaga anumang bagay na maaari mong gawin
sa JSON na maaari mong gawin sa loob ng isang listahan ng ari-arian,
at kaya ito talagang mabuti ay nagbibigay-daan sa amin upang gumana sa ilang mga data.
Halimbawa, mayroon akong ito Teams.plist na aking nilikha.
Lumikha ako ng bagong file plist, at maaari ba akong mag-drill down.
Ito ay isang diksyunaryo, ito ay isang diksyunaryo, ito ay string,
at kaya ito ay gandang graphical na representasyon ng isang dokumento ng JSON
o lamang ng isang set ng mga pangunahing mga pares ng halaga,
at kaya ito ay ang data na ako nagtatrabaho sa loob ng aking app.
>> Natin ang unang darating sa paglipas dito. Mayroon kaming ng maraming higit pang mga file sa ngayon.
Ngunit sabihin unang darating sa paglipas dito sa storyboard.
Sa storyboard dito-kung maaari ba akong mag-zoom out
maaari na namin ngayon makita na ito ay ang daloy ng aking app.
Muna ako pagpunta sa magsimula sa screen na ito.
Pupunta ako upang mag-drill down sa screen na ito,
at ako upang mag-drill down sa screen na ito, at maaari naming makita dito na kung ako uri ng
ilipat ang isa sa mga ito sa paligid namin ang mga arrow ng pagpunta mula dito sa dito,
at ang paraan tukuyin ko na arrow ay kung ako mag-zoom sa ilang sandali,
at kung dumating ako sa view na ito controller,
at narito ang isang cell, at gusto kong sabihin na kapag mong i-tap ang isang cell
Gusto ko sa slide sa isa pang screen.
Ko lang pindutin ng matagal kontrol,
mag-scroll sa paglipas ng ilang sandali, pindutin nang matagal control, i-drag ang cell na ito sa paglipas ng at bitawan.
>> At mahigit dito sinasabi namin kung ano ang transition na nais mong gamitin?
Nais mo bang gamitin na slide bagay na tinatawag na push?
Gusto mo bang sa slide mula sa ibaba?
Na tinatawag na modal.
At sabay-sabay ko i-click ang isa sa mga ito, ito ay pagpunta upang gumuhit ang arrow para sa akin,
at na nangangahulugan na aktwal na ako mapangasiwaan kung ano ang mangyayari kapag pindutin ko graphically ang pindutan na ito.
Hindi ko isulat ang anumang code sa aktwal na slide mula sa isang screen sa sa susunod.
Na tinukoy ko ito biswal sa loob ng Interface Builder.
Kung ako mag-click sa arrow na ito, maaari naming makita na ibinigay ko ito bagay ng pangalan.
Tinatawag ko ito mga showDivisions, at ito ay sa gayon ay maaari kong malaman
kung ano ang transition ay tungkol sa mangyari, at ipapakita namin makita kung bakit sa loob lamang ng segundo.
Kung paano ko na naka-wire na ang iba't ibang mga screen sa aking app.
Kung ito ay isang pindutan, halimbawa, sa halip na pagtingin ng talahanayan,
Ko makokontrol i-click ang pindutan, kaladkarin sa susunod na screen,
at na kung paano ang maaari kong gawin navigation na paraan.
>> Talagang mabilis, kung dumating kami sa MasterViewController,
muli, kailangan lang namin ay upang tukuyin ang isang listahan ng mga bagay
na ipinapakita sa view ng table.
Narito ako sinasabi gusto ko sa iyo na plist file,
at gusto ko sa iyo upang i-load ito sa isang diksyunaryo,
at sa sandaling mayroon ka na diksyunaryo, ako pagpunta upang sagutin ang mga parehong katanungan muli.
Narito ang bilang ng mga seksyon.
One, mayroong isang hilera para sa bawat liga, at ang teksto ng bawat cell
ay dapat na alinman sa unang isa, ang unang liga, ang ikalawang liga, at iba pa.
Sa wakas, ako pagpunta sa gamitin ang pamamaraang ito na lang namin nakita tinatawag prepareForSegue,
at ito ay ang paraan na ang nangyayari na fired kapag nag-click ako
sa isa ng mga hilera at samakatuwid ay na-activate na transition
na itinakda ko na may mga arrow.
Na ito ay nagsasabi na ang maaari kong magkaroon ng maramihang
relasyon mula sa isang screen sa isa pang.
Kung mayroon akong 2 mga pindutan at mga pindutan sa bawat dadalhin ka sa ibang screen
Ako 2 segues, 1 para sa bawat pindutan.
Ngunit prepareForSegue ito ay, muli, na reused
para sa bawat isa ng ang iba't ibang mga relasyon, kaya na nangangahulugan na kailangan ko ang isang paraan
ng pagkilala kung ikaw pindutin ang unang pindutan o pindutin ang pangalawang pindutan.
>> Tandaan kapag ibinigay ko na segue ng pangalan, ito showDivisions,
na kung paano alam ko na ngayon na ito ay segue na-activate.
Ang gusto kong gawin ay gusto kong sabihin
Gusto kong malaman kung ano ang ko lang pindutin,
at iba pa upang makakuha ng na, maaari kong sabihin na gusto ko ang indexPath para sa mga napiling mga hilera,
maalala ang indexPath lang sabi kung saan ko lang nai-click,
at pagkatapos ay gusto kong sabihin gusto kong malaman kung saan ako pupunta.
DestinationViewController ito, na isang ari-arian ng segue.
Iyon ang screen na pupuntahan ko,
kaya alam ko na ang screen na ako pagpunta sa ay tinatawag na DivisionsViewController
dahil nilikha ko na klase,
at kaya ngayon kung sinasabi ko ang mga d.divisions
Ako ngayon ng pagtatakda ng isang ari-arian ng view ng controller na ako tungkol sa upang pumunta sa.
Ito ay kung paano ako sa pagpapadala ng data mula sa isang screen sa isa pang screen.
>> Lamang ng pagtingin sa ito DivisionsViewController
maaari mong makita dito sa file na. h
may na dibisyon ng ari-arian, at na kung ano talaga ako populating,
sa gayon ay kung paano alam ko na ako nagpapalabas ng mga dibisyon na naaayon sa
ang liga na click ko, at muli,
ang aktwal na pagtingin sa talahanayan ay mukhang medyo magkano ang parehong, lamang ng pagsagot sa mga
3 simpleng tanong at pati na rin ng pagkilala
kung ano ang mangyayari kapag nilipat mo sa susunod na screen.
Lamang ng ilang mga iba pang mga bagay dito.
Napansin mo sa tuktok dito kaysa sa sinasabi # include
Ngayon ako sinasabi # import.
Ito ay lamang ng isang bagay na Layunin-C.
Import ay isa lamang isang nicer na bersyon ng ang,
at halimbawa, kailangan naming malaman kung ano ang klase ito,
kaya hindi lang ako sabihin DivisionsViewController.
Kung hindi namin ginawa hashtag standardio.c loob ng aming mga file na. C
tagatala ay walang ideya kung ano ang printf ay.
Gayundin, kung hindi ko import ang DivisionsViewController
tagatala ang talagang ay walang ideya kung ano ang DivisionsViewController ng.
Tiyakin lamang na ang loob ng iyong iba. File ng m tiyakin mong i-import ang
naaayon. h file kaya na tagatala alam kung anong nangyayari sa.
>> Panghuli, kung ano ang Apple sa huli ay ang ipakita ang ilang mga data gamit ang isang web view,
at sa gayon ay isang bagay kung saan maaari mong i-embed ang isang web view
isang maliit na web browser sa loob ng iyong app.
Ang kailangan mong gawin ay magbigay ng URL sa iyong web browser,
kaya Gusto kong upang pumunta sa mlb.mlb.com,
at ito ay kung paano ko ma-access ang home page para sa bawat koponan,
at iba pa sa pamamagitan ng pagpasa sa URL na ito
maaaring ipakita ang web view na ito para sa akin, at maaari ba akong mag-browse sa paligid,
at simulator sa paggamit ng na ang isa.
Ngayon ito ay dumating mula sa aking plist.
Kung ako i-click ito ito din ay dumating mula sa aking plist, at ito ay mapangasiwaan ang sliding
sa pamamagitan ng pagtukoy ng mga segues.
Ko i-click ito at isa pa,
at ngayon dito ay aking UIWebView, kaya tulad na
dito ang website para sa URL ko lang naka-embed,
at hindi ko upang pangasiwaan ang anumang mabaliw.
Ito ay kung paano upang magpakita ng isang web page.
Mga bagay tulad ng ito back button dito ay ibinigay din sa akin
lubos nang libre dahil tinukoy ko ang mga relasyon na ito gamit ang segues.
>> Anumang mga katanungan? Oo.
[Mag-aaral] Kaya kapag gumamit ka ng alloc, hindi mo kailangang mag-libreng anumang?
Eksakto, kapag tumawag ka alloc at init hindi mo magbakante ito.
IOS ay pagpunta upang pangasiwaan ang lahat ng na para sa iyo.
Ito ay kahanga-hanga, at hindi ka paglabag ng anumang panuntunan. Oo.
[Mag-aaral] Kung ikaw ay upang isama ang higit pang mga koponan na maaaring umangkop sa screen,
awtomatiko itong may scroll pagpipilian, o na may isang bagay na kailangan mong idagdag?
Eksakto, kung ako ay may higit pang mga koponan, halimbawa, ay awtomatiko nitong pangasiwaan ang
ang scroll para sa akin, at lahat ang pagganap alalahanin
na may malaking table din mapangasiwaan lubos na para sa akin.
>> Iba pang mga tanong?
Lahat ng ang code na ito ay pagpunta sa-post.
Namin uri ng glossed sa ibabaw ng kaunti ng higit pang mga menor de edad mga detalye,
ngunit ang mga bagay tulad ng pagtatakda ng ilang mga katangian sa web view ng
lamang ang mga bagay na maaari kang makakuha sa pamamagitan ng pag-browse ng Apple ng dokumentasyon,
na talaga, talagang mahusay inilatag.
Ang mga ito ay may maraming sample apps at Halimbawa usages
ng iba't ibang mga API, kaya tiyak na bumasang mabuti ang mga kung maaari mong.
Ilang kapaki-pakinabang na mga link baka gusto mong tingnan ang.
Ito ang ilang mga madaling-magamit na gabay na dokumentasyon.
Ang mga URL ay napakalaking, kaya sila ay pinaikling.
Ang unang isa ay ang buong library ng dokumentasyon.
Mayroong maliit na search bar, kaya kung simulan mo ang pagta-type pindutan
ito ay simulan ang nagbibigay sa iyo ang lahat ng impormasyon tungkol sa lahat ng mga bagay na maaari mong gawin sa isang pindutan.
Nagsama ako rin ang Table Tingnan ang Gabay sa Programming.
Nito pinangangasiwaan mga tanawin ng talahanayan sa mas higit pang detalye,
kung paano gawin ang mga bagay tulad ng mga dynamic na magdagdag ng mga cell o i-edit ng mga cell o alisin ang mga ito.
>> Mayroong maraming sample apps mula sa Apple na ay magpapakita sa iyo kung paano upang gawin iyon,
at sa wakas, ang huling isa ay ang Human Interface Alituntunin ng,
at ito ay isa lamang ilang mga talakayan ng UI bahagi,
huwag gumawa ng mga bagay tulad ng isang pindutan na 4 na pixels ng 4 pixels.
Na ang isang masamang ideya, at iba pang mga bagay na Apple ay nais mong gawin
upang hikayatin ang magandang disenyo.
>> Anumang mga huling tanong bago namin tapusin up?
Lahat ng karapatan, talagang huwag mag-atubiling-lubos pagpunta sa espesyal na label sa talakayin.
Magkakaroon kami ng iOS isa, kaya talagang huwag mag-atubiling gamitin na.
Kung nais mo upang gumana sa iyong mga kaklase sa mga proyekto
o makatulong na malaman ang ilang mga random na mga bagay-bagay sa iOS
huwag mag-atubili na mag-email sa akin, at tiyak na bumasang mabuti ang lahat ng mga code online dahil
lamang sa interes ng panahon namin uri ng glossed sa ibabaw ng higit pa
haspe detalye ng mas pinong ng mga bagay.
Ngunit kung hindi, pagkatapos ay good luck sa iyong mga proyekto sa iOS, at Umaasa ako na mayroon kami
isang malaking pag-agos ng mga apps sa App Store.
[CS50.TV]