[Powered by Google Translate] [Seminaras] [iOS: Rašymas Apps "Like a Boss] [Tommy MacWilliam] [Harvardo universiteto] [Tai CS50.] [CS50.TV] Viskas gerai, visi, Sveiki atvykę į iOS Apps kaip bosas: Rašymas. Šis seminaras bus sutelkti dėmesį į raštu apps už iPhone ir, savo ruožtu raštu apps iPad, ir todėl mes iš esmės ketinate eiti per pora skirtingų pavyzdžių, kaip padaryti programą, paprastas Tic Tac Toe žaidimas, kaip, arba jei esate labiau domina app kaip kažkokios naujienų skaitymo ar kažkas, kad bendrauja su internetu, aš kalbėti apie tai, kad taip pat. Štai mūsų trumpa darbotvarkė. IOS apps raštu ta kalba, Objective-C, ir todėl tai yra šiek tiek panaši į C, bet tikrai ne visi, todėl mes kalbame šiek tiek apie pačios kalbos ir tada, kaip sukurti per šią programą, programą, pavadintą Xcode iPhone apps, jei turite ne atsisiųsti ją dar jaučiasi dabar, kad pradėti siuntimą. Tai kelis gigabaitus. Ji turėtų būti nemokamai App Store, todėl jums reikia turėti "Mac" idealiai naudojate naujausią versiją OS X. Jei nesate, jokių problemų. Mes turime į mokslo centrą "Mac" savo naudojimui su Xcode įdiegta, ir todėl nedvejodami naudoti tiems, plėtros. Jei norite, kad app, bet neturite Mac, nesijaudinkite. Miesteliu išteklių, kad ten yra daug. Ir taip, tada mes ketiname padengti 2 didesnių pavyzdžius įvairių apps, jūs galite padaryti. Objective-C yra techniškai tai, kas vadinama super rinkinys C Tai reiškia, kad bet koks C kodas, taip pat galioja ir Objective-C kodas. Tai reiškia, kad mes tipo ortakio šeimininku dėl kai kurių papildomų funkcijų,-C Kai kurie iš šių funkcijų apima ne kada nors vėl rašyti malloc, ačiū Dievui, ne nerimauti apie tas kvailas rodyklės ir išlaisvinant juos ir visi, kad kita jums nekentė apie C, o tai tipo dingo Objective-C. Dabar, Objective-C taip pat turi daug didesnį standartinėje bibliotekoje, todėl yra daug daugiau funkcijų, jūs gaunate už laisvą viduje Objective-C. Prisiminkite, kai mes buvo raštu PHP pastebėjome, kad išėjo iš tai mažiausias kalbos į milžinišką biblioteką visų šių crazy dalykų, kuriuos galite padaryti. Tas pats atsitinka iOS. Objektai dalykų, pavyzdžiui, budistų kalendorių, ir tikrai nieko galbūt galite galvoti tikriausiai jau egzistuoja Objective-C įgyvendinimo. Tikslas Objective-C nuorodas kažką vadinamas Objektinis programavimas. Tai tipo nauja koncepcija, bet mes iš tikrųjų daugiausia išmoko daug jau šių sąvokų. Už Objektinis programavimas idėja yra ta, kad jūs ketinate struktūrizuoti apie šiuos dalykus daug savo kodą vadinamas klases, ir šios klasės yra tikrai pašlovintas structs. Viduje iš struct iš esmės čia pasakyta, yra dalykas, ir tai, ką gali turėti narius. Pavyzdžiui, susietą sąrašo mazgas gali turėti kitų dalykų kaip vertės rodyklė į kitą mazgą sąraše, ir kartu, kad rodyklė ir ši vertė sudaro šį vieną egzempliorių tam struct. Klasės yra labai panašūs, išskyrus klasės taip pat gali turėti viduje jų funkcijas. Kai mes paskelbta struct, mes galime tik pasakyti, int n arba mazgas * Kitas. Dabar su Objective-C iš tiesų galime įdėti funkcijas viduje iš tų dalykų. Kitas dalykas, kad klasės gali padaryti jie gali paveldėti duomenis iš kitų klasių. Pavyzdžiui, mes žiūri built-in Objective-C klasių krūva. Vienas iš jų galėtų būti klasė, kuri atstovauja ekrano vaizdą, ir taip pasakyti, kad aš noriu įgyvendinti savo pačios nuomonę mes iš esmės pasakyti ką nors per Apple, turbūt tikrai nice people, parašė šią klasę, man ir rankenos dalykų, pavyzdžiui, rodyti mygtukus arba paverčiant ekraną, ir mes būtume tikrai skaudu įgyvendinti visus tą funkciją patys, ir taip tiesiog paveldi duomenimis galime pasakyti viską, kad tu toje klasėje Aš taip pat noriu viduje mano klasėje, ir tada aš ruošiuosi daryti kai kurių kitų dalykų, ty įgyvendinti programą. Štai ką reiškia, kad žodis paveldėjimas. Matysime konkretų pavyzdį. Ir, pagaliau, su Objektinis programavimas raktas yra tai, kad tai veda prie duomenų hermetizuoti. Kai mūsų problema rinkinių galėtume turėti šių didelių, globalių kintamųjų ir globals visur, ir tai, kaip mes norime sekti valstybei. Su klasėmis, mes galime pradėti sandarinimo informaciją viduje objekto. Jei mes turime vieną ekraną mūsų programą, mes tikrai ne reikia turėti visus duomenis iš kitą mūsų app viduje, ekranas, ir tt sandarinimo dalykų per klases, tai iš tiesų sukelia daug geriau kodų dizainas, ir tai yra įmanoma su kai kurių papildomų funkcijų, Objective-C. Forewarning, Objective-C sintaksė yra bananai. Ji yra lyg nieko mes matėme anksčiau, , todėl yra šiek tiek mokymosi kreivė priprasti prie , ką gi tai reiškia? Bet kai jūs gaunate praeityje, kad pradinis mokymosi kreivė tai tikrai, tikrai sklandžiai pradėti rašyti programas. Paskelbti klasę, pasakyti, čia yra mano klasės, jis egzistuoja, o gal čia yra keletas dalykų, kad aš ruošiuosi nustatyti vėliau, Aš ruošiuosi pasakyti @ sąsają. Aš ruošiuosi pasakyti @ sąsają. Aš ruošiuosi duoti mano klasės pavadinimą. , O vėliau kažkur kitur aš ruošiuosi pasakyti @ pabaigą, ir viskas tarp @ sąsaja ir @ pabaigos bus mano klasės. Kad bus, kas viduje mūsų h failus. Tiesiog kaip C H failai iš esmės čia pasakyta, yra keletas dalykų, kurie egzistuoja. Aš nebūtinai sakau, ką jie daro dar, bet kompiliatorius turi žinoti, kad jie egzistuoja. Vėliau viduje mūsų. M failus, nes m Objective-C yra, kai mes iš tikrųjų ketiname apibrėžti, kas yra šios klasės daryti. Panašiai kaip mūsų c failai, mes pateikėme prašymą funkcijų įgyvendinimą. Viduje mūsų m failą mes ketiname pasakyti, čia yra tai, ką visas funkcijas viduje mano klasės tai, ką jie visi padaryti. Ir, pagaliau, viduje yra struct galėtume pasakyti viduje tų klamrami int n arba mazgas * Kitas ir Objective-C mes ketiname Naudokite raktažodžių @ turtą, ir tai yra tai, kas vyksta apibrėžti savybes, ar ne funkcijas, kurios yra mano klasės dalis. Skambinimo funkcijos Objective-C yra bananų. Kai mes paskelbė funkcijas C sakė kažką panašaus į int foo ir atviras skliaustas ir tada davė jam argumentų sąrašą. Tai ką nurodyti metodus arba funkcijas atrodo Objective-C. Jei aš noriu paskelbti funkciją ar metodą, kai aš sakau metodas yra tikrai tik funkcija, tai yra A klasės narys, todėl rūšies sukeisti, bet tikrai ne, viduje mano metodu aš noriu sukurti naują metodą. Ji ketina grįžti nieko, todėl ji ketina tipo tuštumos. Tai yra mano funkcijos grįžimo tipo. Dabar mes turime parens čia, nes aš nežinau. Kitas bus mano funkcijos pavadinimas, ir pagaliau mes turime kabliataškį kaip ir mes turėjome C Kas naujo čia yra čia šis vaikinas. Tai brūkšnelis yra iš tikrųjų reikia, ir ką tai sako, kad šis metodas turi būti vadinamas klasės pavyzdžiui. Po to, kai deklaravo savo structs mes tikriausiai sakė kažką panašaus Struct mazgas n, ir kad iš tikrųjų sukūrė arba instantiated vieną iš šių structs, kad aš iš tikrųjų galėtų pradėti dirbti su tuo, kas viduje, todėl tai brūkšnys reiškia, kad mes turime instancija klasės, kaip mes instantiated, kad struct galime vadinti šį metodą. Jei aš noriu pradėti pridedant argumentus mano metodus jis gauna dar daugiau bananų. Štai mano metodo pavadinimas. Tada aš ruošiuosi turėti dvitaškis, ir po šio dvitaškio ji sako, čia ateina kai kuriuos argumentus. Šis metodas atsižvelgia vieno argumento. Savo argumentą tipas int, ir šio argumento pavadinimas arba kintamasis, kad aš ruošiuosi pradėti naudoti viduje metodo yra vadinamas i. Vėlgi, tai yra metodas. Tai užtrunka vieną argumentą. Jei norite pradėti pridedant daugiau argumentų jis gauna daugiau bananų , kad mes šį dvitaškis, kad sako, kad čia ateina mano argumentų sąrašą. Tai pirmasis argumentas yra sveikasis skaičius. Dabar, šis antrasis argumentas yra įdomi. Kintamasis, kad aš ketinate naudoti viduje mano funkcija vadinamas f, viduje mano funkcija galėčiau pasakyti f + = 1 ar kažką. Čia yra tai, ką iš esmės šį argumentą ar veiksnio raktas. Kaip mes turėjome rakto reikšmė porų ir kažkas panašaus į JSON ar Association masyvai Objective-C priėmė sprendimą pasakyti, gerai, tik todėl, kad tai tikrai aišku, kai skambinate metodą, ką visi šie parametrai yra Aš iš tikrųjų ketiname pavadinti juos visus. Kai Jūs skambinate metodą, jūs iš tikrųjų pasakyti andFloat, ir tada jums perduoti jį. Įdomu, kad tai vienas nepavadino, bet visi kiti parametrai yra , todėl, jei mes turėjo 3. argumentą galėčiau pasakyti andFloat ir kitas plūdės ir pan. Kai aš vadinu šią metodiką, pirmiausia, žinoma, bananų, todėl, jei aš turėti tokį tikslą, ir aš nustatė metodą, vadinamą foo, ir aš noriu jį pavadinti, o ne sako foo atidaryti / uždaryti parens Aš ruošiuosi atidaryti laikiklį. Štai mano metodo pavadinimas. Aš ruošiuosi uždaryti kronšteiną, ir tai vadinu jį ant objektas. Atminkite, kad visus šiuos metodus egzistuoja klasių nes klasės gali turėti metodus, apibrėžtus jų viduje. Čia aš savavališkai tam tikros klasės objektą, ir tai yra už tai, kad sintaksė. Yra 2 žingsniai kuriant objektą. Pirmasis žingsnis yra pasakyti, aš noriu skirti vietos. Tai lygiavertė malloc. Mes neturime pasakyti malloc nebėra. Mes sumažėjo m, padarė jį ALLOC ir pakeitė c. M. Po to, kai mes ALLOC kažką mes tada reikia inicijuoti. Iš esmės, kai jums sukurti objektus, kuriuos galbūt norėsite turėti tam tikrą logiką kad atlieka, kai jie sukūrė, todėl jūs galite perduoti kai kurias numatytąsias vertes ar kažkas panašaus, ir todėl ši paleidimo metodas yra tai, ką iš tikrųjų sukuria objektą. Mes pirmą kartą skirti vietos, tiesiog, kaip mes padarėme, C, ir tada mes inicijuoti, kurios gali arba negali daryti visai daug. Tada mes grąžinti tai, ką į objektą, o. Yra žvaigždė čia, nes tai yra techniškai rodyklė, bet nesijaudinkite, rodykles, kad didelis Objective-C spręsti nebėra. Dabar mes instantiated šią klasę, vadinamą NSObject, ir tai tik atsitiktinai klasės, kad "Apple". Mes instantiated, ir dabar aš turiu šios klasės egzempliorių Šiame objekte o, taigi tai reiškia, kad jei aš apibrėžta šie metodai gali jiems skambinti, kaip šis. Be to, jei aš norėjau skambinti metodą naudojant vieną argumentą, todėl tai yra baras metodas, kad mano vieną argumentą, ir čia yra Baz: qux metodas, todėl tai trunka 2 argumentus. Tai paskambinus vieną funkciją dėl šio objekto o. Prasminga? Sintaksė turi prasmės, bet jūs rūšies priprasti prie jo. Gerai, pakalbėkime apie keletą dalykų, kad yra pastatytas į Objective-C kad nebūtinai buvo pastatyta į C. Mes tipo, C teko susidurti su stygos, kaip šių kvailas simbolių masyvai, ir ji gavo tikrai erzina. Objective-C yra tie visi pastatytas mums, ir jis pastatytas naudojant šią klasę, vadinamą NSString. Kai aš noriu sukurti NSString turime daugiau paslaptingų sintaksę. O kaip sakydamas "CS50" Mes sakome @ "CS50" ir tai tik deklaruojant Objective-C eilutes sintaksė. Tai labai lengva pamiršti, kad ne. Dabar, kai aš turėti tai, tai yra ženklų, bet pastebėsite, tai tikrai tik daiktas. Aš sakė NSString, o tai reiškia, aš instantiated klasę vadinamas NSString, kažkas rašė man, ir jie buvo labai gražus ir apie tai, todėl dabar Galiu pradėti skambinti ant jo metodus. Jei aš vadinu metodas ilgį šis objektas jis ketina grįžti į mane eilutės ilgį. Tai kaip strlen C. Tai sugrįš 4. Be to, dar vienas metodas, aš noriu rūpintis šį characterAtIndex. Tai metodas, kad sako, kad ši eilutė Aš noriu, kad jūs nulinis pobūdžio, ir todėl tai būtų grįžti į mane pobūdis c, ir ten visa krūva daugiau iš šių būdų, kad jūs galite "Google" tikrai lengvai. Apple dokumentacija yra puikus, ir mes priimsime, kad atrodo šiek tiek. Tie, kurie stygos. Mes taip pat turime įvairių dydžių matricos pastatyta in Prisiminti mane C, kai mes paskelbė masyvą mes turėjome pasakyti, jūs turite 5 elementų, galutinius istorija. Kai mes turime JavaScript ir PHP galėtume pradėti daryti dalykus, kaip pridėti elementus ar judančiomis dalimis. Mes galime padaryti tą patį, Objective-C. O ne kurti įprastu C būdu masyvo mes vėl kitą klasė vadinama NSMutableArray. Yra taip pat NSArray ir tai vyksta iš esmės hermetyzacji šiek masyvo. Tai sako, kad pirmas dalykas, kurį norite padaryti yra, aš noriu skirti naujas daugybę vietos, ir po to, kai aš paskirstyti jį Aš tada reikia inicijuoti. Vėlgi, tiesiog paskambinus Šie 2 metodai. Dabar tai reiškia, kad šio objekto vidų Aš tuščias masyvas sėdi ten. Jei aš noriu pridėti ką nors į šio masyvo, galiu skambinti addObject metodą. Noriu pridėti objektą masyvo a, ir aš noriu pridėti eilutę CS50. Jei aš norėjau atvirkščiai pašalinti, kad aš galiu pasakyti, aš noriu per pirmąjį masyvo vietoje pašalinti objektą ar užginčyti. Prasminga? Gerai, jūs rūšies priprasti prie šioje aikštėje kronšteino dalykas. Beje, viduje daug Apple bibliotekų matysite šią NS. NS iš tikrųjų reiškia kitą žingsnį, kuris buvo vienas iš Steve Jobs pirmoji bendrovių, ir tai, kur jis tikrai pradėjau rašyti daug kodo Mac OS X ir visų kitų dalykų, kaip rūšies, ir todėl ši N rūšies šis gražus palikimo šaukti į vieną iš ankstesnių bendrovių atgal, kai "Apple" buvo pirmą kartą pradedate. Jis yra visur. Paimkime labiau holistinio Objective-C pavyzdys išvaizdą. Čia aš esu viduje Xcode. Nuvykti, aš pirmą kartą atsisiųsti Xcode iš App Store, atidarė jį, ir tada nuėjau į failą, čia į Naujas, tada projekto. Po to, kai aš padaryti, kad aš turiu visus šiuos variantus, ką aš noriu sukurti, ir taip mes priimsime vėliau už šių variantų atrodo, bet tik šiame pavyzdyje, nes mes ne iš tikrųjų turėti programą dar, Aš atėjau čia, ir aš sakė, komandinės eilutės įrankis, ir tai yra app, kad galėčiau paleisti į komandų eilutę kaip mes jau veikia nuo C Štai kaip aš sukūriau šį projektą, ir todėl dabar aš čia, taip, tegul pirmas pažvelgti į šį failą, ir tai turėtų atrodyti gana susipažinęs. Turiu int vardą. Yra mano draugas argc, kiti mano bičiulis argv. Ir todėl mes galime pamatyti, kad tai mano pirmasis Objective-C yra pradinis taškas. Čia mes galime nekreipti dėmesio į šį dabar. Tai iš esmės kai atminties valdymas stuff, kad jums nebus tikrai kada nors nerimauti. Leiskite pažvelgti į šio pirmojo bloko. Pirmoji eilutė, jei aš sakau, Studentų * Alice = [[Studentų ALLOC] init] kas tai daro? Tai pirmasis studentas, tai turbūt klasė. Tai ne klasės, kad "Apple" rašė, bet tai, kad aš parašiau klasė. Pirmas dalykas, kurį norite padaryti yra, noriu skirti vietos naują mokinę, ir tada aš noriu to initialize, todėl tai suteikia man atgal šis naujas studentas objektas, aš saugoti tai kintamojo pavadinimu Alisa. Kur, kad klasė atėjai? Na, čia kairėje pusėje jie visi skirtingų failus viduje mano projekto. Mes galime pamatyti čia turiu Student.h ir Student.m. H failas, prisiminti, kur aš paskelbti visų dalykų kad egzistuoja šio klasėje. Paimkime Tuo išvaizdą. Viskas gerai, čia mes turime šį @ sąsaja, ir tai sako, kad čia ateina viskas, kas egzistuoja mano klasės deklaracijos. Tada aš turiu dvitaškis. Tada aš turiu šį NSObject dalykas. Šis dvitaškis reiškia, kad paveldėjimo tiek svarstėme šiek tiek anksčiau. Tai sako viskas NSObject gali padaryti kur NSObject tai kam nors kitam ", parašytas klasė, viskas šis NSObject galite padaryti, aš noriu, kad būtų galima padaryti, kad. , Sakydamas: NSObject, tai reiškia, kad aš iš esmės paveldėjo iš kitos klasės funkcionalumą. Kad tikrai davė man visa krūva skirtingų metodų ir savybių, kad aš galiu naudoti. Žemyn čia aš 2 nekilnojamąjį turtą. Tai reiškia, kad mano studentas, jei tai buvo struct, tai būtų 2 dalykų viduje mano struct, todėl kiekvienas studentas turi pavadinimą kad yra ženklų, ir studentas taip pat turi klasę, kuris yra int. Galiausiai, žemyn čia aš ruošiuosi sukurti metodą mano studentas. Aš pašaukiau mano metodas, initWithName, ir tai trunka vieną argumentą, ir šis argumentas yra eilutės, ir aš jį pavadinti. Dabar pažiūrėkime, kaip mes iš tikrųjų įgyvendinti šią klasę. Štai, dabar aš viduje mano M failo, m įgyvendinimui, I guess. Turiu savo įgyvendinimą, mano pabaiga, ir čia yra, kur aš iš tikrųjų apibrėžti ką initWithName. Turiu initWithName, mano parametro pavadinimą, o tada šį kur aš iš tikrųjų sukurti į studentą, ir todėl tai yra šiek tiek paslaptingas, bet tai yra rūšies Standartiniai , kad norite įtraukti į savo konstruktorių. Tai iniciacijos funkcija čia, initWithName, konstruktorius tipas. Jūs iš esmės statant naują studentų objektą o gal ir išsiųsti kai kurių jame esantys duomenys. Pirmas dalykas, kurį norite padaryti, noriu paskambinti init šio super dalykas. Atminkite, kad kai aš sakiau čia H failo kad viskas NSObject studentas taip pat turi. Tai reiškia, kad, kai aš sukurti studentas, ką aš taip pat reikia padaryti yra įsitikinkite, kad NSObject, kad aš paveldi visus tuos duomenis taip pat inicijuoti tinkamai. Tai, ką aš turiu pasakyti, tai super iš tikrųjų ketiname kreiptis į patronuojančios klasės kad aš paveldi iš, todėl noriu įsitikinti, kad aš inicijuoti viskas, kad aš priklausomai nuo to, kol aš pradėti bando jį naudoti. Tada, jei, kad inicijuoti teisingai tai tik tarsi sakydamas, jei malloc negrįžo null, tada aš galiu pradėti nustatyti kai kurių savybių. JavaScript ir PHP, šis raktinis žodis pavadino tai, ir tai į dabartinę instancijos klasės. Objective-C, mes vadiname save. Kai aš sakau, self.name, tai reiškia, kad objektas Aš ką tik sukūriau, kai pasakiau, studentas ALLOC init, kad manimi vyksta, duok man objektą. Tai reiškia, kad aš noriu nustatyti to objekto pavadinimą ką aš ką tik praėjo. Tiesiog patinka, C, mes naudotis narius su šiuo tašku, taip self.name sako studentų objekto pavadinimas dabar bus, ką jūs ką tik praėjo. Ir taip pagaliau, aš galiu jį grąžinti, todėl aš iš tikrųjų gauti kažką atgal. Turite klausimų? Gerai, kad tai savarankiškai = super init, jei jūs neturite visiškai suprasti paveldėjimo stuff nesijaudinkite. Tiesiog žinau, kad jei kada nors norėsite padaryti savo init metodą tai padaryti, ir jums bus gera eiti. Taip. >> [Studentų] Ką reiškia, jei savarankiškai reiškia? Tai reiškia, kad, kai mes malloc kažką, mes visada patikrinti, jei jis buvo lygus NULL, ir jei ji buvo nulis, tada mes išėjo. Tai yra tas pats dalykas, nes jei tai grąžina NULL, tada mes tikriausiai bus seg kaltės jei mes pradėsime bando manipuliuoti. Štai mūsų studentė klasė. Tai reiškia, kad mes galime inicijuoti mūsų studentus į vieną iš dviejų būdų. Jei aš sakau, studentas ALLOC init aš ne naudojant šį metodą, kad aš tiesiog rašė, ir vietoj to, galiu tiesiog pasakyti alice.name, ir dabar aš ketina nustatyti, kad nekilnojamojo turto pavadinimą. Be to, jei aš noriu naudoti šią initWithName metodą Galiu tiesiog pasakyti ALLOC ir tada, o ne sakydamas, init Aš ruošiuosi skambinti šį metodą, kad aš ką tik sukūrėte, ir aš ruošiuosi važiuoti, Bob. Šiuo metu šis objektas Bobas turi pavadinimą, vienodą Bob. Gerai, nustatantis čia aš naudoti, kad NSMutableArray, kad mes žiūrėjome anksčiau. Aš skiriant space.Then aš Inicijuojama naują masyvą. Aš ruošiuosi pridėti 2 dalykus. Šis masyvas turi studentų objektus. Atkreipkite dėmesį, kad niekur aš turiu pasakyti, tai studentų masyvo. Aš sakė, kad tai masyvas, laikotarpis. Tada aš galiu įdėti, bet viduje ji, kad aš noriu. Čia aš turiu 2 objektus. Galiausiai, turiu kitą objektą, TF. Daugiau nei čia TF.h iš esmės tas pats. Aš paveldi iš NSObject, ir beje, kai kuriate klases visa tai padaryta už jus, tokios sąsajos Standartiniai. Jis turi turtą studentų. Turiu pora būdų, kad čia tikrai ne tai yra daug, ir taip, tai reiškia, kad po to, kai aš sukurti šį TF objektą Šį metodą balą aš galiu paskambinti, kaip šis. Bet kokie klausimai Objective-C sintaksę, kol mes pradėti judėti į šiek tiek daugiau įdomus Apps plėtra stuff? Gerai, kad galime realiai padaryti iPhone app. Pagrindinių klasių, kad jūs naudojate viduje jūsų "iPhone app yra vadinamas vaizdo valdikliai, ir vaizdas valdytojas iš esmės atstovauja vieną ekraną viduje jūsų app, todėl, jei aš esu muzikos app, pavyzdžiui, vienas mano valdytojas galėtų reikšti nuomonės, galiu peržiūrėti visas dainas mano iPhone. Kitas požiūris valdytojas gali būti, kai aš spustelėkite dainą ir pradėti žaisti arba kaip aš įsigilinę į menininkų. Kiekviena iš šių skirtingų ekranų gali būti atstovaujama kaip kitą vaizdo valdiklio, ir vaizdo valdiklis yra tikrai tik klasės, kuris sako, kaip šis ekranas veikia. Daiktai iš vaizdo valdiklio viduje, mes ketiname turėti savybes, dalykų, pavyzdžiui, vienu mygtuko bus mūsų manymu, kontrolierius nuosavybė. Mes taip pat ketiname turėti metodus, ir tai yra iš esmės turėklai įvykių. Šis metodas sako, kad kai paspausite šį mygtuką, Aš noriu kažką daryti, ir pagaliau, vėl mes ketiname naudoti šį savęs raktinį žodį ir atidarykite esamą egzempliorių. Sukurti sąsajas iOS yra iš tikrųjų tikrai, tikrai lengva. Jie tai gražus vilkite ir upuść sąsaja, kuri vadinama Interface Builder, ir 2 pagrindinės sąvokos, vielos iki jūsų Objective-C Interface Builder yra IBOutlet ir IBAction. IBOutlet tiesiog sako, kad jei deklaruoti turtą, kuris mygtukas ir norite jį prijungti prie kažką į patį UI, jūs ketinate pasakyti, kad tai anga. Panašiai, jei jūs norite atstovauti įvykio apdorojimo tada jūs ketinate pasakyti, kad tai veiksmų. Iš tikrųjų vielos šį grafinis ir savo kodą, tai tikrai, tikrai paprasta. , Jei norite pritvirtinti IBOutlet, viskas, ką jums reikia padaryti, yra jums kontroliuoti spustelėkite ir mes pamatyti, tai tikrai greitai pavyzdys. Jūs kontroliuojate spustelėkite ten, kur ji sako Peržiūrėti kontrolierius. Jūs ketinate vilkti į sąsają, arba atvirkščiai, jei norite Pajungti aptarnavimo įvykio, kurią jūs ketinate vilkti nuo sąsajos kita kryptimi. Paimkime tikrai paprasta iOS pavyzdžiui išvaizdą. Kurkime naują projektą. Aš ruošiuosi sugalvoti Čia taikymo, ir aš ruošiuosi viename rodinyje spustelėkite taikymas. Aš ruošiuosi spustelėkite Pirmyn. Aš duosiu mano projekto pavadinimą. Aš kviesiu Sveiki. Įdomu tai, kad "Apple neprisiima kuriate produktą , kad būtų galima jį parduoti, ir jie gali užsidirbti pinigų. Žemyn čia aš ruošiuosi pasakyti, kad tai yra "iPhone app. Galite sukurti iPad app, arba jei norite sukurti vieną iš šių aplikacijų , kuri palaiko abu prietaisai, kuriuos galite padaryti, kad per. Tai yra tai, ką norite, kad jūsų žyma pasirinkti atrodyti. Norite naudoti maketų, kuriuos pamatysite vėliau, ir jūs tikrai norite naudoti automatinio atskaitos skaičiavimo, kuris yra gražus bruožas, kuris neleidžia jums pasakyti malloc ir nemokamai. Nebent jūs norite paskambinti malloc ir nemokamai, aš norėčiau palikti šį Patikrintas Aš spustelėkite Pirmyn ir, galiausiai, tai vyksta paklausti manęs, kur aš noriu jį išsaugoti. Aš paspausti kurti, ir čia mes einame. Aš sukūriau naują projektą. Čionai kairėje yra visi failai, kurie yra viduje mano projekto, ir pastebėsite, kad aš turiu visa krūva, ir aš net nieko daryti. IOS yra puikus. Pavyzdžiui, čia ViewController.h, tai vyksta, kad atstovauti savo pirmo žvilgsnio valdiklį, todėl pirmame ekrane viduje mano app. Dabar mes žinome, ką tai sako. Mes sakome vadinu ši klasė ViewController ir ViewController daro viską, kad UIViewController, , o tai, vėlgi, yra kai kurios klasės, kad "Apple" rašė, kad mus veikia daug parankių daiktų norėtų rodyti ekrane. Čia yra, kur aš iš tikrųjų galėtų pradėti apibrėžiant ką mano nuomone kontrolierius daro, ir paaiškėja, kad man tikrai nereikia, bet tai. Tai Standartiniai kodas, kad "Apple" suteikia man nemokamai. Aš reikia, kad pirmoje eilutėje, ar aš neturiu klasę, todėl mes galime atsikratyti, kad ir atsikratyti šio. Gerai, kad tai yra mano tuščias ekranas. Dabar galime spustelėkite ant šios MainStoryboard.storyboard ir tai yra, kai jis pradeda gauti įdomus. Tai yra pirmasis ekranas ant mano app. Jei aš noriu pridėti mygtuką, HTML, man teko sukurti mygtuką žymeklį. "Android", turite sukurti mygtuką žymeklį, bet iOS, jei aš tiesiog nusileisti čia, apačioje, dešinėje pusėje ir jei aš spustelėkite šioje 3. vienas čia, kur ji sako, objektai, galite slinkti žemyn, ar galiu pradėti ieškoti mygtuko. Ir atrodo, mygtuką, todėl, jei aš iš tikrųjų vilkite ir upuść šią teisę, Aš ką tik pridėjo mygtuką į šį mano app ekrane. Jei aš noriu, norėdami pakeisti tekstą, galiu dukart jį spustelėkite, pasakyti ką nors viliojantis kaip "Paspauskite mane." Gerai, kad dabar, jei aš paleisti šią programą, todėl mes kaupia jį, taip, kad ją paleisti aš spustelėkite mygtuką viršutiniame kairiajame, o ten mano app. Aš nepadarė nieko, ir aš saldus ieškote iPhone app. Jei aš noriu, kad jį sustabdyti, jūs galite spustelėti stabdymo mygtuką , nes tai smagiau. Tarkime, kad aš iš tikrųjų nori ką nors atsitiks, kai aš paspauskite šį mygtuką. Jei norite padaryti, kad tai, ką man reikia daryti, man reikia sukurti naują įvykį prižiūrėtojas arba yra atliekamas veiksmas. Tai reiškia, kad man reikia sukurti tam tikrą metodą, kad aš noriu būti vadinamas kai aš paspauskite mygtuką, todėl galime sukurti naują metodą. Aš esu viduje ViewController.h. Aš turiu pasakyti, kad būdas yra. Man reikia brūkšnelis pirmąjį, nes aš ruošiuosi būti raginama ant vaizdo valdiklio. Turiu duoti tai tipo. Šio tipo bus kad IBAction dalykas, kad mes matėme anksčiau. Tai renginys prižiūrėtojas, todėl ji ketina grįžti IBAction ir tai yra užuomina į Xcode pasakyti, kad tai ką aš noriu pervesti kažką. Aš galiu duoti jam vardą, kaip buttonPressed, kabliataškiu. Dabar aš paskelbė naują metodą, viduje mano klasėje. Jau sakiau, šis metodas turi egzistuoti. Dabar galime ateiti į ViewController.m ir tarkim, ką šis metodas gali padaryti. Jei aš pradedu rašyti, pavyzdžiui, (tuščia) buttonPressed pranešimas Xcode yra tikrai gražus ir man autocompletes. Tai tikrai puikus. Pastebėsite čia, kad m failo viduje galiu pasakyti negaliojančiu, ir tai yra, nes tai nėra faktiškai tipas IBAction. Tai tikrai kažkur hashtag apibrėžta būti negaliojantis, ir vėl, tai tik užuomina Xcode, kad sako Aš noriu, kad tai renginys prižiūrėtojas, ir mes pamatyti, kodėl po kelių minučių. Kai šis mygtukas paspaudžiamas aš ruošiuosi padaryti ką nors erzina patinka rodyti laikiną langą. Norėdami tai padaryti, aš galiu sukurti naują egzempliorių šios klasės, vadinama UIAlertView, ir tai yra A klasės, kad "Apple" rašė, kad ketina rodyti erzina iššokantys langai. Mes tai vadiname laikiną langą įspėjimą, ir aš turiu 2 žingsniai, atminkite, kad sukurti šį objektą. Pirmas dalykas, kurį reikia padaryti, tai skirti vietos. Noriu UIAlertView. Noriu skirti vietos. Štai mano pirmasis metodas. Mano Kitas būdas yra, aš noriu inicijuoti, ir taip, aš turiu tai didelis, ilgas metodą, vadinamą initWithTitle. Tai iš esmės kontroliuoti, ką apie tai lango sako. Mano iššokantį Antrašte gali buti hello. Tai laikiną langą pranešimas gali būti "Tai iOS". Delegatas dalykas, aš nežinau, kas tai yra. Tarkime, tai nieko. Gali pasakyti kažką panašaus: "Jis tikrai yra, dabar mygtuką, kad ketina pasirodyti" ir aš iš tikrųjų nenori jokių kitų mygtukus, todėl galime ištrinti, kad ir uždarykite laikiklį. Gerai, aš sukūriau papildomą vieną. Čia mes eiti. Tai kaip aš galiu sukurti naują iššokančių langų. Jei aš noriu, kad iš tikrųjų laikiną langą noriu paskambinti šou metodą. Norėdami tai padaryti, kad aš galiu pasakyti įspėjimą ir parodyti, ir vėl, automatinio užbaigimo was super nice. , Jei aš pamiršau kas tai buvo, jei aš tiesiog įvedėte s, Gali slinkti čia išsiaiškinti, kas jis buvo, ir filtruoja gražiai. Dabar aš sukūriau šią naują iššokančių langų. Mes grįžti į ką deleguoti reiškia, ir dabar noriu pasakyti, kad aš nori, kad šis metodas turi būti atleistas kai aš paspauskite mygtuką, kad aš ruošiuosi grįžti į savo siužetinės linijos, ir aš noriu dabar pridėti šį IBAction. Pirmas dalykas, kurį norite padaryti yra paspausti mygtuką. Kai aš paspauskite šį mygtuką, aš noriu ką nors atsitikti. Aš nesiruošia laikykite nuspaudę kontrolę. Aš ruošiuosi spustelėkite ir vilkite mygtuką per čia, kur jis sako Peržiūrėti kontrolieriaus. Mes galime matyti, kad ji gražiai užsidega. Jei aš eiti su savo pele, kad dabar aš turiu šį laikiną langą per čia, kur aš turiu keletą variantų. Vienas iš jų yra įvykiai, kurie gali užsiregistruoti. Tai yra visi šių metodų deklaruotų mano h faile kaip IBActions. Tai kaip Xcode žino, ką turėtų pasirodyti šioje mažoje sąrašą, kad tik užuomina. Jei aš spustelėkite mygtuką štampuoto aš dabar registruotas įvykio apdorojimo programą. "JavaScript" mes turėjome pasakyti, kad aš turėti tam tikrą kodą, kuris užregistruotas įvykio apdorojimo. Objective-C, tai buvo tikrai, kad lengva. , Jei aš paleisti šį kartą dabar, kai aš paspauskite mygtuką mano komanda įvykių vyksta į ugnį, ir aš ruošiuosi gauti šią laikiną langą. Super, super paprasta. Jei kada nors norėsite matyti visus įvykius, kurie atsitinka būti registruotas komponento, jei aš spustelėkite šį mygtuką ir aš atėjau čia į dešinę, pirmiausia galite pamatyti čia Galiu padaryti dalykų, pavyzdžiui, mygtuko tipo, todėl, jei norite viena iš tų, ar Pridėti kontaktą mygtuką ar whatever. Jei aš noriu pamatyti visus įvykius, kurie šį mygtuką jei aš atėjau čia į dešinę, visą kelią įvykių, turiu visus šių skirtingų renginių galite pamatyti čia. Galite paspausti mygtuką, kai aš atleiskite mygtuką, kai aš dukart bakstelėkite ar kokia, ir vienas, aš tik registruoti šis renginys vadinamas Touch viduje, ir tai sako, kad kuo greičiau mano pirštas atsiklijuoja mygtuką įvykis yra į ugnį, ir tai yra būtent tai, kas atsitiko. Tai natūra pagal nutylėjimą mygtukas yra nuspaudžiamas atveju. Kokių nors klausimų, kiek? Gerai, kad, kaip mes galime pradėti pervesti dalykų mūsų kodą į dalykus viduje mūsų sąsaja. Atminkite, pirmas dalykas, kurį mes turėjome daryti buvo rasti kodą, ir tada mes laidinio kodą, sąsaja, ir yra pirmasis mūsų app. Gerai, kad buvo tikrai cool, ir mes sukūrėme šį mygtuką. Ką daryti, jei mes nenorime, kad turi sukurti savybių krūva atstovauja šiuos mygtukus? Pavyzdžiui, Tic Tac Toe turiu 9 mygtukus, ir tai reikia būti super, super erzina, kad vilkite ir upuść 9 kartus arba, jei aš turėjo padaryti Tic Tac Toe su 81 vietoj 9 ir man teko vilkite ir upuść 81 kartus, ir tai yra nevykęs. Ką mes galime padaryti, o ne yra labai panaši į HTML kai mes turėjome pavardžių ID ir dalykų, pavyzdžiui, ir mes galime ieškoti dalykų jų ID, nėra panaši sąvoka iOS vadinamas žymes. Žymė yra tiesiog unikalus skaitmeninis identifikatorius komponento. Jei aš sakau, tai turi žymą "0, pavyzdžiui, jei aš sukurti mygtuką ir suteikti jai žymą nuo 0, ir mes pamatyti, kaip padaryti, kad po kelių minučių, jei noriu gauti tą mygtuką galiu tiesiog pasakyti, kad noriu paskambinti objekto metodą viewWithTag čia, self.view, kuri atstovauja visą ekraną, pvz. Jei aš vadinu, kad viewWithTag metodą, aš atsitraukti mygtuką su žyma 0. Paimkime pažiūrėk statybos Tic Tac Toe. Pirma, tai yra mano siužetinės linijos. Aš sukūriau šiuos 10 UI mygtukus. Atkreipkite dėmesį, jie visi to paties dydžio. Jei aš spustelėkite vieną iš jų ir aš grįšiu čia apie šį dešinėje pusėje pamatysite, aš pakoregavo šriftą čia, todėl aš padariau šriftą šiek tiek didesnis, tačiau tai, ką aš taip pat padarė šią žymę. Aš pasakiau, kad tai turi žymą iš 1, ir tai viršuje kairėje. Dabar, jei aš spustelėkite kitą mygtuką, kaip ir šį antrąjį vienas čia, dabar pamatysite, kad mano tegus yra 2. Kiekviena iš šių mygtukų tiesiog turi unikalią žymę ir taip, tai vėliau, kaip aš ruošiuosi pradėti bendrauja su savo app. Tai yra, visi vieno vaizdo valdiklio viduje, bet čia yra tai, ką turime. Mes turime 3 savybes čia. Pirmasis ir naujausia ketinate atstovauti mano lenta būklę. Iš esmės tai pirmasis yra atstovaujanti masyvas, kur Xs ir OS. Tai čia kitas pasakoja mums, kurios eilė yra. Jūs pastebėsite, kad aš taip pat turiu šiuos dalykus čia. Anksčiau, kai mes paskelbė savybėmis, davė jiems pavadinimą ir tipą. Mes taip pat galime suteikti jiems šiek tiek papildomos informacijos čia. Šis pirmasis sako nonatomic, ir ką tai sako iš esmės yra tik vienas dalykas, niekada negali būti vienu metu bando patekti į šį kintamąjį. Jūs galite tai padaryti sudėtingesnes programas, kurios yra multi-threaded, ir todėl atgal į nulio, mes turėjo skirtingas temas, ir įvairių animacinius gali daryti skirtingus dalykus tuo pačiu metu. Jei tai ne tas atvejis, tai nėra nieko, kad mes žiūri, jei mes sakome nonatomic ji iš tikrųjų vyksta, kad viskas šiek tiek greičiau. Mes taip pat turime šis dalykas, vadinamas priskirti, stiprus, ar silpnas. Tai priskirti tik sako, kad tai yra standartinis. Tai ne objektas arba rodyklė, nes tai tik bool, taip bool yra pastatytas į Objective-C. Tai sako, nebandykite daryti nieko išgalvotas nuorodomis čia. Tai reguliariai senas scaler. Stipri ir silpna, tai silpna sako, kad iš tikrųjų Noriu, kad tai turi būti nukreipta į kažką, vaizdo valdiklio. Aš nesiruošia iš tikrųjų skirti arba init tai save. Interface Builder, kai aš paleisti programą, ketina tvarkyti visus, kad iniciacijos. Jei aš sakau, silpnas, kad sako, kad kažkas yra, bus sukurti šį. Jei aš sakau, stiprus, tai sako, kad aš ruošiuosi būti vienas kad kuriant šią diskusijų objektas, ir, kad čia turiu šiek tiek daugiau metodų, pavyzdžiui, veiksmų, kai naujas žaidimas mygtukas yra nuspaustas, ieškinys yra paspaustas, kai bet kuris iš kitų mygtukų, ir tt. Mes ne gauti į Tic Tac Toe logika per daug, , nors tai yra labai įdomi, bet galime pažvelgti kai kurių dalykų, kad mes galime padaryti viduje iOS. Šis naujas žaidimas metodas bus atleisti iš darbo kai aš paspauskite naują žaidimą mygtuką. Pajungti, kad iki aš tiesiog ateiti į mano siužetinės linijos. Aš spustelėjote naują žaidimą. Jei aš atėjau čia į dešinę, matau, kad Padažyti Viduje yra laidinio į newGame metodą. Štai kodėl tai vyksta, get fired. NewGame metodas bus padaryti tam tikrą rinkinį. Jis ketina pasakyti, aš noriu jums išvalyti lentos būklę. Tai gražus metodas, permainingas masyvai. Tai va, sako, kad dabar X eilė, ir dabar aš ruošiuosi pasinaudoti šio viewWithTag dalykas. Žinau, kad mano mygtukai Žymės 1-9, ir kad tai, ką aš savavališkai pakėlė. Jei aš noriu nustatyti kiekvieno mygtuko tekstą yra tuščias nes aš ką tik pradėjo naują žaidimą, ir aš nenoriu Xs arba OS likę galiu tai padaryti. Galiu pasakyti, kad aš noriu vaizdas su žyma, 1, 2, 3, 4 ir tt. Tai bus ištraukti kitokį mygtuką kiekvieną kartą. Čia aš ruošiuosi mesti jį į UIButton. Kaip mes gali mesti Ints plūdės ir atvirkščiai tai sako, kad aš noriu mesti į UIButton. Tai reiškia, kad tai tipo bus UIButton * dėl patarimų, bet nesijaudinkite, jie nėra baisu nebėra. Kai turiu šį mygtuką, aš ruošiuosi skambinti metodą. Šis metodas yra vadinamas setTitle forštate, ir todėl tai sako Noriu nustatyti mygtuko tekstas turi būti tuščia eilutė, ir aš noriu, kad ji būtų tuščia eilutė, kai ji manimi ne presuoti. Jei aš naudoju šį metodą, galiu pakeisti mygtuko tekstą kuo greičiau kažkas hitai, bet mes norime pasakyti, kai mygtukas yra tiesiog sėdi ten Aš noriu, kad tekstas turi būti tuščias. Galiausiai, mes ketiname inicijuoti mano lenta, ir aš norėčiau pasakyti, kad viskas šiuo metu yra 0, todėl ši diskusijų lenta prisijungę nekintamas permainingas masyvas, kuris reiškia, kad galiu skambinti addObject metodą ir tik 0 viduje ji. Štai kas atsitinka, kai galiu sukurti naują žaidimą. Paimkime už kitą išvaizdą. Šis metodas čia yra tų, kurie ketina būti paspaustas IBAction kiekvieną kartą, kai vienas iš tų kvadratų yra nuspaustas. Dabar mes turime kai Tic Tac Toe logika čia. Išsiaiškinti, kurios eilė yra, ir kad remiantis mes arba nustatyti X arba O, tačiau pastebime, kad mes pakartotinai tą pačią aptarnavimo įvykio už kiekvieną vieną iš šių mygtukų. Tai reiškia, kad aš neturiu viršutiniame kairiajame mygtuką metodą, mygtuko apatiniame dešiniajame kitokį metodą, nors aš galėjo padaryti. , Kad nebūtų tikrai geras dizainas. Ką aš darau čia, tai aš iš tikrųjų vyksta, siekiant nustatyti ką tegus mygtuką, kad buvo spaudžiamas. Jūs pastebėsite, kad ši pjesė metodas užima vieną argumentą. Tai vadinama siuntėjas, ir kokia siuntėjas yra siuntėjas ketina atstovauja būtent tai, ko ėmėsi veiksmų po. , Jei aš paspauskite mygtuką, šis siuntėjas bus kad UIButton kad aš iš tikrųjų spaudžiamas, todėl tai reiškia, kad ši UIButton turi žymę, nes aš sukūriau žymę. Jei aš noriu gauti bent tag galiu tiesiog pasakyti Noriu siuntėjo žyma, ir vėl, aš ką tik išlieta jį į UIButton. Man žinoma, kad siuntėjas bus UIButton. Ji ne visada turi būti UIButton. Galėjau, pavyzdžiui, registruoti tą patį įvykį prižiūrėtojas  vieną mygtuką, slankiklį. Šiuo atveju, aš žinau, jie visi mygtukai, todėl aš ketina pasakyti Aš noriu, kad tai mygtukas, ir tada aš galiu gauti šią žymę, o nuo žymens, dabar aš žinau, kur aš esu valdybos viduje. Tada aš galiu tiesiog nustatyti arba X arba O, gali apversti ruožtu, patikrinti, kas laimėjo ir tt. Kokių nors klausimų apie tai iki šiol? Gerai, kodas, paskelbtas internete nenorime patekti į per daug Tic Tac Toe logika, tačiau dabar jūs galite pamatyti, kad tikrai viskas, ką mes darome, mes kilpų per šio masyvo, todėl mes turime kilpų čia pora, ir mes tiesiog lyginant su mes turime visų eilučių, stulpelyje ar ko nors panašaus, kad rungtynių atitikmuo. Iš tikrųjų paleisti šią programą, jei aš bakstelėkite vieną iš šių mygtukų būdas, kad žaisti buvo atleistas, todėl tai reiškia, kad aš tiesiog nustatyti mygtuką, kad X, todėl dabar šis mygtukas bus O, ir tt, ir kad, kaip mes pradedame bendrauti su šią vieno lapo app. Mes įdėjome kodą, todėl nedvejodami žiūrinėti, kad, bet tegul dabar kalbėti apie kai kurių programų, kurios yra daugiau nei vienas puslapis. Kaip patrauklių, kaip Tic Tac Toe buvo daug viduje iOS apps natūra iš šių gręžimo žemyn dalykų, su daugeliu ekranų. Pirmoji koncepcija, kad mes turime kalbėti apie protokolus, ir protokolas paprasčiausiai metodų rinkinys kad galite pažadėti apibrėžti. Jeigu aš sukurti šį naują protokolą su 2 metodų, tai viena pirmųjų, jei grįžimo tipas yra niekinis, aš jį pavadino foo. Tai užtrunka jokių argumentų. Turiu kitą metodą. Ji grąžina int. Aš jį uždrausti, ir tai trunka vieną argumentą. Visa pagal šį protokolą, tai vadinama SomeProtocol čia, tai yra dalykų, kad kažkas gali įgyvendinti rinkinys. Aš ne viduje šio protokolo sakė ką foo. Vietoj to, aš tiesiog pasakyti jums gali nustatyti foo, jei norite. Jei aš sukurti rodinio valdiklį arba sukurti klasę Viduje šios klasės pažadą galiu įgyvendinti kai kurie iš šių metodų, taigi, pavyzdžiui, jei sako, tai dabar sako, kad aš jums pažadą, kad viduje šio valdiklio klasės turėsiu foo ir baras apibrėžimus. Kodėl taip yra naudinga? Daug komponentų viduje iOS pasinaudoti šia dizaino modelis vadinamas delegaciją, kas delegacija sako yra tai, kad, pavyzdžiui, jei aš turiu teksto lauką ir yra keletas įvykių, kurie gali būti užsiregistravę viduje mano teksto laukelyje, o ne kurti atskirus įvykius, ką aš galiu padaryti, ką aš galiu pasakyti šio teksto laukelį delegatas bus kai objektas. Kai aš sakau, kad tai yra atstovas dabar tai reiškia, kad kada tik koks nors renginys buvo išleista į teksto laukelį , o ne ją užregistruoti, ar ko nors panašaus ji tiesiog ketinate skambinti metodą atstovui. Pavyzdžiui, viduje mano teksto laukelyje turiu, kai aš paspauskite metodą , kad padaryti mygtuką apačioje, dešinėje pusėje, ir taip, o ne registruojant aptarnavimo įvykio ką galiu pasakyti teksto laukelį, čia yra daiktas, kad aš noriu jums skambinti metodą kiekvieną kartą, kai kažkas paspaudžia mygtuką Baigta , o tai reiškia, kad objektas turi įgyvendinti tam tikrą protokolą , kad sako, aš pažadu padaryti mygtuką veiksmų nustatyti, kad, nes jei ji nėra apibrėžti šį metodą ir paspauskite Atlikta, tada jis ketina būti klaidinantys. Paimkime bent pavyzdžiui išvaizdą. Čia aš tiesiog vieną teksto lauką, ir vienas iš šio teksto laukelį savybes nei čia dėl šio dešinėje pusėje atstovas. Tai yra klasės nuosavybė. Ką aš padariau, čia galiu kontroliuoti paspaudėte, ir šioje vietoje aš nutempė nuo čia vaizdas kontrolierius, o kad sako, dabar šio teksto laukelio atstovą bus vaizdas valdytojas. Tai reiškia, kad kai kurie veiksmai vyksta, o nei registravimasis savarankišką įvykį tvarkytojai, aš noriu, kad siųsti juos atstovui. Dabar galime imtis bent mano nuomone valdiklio išvaizdą. Viduje h failo aš pažado. Aš pažadėjo įgyvendinti kai kuriuos metodus, viduje šio protokolo vadinamas UITextFieldDelegate, ir vėl, tai tik kai kurie kai kurių dalykų, kad aš galiu pasirinkti įgyvendinti, sąrašas. Jei aš atėjau čia mano m failą, aš įgyvendino vieną tokį metodą. Aš tai pavadino textFieldShouldReturn nes tai, ką jis buvo vadinamas viduje protokolą. Ir dabar, kai aš paspauskite mygtuką Baigta viduje tos teksto lauką tai, kas vyksta gauti vadinamas, todėl aš neužregistravo įvykio apdorojimo. Aš prijungtas atstovui, o kai šis įvykis yra atleistas tai yra metodas, kuris gaus vadinamas, todėl, jei aš atėjo per Čia mano siužetinės linijos ir paleisti jį, Nors tai pakrovimo mes galime pamatyti, kas tai daro. Ant mano ekrano, aš turiu 2 dalykų. Turiu šį teksto lauką, ir aš turiu šią etiketę. Aš tiesiog pasakyti, aš noriu, kad šios etiketės tekstą turi būti lygūs, nepriklausomai nuo vartotojo įvedėte tiesiai į teksto lauką. Tai naujos linijos čia paprasčiausiai yra būdas, kad aš paskambinus teksto lauką, kad sako, aš noriu jums paslėpti klaviatūrą. Tai tik savavališkai metodas, kad "Apple" pasirinko. Vėlgi, prieš aš padariau, ką aš turėjo pervesti viską, kad aš pirmą kartą atvyko čia. Iš vaizdo valdiklio aš vilkite į teksto laukelį. Aš atleiskite, ir matau, kad čia aš galiu padaryti šį teksto lauko ypatybę nes per čia, vaizdo valdiklio aš apibrėžta turtą tai yra teksto lauko IBOutlet. Tai sako, kad galiu pervesti šį objektą teksto lauke mano UI. Dabar, kai aš spustelėkite aš galiu pradėti rašyti. Dabar, jei aš spustelėkite mygtuką Baigta tai vyksta į ugnį įvykis, kad dabar galiu atsakyti į. Nėra renginių tvarkytojai. Štai kaip aš tiesiog atsakė, kad padaryti mygtuką. Prasminga? Tai nėra dizaino modelis, kad jums gali kada nors rasti sau sukurti savo protokolą, bet tik žinau, kad kai įvairių iOS dalys registruoti įvykius įvairiais būdais. Mygtukai, pavyzdžiui, naudoti šiuos IBActions. Teksto laukai, kita vertus, ketiname naudoti atstovus. Mes galime pamatyti ir jums gali atrodyti, kad iki vidaus dokumentuose. Beje, ten tikrai integruotas į iOS jums UI stuff tonų, taigi, pavyzdžiui, taip, kaip aš, kurie sako, kad apačioje dešinėje aš pasirinkote šį teksto lauką. Aš atėjau čia. Aš przewijany žemyn truputį mygtuką, kad grįžtumėte ir aš iš tikrųjų galite padaryti visa krūva dalykų, pavyzdžiui, jei aš noriu, kad pasakyti, skambinti skubios pagalbos telefonu, o aš galiu padaryti, kad, kuris yra visiškai atsitiktinis, ir aš nežinau, kodėl yra built-in skubios pagalbos iškvietimo mygtukas, bet yra, ji sako, skubios pagalbos iškvietimo telefono tikrai mažosiomis raidėmis. Ten jūs einate. Tikrai ištirti visų šių skirtingų galimybių IOS. Bet kokie klausimai dėl delegatų? Vėlgi, tiesiog įdomi dizaino modelis, kad jums reikia žinoti. Gerai, tegul kitas prie stalo nuomonėmis išvaizdą. Lentelę iš esmės, kad daiktų sąrašą, kad yra visame IOS vietoje. Kai jūs prakeiktas per visus savo kontaktus, jūs ieškote nustatymo puslapyje, ir toks sąrašą dalykų, yra vadinamas stalo vaizdą. Įgyvendinimo lentelės vaizdą iOS yra gana paprasta. Vietoj to, kad klasę, kuri nusileidžia nuo tos UIViewController kaip mes padarėme prieš mums tiesiog reikia pasakyti, o ne viskas UIViewController nėra ką aš noriu padaryti, Sakau viską UITableViewController Noriu padaryti, taip, kad tiesiog prideda keletą papildomų dalykų, kurie visiškai padarė mums. Mes turime padaryti labai mažai, kad iš esmės užpildyti viduje pateiktos lentelės ruošiniai. , Kad būtų rodoma I lentelę, reikia atsakyti į keletą klausimų. Pirmas klausimas, man reikia atsakyti, kiek skyrių pateiktos lentelėje? Kai jūs prakeiktas per savo kontaktų app jūs pastebėsite, kad tai tipo organizuoja Kaip, tada jūs turite BS, ir jūs turite, kad šiek tiek sub antraštę. Kiekvienas iš jų yra vadinamas skyriuje. Jums gali būti arba nebūti reikia šių. Pirmas dalykas, ką jums reikia padaryti yra įgyvendinti metodą vadinamas tableView: numberOfSectionsInTableView. Kad tiesiog grąžina, kiek skyrių turite, todėl tai gali pasakyti, kad gauti vieną, jei turite vieną didelį Table View. Kitas klausimas, kad "iOS turi žinoti kiek eilučių turite? Pavyzdžiui, jūs prakeiktas per lentelės rodinyje. Turite fiksuotą skaičių dainų jūs ieškote ar fiksuotą kontaktų skaičius. Jei esate man, žinoma, ne tai, kad daug, ir kad kaip iOS žino, kiek ląstelių rodyti. Vėlgi, tai gali pasakyti kažką panašaus grąžos 3. Mano lentelę yra 3 eilutes. Galiausiai, "iOS" turi žinoti, ką kiekviena ląstelė atrodo, todėl tai, ką jis iš tikrųjų ketiname daryti paskambinti šiuo būdu žemyn čia, tai tableView: cellForRowAtIndexPath. Ji ketina pavadinti šį metodą kiekvieną langelį, viduje jūsų stalo. Kaip tai sužinoti, kiek kartų jį pavadinti? Na, jūs jį papasakojo viduje skyriuje eilučių skaičių. Mes ketiname tai vadiname kiekvieną mūsų ląstelių, viduje ir tai yra, kai jūs iš tikrųjų galite padaryti kažką panašaus nustatyti teksto arba pasakyti, kad mėlyna mygtuką dešinėje pusėje. Gauti šias ląsteles modelis, mes ketiname naudoti šį metodą vadinamas dequeueReusableCellWithIdentifier. Objective-C iš tiesų yra labai gerai žinomas už juokinga Jų metodas pavadinimų ilgio, ir tai yra tikrai gražus punkte pavyzdžiui atveju. Šis metodas yra tiesiog sako, aš noriu jums duoti man langelį. Tik iOS dalykas. Jei turite kažką panašaus 100.000 dainas į savo iPod iOS nenori daryti skirti 100.000 ląsteles, nes jei esate ne jūsų sąrašo viršuje, jūs tikrai reikia paskirstyti atmintį langelį, kad 99.000 eilutes žemyn? Ne, nes, kaip jūs slinkti galite natūra skirti, kaip jūs einate kartu. Tai padaryti už jus. Jūs neturite jaudintis, kad kvailas veiklos stuff. Viskas, ką jums sako jūs vadinate šį metodą dequeueReusableCellWithIdentifier ir tai sako, gerai, jei jums reikia aš ruošiuosi sukurti naują grupę, atsakingą už jus. Bet, jei esate ne lentelės apačioje ir jūs jau skirta apie ląsteles lentelės viršuje, kad jūs tikrai nesiruošia reikia artimiausiu metu Aš einu duoti jums tiems, atgal, o ne paskirstant naują, ir todėl tai yra gražus kokybės problema. Jūs neturite skirti į ląsteles patys. Kad ketina suteikti jums atgal į langelį. Jis ketina grįžti į mobilųjį objektą. Kai jūs turite mobilųjį objektą, galite tai padaryti stuff. Galite nustatyti langelio tekstą su šio objekto vadinamas tekstas etiketė. Galite įtraukti į rodyklę į dešinę arba kai kurių kitų atsitiktinių daiktų su šiuo kitu turtu vadinamas accessoryType, ir taip toliau, ir taip toliau. Leiskite pažvelgti iš esmės įgyvendinti Table View dabar. Kai aš sukūriau šį projektą Aš iš tikrųjų, o ne sako vieną peržiūrėti programos atėjau čia master-detail, ir todėl iš esmės tai atitinka pašto app ant stalo kairėje ir dešinėje turinys iPad. "IPod" ar "iPhone" tai vyksta atitinka vieną lentelės rodinyje. Štai kur aš gavau mano starterio kodą. Tegul pirmasis ne siužetinės linijos išvaizdą. Visa tai buvo padaryta man, iš esmės sukurta. Ši navigacijos juosta man parodė, ką pavyzdys ląstelės gali atrodyti, ir aš dukart spustelėkite, pakeisti pavadinimą. Bet kokie kiti UI susijęs galiu dirbti ten. Antraštės failas atrodo tikrai paprasta. , O ne sako tai UIViewController mes dabar sako, tai yra TableViewController, todėl mes žinome, kad mes norime paraginti visus tuos stalo metodus. Kitas aš noriu sukurti nekilnojamąjį turtą, kad ketina atstovauti viduje mano stalo dalykų. Ši lentelė savavališkai rodyti vaisių sąrašą, ir todėl reikia sukurti tam tikrą masyvas , kuriuo galiu įterpti vaisių. Viduje mano įgyvendinimo failą pirmas dalykas, ką aš noriu padaryti aš noriu įsitikinti, kad aš inicijuoti šio masyvo. Aš pasakiau ALLOC init, sukūrė savo vaisių masyvo, ir aš pridedant 4 dalykų, vienas iš kurių yra daug labiau kontraversiškas nei kitos 3. Ir dabar turiu 4 dydžio masyvą. Mes i ‰ purtydami CS50. Dabar aš turiu 4 dydžio masyvą. Dabar aš ruošiuosi pradėti atsakyti į šiuos klausimus, ir iš tikrųjų, kai aš sukūriau šią programą, visa tai jau buvo padaryta už mane. Aš neturėjau įvesti iš sekcijų skaičių lentelės rodinyje. Jis jau buvo ten, ir aš užpildyti ruošiniai. Kiek skyrių aš turiu? Vienas. Viskas padaryta. Kiek eilučių aš turiu? Na, aš turiu vieną eilutę kiekvienam vaisių, todėl šis skaičius bet matrica, sako, kaip didelis yra nuosavybė? Tai, kiek eilučių turiu. Galiausiai, aš turiu pasakyti, ką kiekviena ląstelė atrodyti? Aš ruošiuosi pasakyti dequeueReusableCellWithIdentifier. Vėlgi, tai jau buvo parašyta man. Aš neturėjau tai padaryti save, ir aš noriu grįžti tai šioje vietoje ląstelių. Prisiminti, kad mes telefonu tą patį metodą kiekvieną langelį, ir šis argumentas čia, tai indexPath argumentas, sako, ką eilutė aš tikiu. Jei aš sakau, čia indexPath.row žemyn tai bus 0, tada jis bus 1, tada ji bus 2, ir tai, kad aš žinau, ką ląstelių aš dabar rodyti. Noriu nustatyti langelio tekstą, naudodami šį textLabel turtą eiti viduje mano vaisių masyvo ir gauti objektas atitinka kiekvienoje eilutėje. Jei tai yra eilutė, aš dabar nustatymo tekstas nuosavybė į eilutę. Galiu padaryti vienas kitas dalykas. Taip pat galiu registruotis aptarnavimo įvykio apie kiekvieną ląstelių, todėl, kai aš bakstelėkite kiekvieną iš šių ląstelių šį didSelectRowAtIndexPath, tai man bus vadinamas, tiesiog apibrėžiant aš dabar gali valdyti tai, kas vyksta kai jūs bakstelėkite langelį, ir vėl, mes artimųjų ląstelė, kurioje buvo paliesti , kad galėtume panaudoti tą pačią aptarnavimo įvykio mūsų ląstelių. Vėlgi, tai yra kažkas iOS daro už mane. Leiskite parodyti kitą erzina Iššokantis , kad tiesiog sako, kad jūs įlaipinami kažką, kur, kad kažkas bus eilutė objektas. Kai aš paleisti, aš norėčiau, kad šis gražus Table View vienoje eilutėje kiekvienam iš šių vaisių, ir jei aš palieskite vieną jis man sako, kas atsitiko. Prasminga? Kurkime šiek tiek daugiau sudėtinga app, kiek spustelėdami pasirinktas pomidorų. Gražus dalis apie storyboarding tai ne tik ketina padėti mums kurti ekranus atskirai, jis taip pat ketina padėti mums susieti visą mūsų programą, taigi galutinis app būsime pastatas šis gražus sporto naujienos skaitytuvas, ir todėl ji ketina turėti kelis ekranus, ir todėl aš iš tikrųjų gali atstovauti kiekvienas iš šių kelių ekranų siužetinės linijos, ir aš galiu padidinti ir pamatyti savo programą iš aukšto lygio. Siekiant sukurti naują elemento viduje mano siužetinės linijos tai tikrai paprasta viduje Interface Builder. Jei aš noriu pridėti dar vieną ekraną, pavyzdžiui, Galiu nutolinti su pinch zoom, kad "Apple" myli tiek daug, ir žemyn, kol aš ieškoti mygtuko ir aš mygtuką, vilkite ir upuść jei aš noriu sukurti naują ekraną, aš iš tikrųjų galite tiesiog vilkite ir upuść Visas vaizdas valdiklis, todėl, jei aš pasiimti tai, patraukite jį čia, hey, dar vienas ekranas, ir todėl dabar naudoja tą patį failą siužetinės linijos Galiu turėti visi viduje mano app ekranuose, ir aš galiu nutolinti ir pamatyti, kaip jie sąveikauja. Tai bus ne bendrauti. Būdas, kuriuo sąveikauja šie 2 ekranai jums apibrėžti santykius. Galite iš esmės pasakyti šį ekraną, kai paspaudžiate šį mygtuką, Aš noriu, kad slysta į šią naują ekraną. Tai reiškia, kad tokio santykio  Pirmasis ekranas Antrasis ekranas. Jūs turite iš esmės nuo to mygtuko rodyklę į antrą ekraną sakydamas, kad kai paspausite šį mygtuką, kad ten, kur aš noriu eiti. Tiesiog, kaip mes kontroliuojame paspaudėte ir nutempė apibrėžti šios realizavimo rinkos mes ketiname padaryti tą patį apibrėžti šias segues. Mes pamatysime pavyzdį, kad ir, kol mes iš tikrųjų perėjimas iš vieno ekrano į kitą IOS yra gražus pakanka paskambinti šiuo būdu vadinamas prepareForSegue, ir tai yra, kai mes galime pradėti siunčiant duomenis iš vieno į kitą app. Pateiktame pavyzdyje mes pažvelgti į ją bus iš esmės leidžia mums filtruoti beisbolo komandos nuo lygų ir padalijimų. Kai aš pasirinkite lygą, pavyzdžiui, aš noriu perėjimas į mano kitą ekrane, kur galiu rodyti visus iš skyrių toje lygoje ar visų skirtingų komandų. Man reikia siųsti į tą ekraną, ką komandos turėtų rodyti. Norėdami tai padaryti, kad aš ruošiuosi pasinaudoti šiuo metodu, čia. Galiausiai, tik atsitiktinis taškas iOS. Jei norite saugoti duomenis, ten tai dalykas, vadinamas pagrindinių duomenų, kuris iš tikrųjų yra sudėtinga dirbti su natūra. Taip pat galite naudoti SQL duomenims saugoti, vėl yra gražus, bet tipo daugiau sudėtingas pusėje dirbti, bet iOS "taip pat palaiko šiuos tikrai cool ko vadinamas turto sąrašai, ir turto sąrašas yra tik failas, kuris atstovauja rakto reikšmė porų. Jūs apibrėžtumėte raktų sąrašą, ir jums sako, kad šis mygtukas bus masyvas. Šis raktas bus eilutė, ir iš esmės viską, ką gali padaryti JSON jūs galite padaryti viduje nekilnojamojo turto sąrašo, ir todėl tai tikrai gražiai leidžia mums dirbti su kai kurių duomenų. Pavyzdžiui, aš turiu šį Teams.plist, kad aš sukūriau. Aš sukūriau naują plist failą, ir aš galiu išskleiskite. Tai žodynas, žodynas, tai yra stygos, ir todėl tai yra gražus grafinis JSON dokumento arba tiesiog pagrindinių vertės porų rinkinys, ir todėl tai yra duomenys, kad aš dirbti su viduje mano app. Tegul pirmasis atvyksta čia. Mes turime daug daugiau failų. Bet tegul pirmas atėjai čia į siužetinę liniją. Siužetinės linijos čia, jei aš galiu padidinti dabar mes galime pamatyti, kad tai mano app srautas. Aš pirmą kartą ketina pradėti šiame ekrane. Aš ruošiuosi išskleiskite į šį ekraną, ir aš ruošiuosi išskleiskite į šį ekraną, ir mes galime pamatyti čia, kad jei aš tipo perkelti vieną iš šių aplink mes šios rodyklės vyksta nuo čia iki čia, ir taip, kaip man nustatyti, kad rodyklę, jei aš padidinti šiek tiek, ir jei aš atėjau į šį vaizdo valdiklio, ir čia yra ląstelių, ir aš noriu pasakyti, kad, kai jūs bakstelėkite langelį Aš noriu, į skaidrę į kitą ekraną. Galiu tiesiog laikykite nuspaudę kontrolę, Pereikite šiek tiek, laikykite nuspaudę kontrolę, vilkite šį langelį ir atleiskite. Ir čia mes pasakyti, kas pereinamasis laikotarpis, kad jūs norite naudoti? Ar norite naudoti, kad skaidrių dalykas, tai vadinama stumti? Ar norite, kad skaidrių iš apačios? Tai vadinama modalinis. Ir kai aš spustelėkite vieną iš šių, tai ketina padaryti man šią rodyklę, , o tai reiškia, kad aš iš tikrųjų tvarkomi, kas atsitinka, kai aš paspauskite šį mygtuką grafiškai. Aš ne rašyti bet kokį kodą, kad iš tikrųjų skaidrių iš vieno ekrano į kitą. Aš tai apibrėžta vizualiai viduje Interface Builder. Jei aš spustelėkite šią rodyklę, mes galime pamatyti, kad aš davė šis dalykas vardą. Aš pašaukiau jį showDivisions, ir tai, kad aš galiu žinoti perėjimas apie atsirasti, ir mes pamatyti, kodėl tik sek. Štai, kaip aš laidinio mano app skirtingus ekranus. Jei tai buvo mygtukas, pavyzdžiui, o ne lentelę, Aš negalėjau kontroliuoti, paspauskite mygtuką, vilkite per į kitą ekraną, ir tai, kaip aš galiu padaryti, navigacijos, kad taip. Tikrai greitai, jei mes einame į MasterViewController dar kartą, mes tiesiog ketina nustatyti iš sąrašo dalykų , kuri bus rodoma lentelės rodinyje. Čia aš pasakyti, kad aš noriu, kad jūs, kad plist failą ir aš noriu jį įdėti į žodyną, ir kai jūs turite šį žodyną, aš ruošiuosi atsakyti į tuos pačius klausimus vėl. Čia yra sekcijų skaičius. Vienas iš jų, yra viena eilutė kiekvienam lygoje, ir kiekvienos ląstelės tekstas turėtų būti pirmasis, pirmoji lyga, antra lyga, ir taip toliau. Galiausiai, aš naudoti šį metodą, kad mes tiesiog pamatė, pavadintą prepareForSegue, ir tai yra metodas, kuris ketina būti atleistas, kai aš spustelėkite vieną iš šių eilučių, todėl aktyvinti, kad perėjimas kad aš su rodyklėmis. Tai sakydamas, kad aš gali turėti keletą santykiai nuo vieno ekrano į kitą. Jeigu aš turiu 2 mygtukus ir kiekvienas mygtukas, pateksite į kitą ekraną Aš ruošiuosi 2 segues, 1 Kiekvienam mygtukui. Bet šis prepareForSegue yra, vėlgi, bus pakartotinai naudoti kiekvienam iš skirtingų santykių, todėl tai reiškia, kad man reikia būdas nustatyti, jei jūs paspauskite mygtuką arba paspauskite mygtuką antrą. Atsimenu, kai aš davė, kad Segue pavadinimas, tai showDivisions, tai, kaip aš dabar žinau, kad tai yra Segue buvo aktyvuota. Viskas, ką aš noriu padaryti, tai noriu pasakyti, Aš noriu išsiaiškinti, kas aš tiesiog paspauskite, ir taip gauti, kad aš galiu pasakyti, aš noriu, kad pasirinktos eilutės indexPath prisiminti indexPath tiesiog sako, kai aš tiesiog paspaudėte, ir tada aš noriu pasakyti, kad aš nori išsiaiškinti, kur aš einu. Tai destinationViewController, tai Segue nuosavybė. Štai ekrane, aš ruošiuosi, taip, aš žinau, kad aš ruošiuosi ekranas vadinamas DivisionsViewController nes aš sukūriau šią klasę, ir todėl dabar, jei aš sakau, d.divisions Aš dabar nustatyti view valdytojo turtą, aš apie eiti į. Tai kaip aš siunčiant duomenis iš vieno ekrano į kitą ekraną. Tiesiog žiūri į šio DivisionsViewController galite pamatyti čia, kad H failo yra, kad nekilnojamojo turto skyriai, ir tai, ką aš iš esmės užpildant, todėl tai, kaip aš žinau, kad aš rodyti atitinkančius padalinius lygoje, kad aš spustelėjote, ir vėl, faktinis lentelės rodinys atrodo beveik tą patį, tiesiog atsakyti į tuos, 3 paprastus klausimus, taip pat nustatyti kas atsitinka, kai jums pereiti į kitą ekraną. Tik pora kitų dalykų čia. Jūs pastebėsite, kad čia viršuje, o ne sako # include Aš dabar sako, # import. Tai tiesiog Objective-C dalykas. Importas iš esmės gražiau versija yra, ir, pavyzdžiui, mes turime žinoti, ką ši klasė yra, todėl aš negaliu tiesiog pasakyti DivisionsViewController. Jei mes ne hashtag standardio.c mūsų c failo viduje sudarytojas turėjau ne idėja, kas printf buvo. Be to, jei aš ne importuoti DivisionsViewController sudarytojas tikrai neturi idėjos, ką DivisionsViewController. Tiesiog įsitikinkite, kad skiriasi. M failus viduje jūs įsitikinkite, kad importuoti atitinkami h failus, kad kompiliatorius žino, kas vyksta. Galiausiai, ką "Apple" galiausiai daro, yra rodyti tam tikrus duomenis, naudojant interneto vaizdą, ir taip peržiūrėti tinklalapių yra objektas, kuriame galite įdėti šiek tiek interneto naršyklė viduje jūsų app. Viskas, ką jums reikia padaryti, yra pateikti URL į savo interneto naršyklę, todėl aš noriu, eiti į mlb.mlb.com, ir tai, kaip aš galiu gauti prieigą pagrindinį puslapį kiekvienai komandai, ir daro priimdamas šį URL adresą. peržiūrėti tinklalapių gali rodyti tai už mane, ir aš galiu naršyti aplink, ir simuliatorius yra naudoti, kad vienas. Dabar tai atėjo iš mano plist. Jei aš spustelėkite šį taip pat atėjo iš mano plist, ir šis stumdomas perkrauta pagal apibrėžiant tuos segues. Spauskite šį mygtuką ir dar vienas, ir dabar čia yra mano, todėl tiesiog patinka, kad UIWebView čia yra, kad aš tiesiog integruotas URL tinklapyje, ir aš neturėjo nieko dirbti kvailai. Tai, kaip interneto puslapį. Dalykų, kaip ši mygtuką "Atgal", čia taip pat suteikta man visiškai nemokamai, nes aš apibrėžti šiuos ryšius per segues. Turite klausimų? Taip. [Studentų] Taigi, kai jūs naudojate ALLOC jūs niekada turi laisvo nieko? Tiksliai,, kai skambinate ALLOC ir init jūs neturite jį išlaisvinti. IOS ketina dirbti visa tai už jus. Tai nuostabu, ir jūs ne nesilaikantiems jokių taisyklių. Taip. [Studentų] Jei norite įtraukti daugiau komandų, kad galėtų tilpti ekrane, automatiškai slinkties variantą, arba, kad kažkas jums reikia pridėti? Tiksliai, jei aš turėjo daugiau komandų, pavyzdžiui, jis būtų automatiškai tvarkyti man nemirksi, o visos veiklos susirūpinimą su didžiuliais lentelėje taip pat tvarko visiškai už mane. Kiti klausimai? Visi šio kodekso turi būti paskelbtas. Mes tipo glossed šiek tiek smulkesnių detalių, tačiau dalykų, pavyzdžiui, nustatant tam tikras savybes į interneto yra tik dalykų, kad jūs galite gauti naršyti Apple dokumentus, kuri yra tikrai, tikrai gražiai išdėstyti. Jie turi daug pavyzdžių apps ir pavyzdys papročius įvairių API, todėl tikrai žiūrinėti, jei galite. Tik keletas naudingų nuorodų, galbūt norėsite pažvelgti. Tai yra keletas patogus dokumentacijai vadovai. URL yra milžiniška, todėl jie sutrumpintas. Tai pirmasis visą biblioteką dokumentų. Yra nedaug paieškos barai, todėl, jei jums pradėti rašyti mygtuką ji pradės, kad suteiktų jums visą informaciją apie visų dalykų, kuriuos galite padaryti su mygtuku. Aš taip pat Table View programavimo vadovas. Jis tvarko stalo požiūrį į daug išsamiau, , kaip daryti dalykus, kaip dinamiškai pridėti ląstelių arba redaguoti ląsteles arba pašalinti. Yra daug imties apps, Apple, kad jums parodysiu, kaip padaryti, kad, ir, galiausiai, tai naujausia yra Human Interface gairės ir tai iš esmės diskusija kai kurie vartotojo sąsajos komponentų, dalykų, pavyzdžiui, ne padaryti mygtuką, kuris "4 pikselių iki 4 taškų. Tai yra bloga idėja, ir kitų dalykų, kad "Apple" nori jums reikia padaryti, skatinti gerą dizainą. Paskutinę klausimai, kol mes baigti? Viskas bus gerai, tikrai jaučiasi laisvai mes ketiname turėti specialias etiketes jaunimo savaitė. Mes turime IOS 1, todėl tikrai nedvejodami naudoti, kad. Jei norite dirbti su savo klasiokų projektams arba padėti suprasti, šiek tiek atsitiktinių iOS stuff nedvejodami rašykite man, ir tikrai žiūrinėti visą kodą internete, nes tik laiko interesų mes tipo glossed daugiau prabangiau grūdėtu informacija dalykų. Bet jei ne, tada Sėkmės savo iOS projektų, ir aš tikiuosi, kad mes turime didelis antplūdis Apps "App Store". [CS50.TV]