[Powered by Google Translate] [Mintegia] [iOS: Boss Like a Apps idazten] [Tommy MacWilliam] [Harvardeko Unibertsitateko] [Hau da CS50.] [CS50.TV] Guztiak eskubidea, denok, ongi etorri iOS: Apps idaztea Boss bat bezala. IPhone apps idazten ardatz Mintegi honetako eta, aldi berean, apps iPad idazten, eta, beraz, funtsean, oinez igarotzen ari gara app bat egiteko moduari hainbat adibide pare da, TIC TAC behatza bezala joko sinple bat, Oraindik duzun edo news reader mota batzuk bezalako aplikazio bat egiteko interesa izanez gero edo interakzioa Internet baita buruz hitz egingo dut, zerbait. Hemen gure agenda laburra da. IOS apps Objective-C izeneko hizkuntza batean idatziak dira, eta C pixka bat antzekoa da, baina ez da benetan guztietan, beraz, hau da, beraz, hitz egiten dugu pixka bat hizkuntza bera buruzko eta, ondoren, nola iPhone apps izeneko XCode app programa honen bidez eraikitzeko, kokapena ez baduzu, oraindik sentitzen free download hasteko. Hainbat gigabyte da. App Store on behar da, beraz, Mac bat izan behar duzu haien OS X. azken bertsioa exekutatzen ari da Oraindik ez baduzu, ez da arazoa. Zientzia zentro eskuragarri MACS ditugu zure erabilera XCode instalatuta, eta, beraz, sentitzen free garapen horiek erabili. Nahi duzun aplikazio bat egin nahi izanez gero, baina ez Mac bat izan, ez kezkatu. Campus baliabide askorekin, hori da. Eta, beraz, ondoren, 2 apps hainbat egin ahal izango dituzu adibide handiagoak estaltzeko goaz. Objective-C da, teknikoki zer izeneko multzo super C. Horrek esan nahi du, C kodea edozein dela ere, Objective-C baliozko kodea. Horrek esan nahi du, hodi mota C. ezaugarri batzuk osagarriak taped Ezaugarri horietako batzuen artean, eta ez da inoiz idatzi malloc berriro, eskerrik asko Jainkoa, ez duten ergelak erakusleak kezkatu beharrik eta horietako askatzeaz eta stuff hori guztia gorroto C buruz, eta bere mota Objective-C joan. Orain, Objective-C liburutegi estandarrak askoz handiagoa du, beraz, ez dago askoz gehiago funtzionalitatea Objective-C barrutik doan. Gogoratu PHP ginen idazten dugun joan nabaritu dugu hizkuntza txikiena hau egin ahal izango duzu gauza horiek crazy guztiak liburutegi erraldoia. Gauza bera gertatzen da iOS. Egutegi budista bezalako gauzak objektuak, eta benetan ezer ziurrenik dezakezu ziurrenik dagoeneko existitzen Objective-C ezartzea pentsatu. Objective-C zati helburua da zerbait erreferentziatutako izeneko Object-Oriented Programming. Kontzeptu berri baten antzeko zerbait da, baina batez ere ikasi dugu kontzeptu horiek asko dagoeneko. Object-Oriented Programming atzean dagoen ideia da zarela egituratzeko joan Zure kodea asko izeneko gauza horien inguruan klaseak, eta klase horiek benetan glorified structs. Struct baten Inside dugu, funtsean, esan zuen hemen gauza bat da, eta gauza hau kide izan ditzake. Esate baterako, lotuta zerrenda batean nodo bat beste gauza batzuk izan balio bat bezala, zerrendako hurrengo nodo erakuslea, eta elkarrekin, erakuslea eta balio hori eta egitura baten instantzia bat konposatu. Klaseak oso antzekoak dira, izan ezik klaseak ere izan dezake horien barruan funtzioak. Struct izendatu dugu, besterik ezin dugu esan int n edo nodoaren * hurrengo. Orain Objective-C benetan jarri ahal izango dugu funtzio gauza horiek barruan. Datuak heredatu ahal izango dute klaseak beste klaseak egin daiteke, beste gauza bat da. Esate baterako, Objective-C klaseak eraikitako-sorta bat bilatzen dugu. Horietako bat pantaila baten ikuspegia adierazten duen klase izan zitekeen, eta, beraz, esaten nire ikuspegia ezartzea nahi dut funtsean esan dugu, Apple at norbait, ziurrenik benetan nice pertsona, Niri klase hau idatzi zuen, eta gauzak heldulekuak botoiak bistaratzeko bezala edo pantaila bihurtzean, eta benetan pained izango genuke funtzionalitate geure buruari guztiak ezartzea, eta, beraz, besterik gabe by datuak inheriting guztia klase hori egin duzula esan dezakegu Nire klase barruan ere nahi dut, eta, ondoren, beste gauza batzuk egin behar dut, aplikazio bat ezartzea, hain zuzen ere. Hori da herentzia horrek esan nahi du hitza. Zehatzagoak adibide bat ikusiko dugu. Eta, azkenik, Object-Oriented Programming gakoa da doan datuak kapsulatzea. Gure arazo batzuk ezartzen ditu, horiek handiak, aldagai global izan dugu eta Globalak nonahi, eta hori da egoera nola pista gorde genuke. Klase batekin hasten objektu baten barruan informazioa encapsulating ahal izango dugu. Dugu gure app pantaila bat bada, ez dugu benetan behar datuak edozein gure app horren barruan beste pantaila bat, eta, beraz, klase barruan gauzak encapsulating hau benetan eramaten du askoz hobeto kodea diseinua, eta hori ahalik eta osagarriak ezaugarri batzuk Objective-C. Forewarning, Objective-C sintaxia banana. Ezer ez ikusi dugu aurretik bezalakoa da, beraz, pixka bat ikasteko kurba bat lortzean erabilitako da zer demontre esan nahi du horrek? Baina behin iraganeko lortuko duzu hasierako ikaskuntza kurba benetan, benetan leuna da apps idazten hasteko. Klase bat deklaratzen, hemen esan nahi nire klasea da, badagoela, eta, agian, hemen gauza batzuk geroago definitzeko joan naiz duten I @ Interfazea esan nahi dut. @ Interfazea esan nahi dut. Nire klasean, izen bat eman dut. Eta gero beste nonbait @ amaiera esan nahi dut, eta interface @ eta @ amaiera arteko guztia nire klase izango da. Hau da, zer da barruan gure h fitxategiak. Just C bezala gure h fitxategiak, funtsean, esan zuen hemen gauza batzuk existitzen dira. Ez dut nahitaez diozu oraindik egiten dute, baina konpilatzailea behar existitzen dakite. Geroago barruan. M-fitxategiak ere, Objective-C m da, non benetan ari gara eskolak hauek zer egin zehazteko. Much gure c fitxategiak bezala, funtzio emandako inplementazio bat dugu. Barruan gure m fitxategia hemen esan nahi dugu zer funtzio guztiak nire klase-zer egin zuten, barruan. Eta, azkenik, barruan, eta egitura bat esan barruan genezake horiek kizkur giltza int n edo hurrengo nodoa *, eta Objective-C @ jabetza gako-hitza erabili dugu, eta, hau da, zer propietateak definitzeko, edo ez-eskolak zati bat diren funtzio. Objective-C funtzioak Deitzen ere banana. C funtzioak deklaratu dugu int foo antzeko zerbait esan eta irekia paren eta gero Argumentu zerrenda bat eman zion. Hau da, zer metodo edo funtzioak geratuko Objective-C itxura. Funtzio edo metodo bat aldarrikatu nahi dut non metodoa esaten dut benetan funtzio bat besterik ez klase baten kide bat da, truka mota, baina ez da benetan, beraz, beraz, barruan nire metodoa metodo berri bat sortu nahi dut. Ezer itzuli da, beraz, mota void. Hau nire funtzio mota bueltan da. Orain parens dugu hemen-dudalako ez jakin. Hurrengo da nire funtzioaren izena izango da, eta, ondoren, azkenik, puntu eta koma besterik ez dugu izan C. dugu. Zer da hemen guy hau hemen da. Marratxo hau da, benetan beharrezkoa da, eta hau dio metodo hau hemen klase baten instantzia bat deitu behar da. Deklaratu dugu gure structs ondoren esan zuen seguruenik antzeko zerbait struct nodo-n, eta benetan sortu edo instantiated structs horietako bat da, beraz, benetan izan dut lan zer barruan, eta, beraz, marratxo horrek esan nahi dugun instantziatu klase bezala instantiated struct metodo hau diegu aurretik daiteke. Nahi dut nire metodoak argumentuak gehitzen hasteko are gehiago bananas lortzen da. Hemen, nire metodoaren izena. Ondoren, bi puntu izan naiz joan, eta colon honen ondoren, hemen dio dator, argumentuak batzuk. Metodo honek argumentu bat hartzen du. Bere argumentua mota int, eta argumentu horren izena da edo aldakorra naiz duten I metodoa barruan erabiltzen hasteko deitzen da i. Berriz ere, hau metodoa da. Argumentu bat hartzen du. Gehiago argumentuak gehitu nahi duzun hasteko bada gehiago bananas lortzen duten bi puntu hori dio hemen dugu nire argumentu zerrenda dator. Lehen argumentua honek zenbaki oso bat da. Orain, bigarren argumentua interesgarria da. Naiz duten I aldagaia erabiliz barruan nire funtzioa deitzen da, f, eta, beraz, barruan esan izan dut nire funtzioa f + = 1 edo zerbait. Gauza hau hemen da, funtsean, argumentu edo parametro gako bat. Just bezalako funtsezko balio bikote izan genuen, eta antzeko zerbait JSON edo elkartze-array Objective-C erabaki, esan ados, beraz, besterik gabe, benetan argia da zer diren parametro horiek guztiak metodo bat deitzen Benetan ari naiz horiek guztiak izendatzeko. Metodo bat deitzen duzunean, benetan esan duzu andFloat eta, ondoren, gainditu dituzu sartu Interesgarria da, hau da, ez du izena, baina beste parametro guztiak dira, beraz, 3. argumentu bat izan genuen andFloat esan izan dut eta beste karroza eta abar. Metodo horiek deitzen da ikastaroa bananas, hala badagokio, objektu bat daukat, eta foo izeneko metodo bat definitu dut, eta deitzeko, foo open / parens itxi baino esaten nahi dut Parentesia ireki noa. Hona hemen nire metodoaren izena. Parentesi ixteko noa, eta hau objektua deitzen naiz. Gogoratu, metodo hauek guztiak klase barruan dauden klase horien barruan definitutako metodoak izan daitekeelako. Hemen arbitrarioki klase batzuen objektu bat sortu dut, eta hau egiten sintaxia da. 2 objektu bat sortzeko urrats daude. Lehen urratsa da espazio esleitu nahi dut esan. Malloc baten baliokidea da. Ez dugu malloc esan nahi jada. M jaitsi dugu, hari esleipenen egin, eta c ordez. M. Dugu esleipenen zerbait ondoren abiarazi behar dugu. Funtsean, objektuak sortu nahi duzun logika batzuk izan dezakezu exekutatzen direnean sortu da, eta, beraz, berezko balio batzuk pasatzeko dezakezu edo horrelako zerbait, eta, beraz, init metodo hau da benetan objektua sortzen du. Lehen esleitu dugu espazio bezala egin C dugu, eta, ondoren, hasieratu dugu, izan liteke, edo agian ez du asko osoa. Ondoren, gauza hau itzuli o objektu bat sartzen ari gara. Izar bat da, hau da, teknikoki delako erakuslea, baina ez kezkatu, erakusleak ez dira Objective-C zati handi gehiago. Orain instantiated dugu NSObject izeneko klase hau, eta hau besterik ez da ausazko klase Apple du. Instantiated dugu hau, eta orain Klase honen instantzia bat behar dut objektua o honetan, eta, beraz, horrek esan nahi du gero definitu metodo horiek deitu izan dut atsegin dute hau. Era berean, nahi izanez gero, metodo bat deitzeko argumentu bat, barra-metodoa da, beraz, argumentu bat hartzen du, eta hemen baz da: qux metodoa, beraz, hau 2 argumentu hartzen. Objektu o honen funtzioa bat deituz. Zentzurik? Sintaxia zentzurik behar, baina mota horretako erabiliko da. Ados, Objective-C barneratzen diren gauza batzuk buruz hitz egin ez ziren nahitaez C. barneratzen C izan mota horiek pertsonaia ergelak array gisa kateak aurre egiteko, eta benetan gogaikarriak lortu. Objective-C eraiki Gurekin, eta eraiki NSString izeneko klase hau erabiliz. NSString arcane sintaxia gehiago ditugu sortu nahi dut. Beharrean "cs50" @ "cs50" esaten dugu esaten baino eta hori besterik ez da, Objective-C kateak geratuko sintaxia. Ahaztu, beraz, ez da oso erraza. Orain, behin behar dut, hau kate bat da, baina konturatu Benetan, objektu bat besterik ez da. I NSString esan zuen, eta horrek esan nahi du klase instantiated I NSString, beste norbaiten me idatzi izeneko eta oso polita izan dute, eta, beraz, gaur egun Metodoak deituz. Metodoa deitu I luzera bada, objektu s honetan me itzultzeko katearen luzera dute. Hau besterik ez strlen bezalakoa da C. Honek 4 itzuli zen. Zaintzeko buruzko nahi dut agian beste metodo bat characterAtIndex Era berean, hau da. Hau katea da hau dio metodo bat da Pertsonaia zeroth lortu nahi dut, eta, beraz, hau litzateke me pertsonaia c itzultzeko, eta sorta oso bat gehiago metodo horiek benetan erraz Google-k ezin duzula. Apple dokumentazioa handia da, eta hartan itxura pixka bat hartzen dugu. Dutenek kateak dira. Era berean, tamaina array variable eraiki sartu Gogoratu C array bat deklaratu dugu 5 elementuak, istorioaren amaiera esan nahi izan genuen. JavaScript eta PHP Noiz lortu dugu izan dugu Gauzak egiteko elementu edo elementu gehituz mugitzen bezala. Gauza bera egin ahal izango ditugu, Objective-C. Baino modu normal C array bat sortu berriro deitu NSMutableArray beste klase bat. Ere NSArray eta, hau da, funtsean, enkapsulatu array batzuk joan. Dio lehenengo gauza egin nahi dut, esleitu nahi dut espazio berri bat array, eta esleitu ondoren Hasieratu behar dut gero. Berriz ere, 2 metodo horiek deituz. Orain hori Objektu honen barruan esan nahi du Array bat hutsik dut eserita. Nahi dut zerbait array hau gehitzeko bada, addObject metodoa deitu ahal izango dut. Objektu bat gehitzeko array bat egin nahi dut, eta katea CS50 gehitu nahi dut. Nahi nuen, alderantziz, kendu ahal izango dut esan nahi dut kendu array buruzko lehenengo lekuan, objektu edo aurka. Zentzurik? Ados, mota, kortxetea gauza hau erabili ahal izateko. Bidea, Apple liburutegi asko barruan NS hau ikusiko duzu. NS benetan hurrengo urratsa izan zen, Steve Jobs lehen enpresa bat da, eta hori, non hasi benetan kodearen asko idatzi Mac OS X eta beste gauza guztien oinarri-mota, eta, beraz, NS hau da hau nice ondarea mota oihu bat lehenago enpresa itzuli Apple izan zen lehen hasi. Everywhere da. Dezagun bat gehiago Objective-C holistiko Adibidez begirada bat. Hemen am I XCode barruan. Iritsi, kokapena lehen I XCode App Store, inauguratu zen, eta, ondoren, hemen fitxategia joan nintzen, hemen berria, eta, ondoren, proiektua. Egin behar dut, zer sortu nahi dut aukera horiek guztiak que tengo ondoren, eta, beraz, aukera horiek begirada bat hartuko dugu geroago, baina adibide honetan ari garelako ez app bat izan gabe, Behera etorri nintzen hemen, eta Command Line Tool esan dut, eta hau izan dut komando-lerroan exekutatzeko aplikazio bat da bezala dugu C. from exekutatzen Hori horrela, proiektu hau sortu dut, eta beraz, gaur egun hemen nago, beraz fitxategi hau lehen begirada, eta hau nahiko ezaguna begiratu behar. Int izen bat daukat. Nire lagun argc, nire beste buddy argv. Eta horrela ikus dezakegu hori nire lehenengo aplikazioa Objective-C sarrera puntua da. Hemen hau baztertu ahal izango dugu orain. Hau da, funtsean, zenbait memoria kudeaketa stuff hori ez da benetan inoiz kezkatu. Dezagun lehen bloke honetan begiratu hemen. Lehen lerro honek Student bada diot * alice = [[Student esleipenen] init] zer egiten? Hau lehen ikaslea, hau da, ziurrenik klase bat. Hau ez da Apple dela idatzi zuen, klase bat da, baina klase bat idatzi dut. Lehenengo gauza egin nahi dut, ikasle berri bat espazio esleitu nahi dut, eta, ondoren, abiarazi nahi dut, eta, beraz, honek ematen dit atzera Ikasle berri honen objektua, eta hau dut Alice izeneko aldagai batean gordetzeko. Non ez class etorri? Beno, hemen baino gehiago egin dute ezker hegalean hauek dira nire proiektuaren barruan hainbat fitxategi guztiak. Ikusiko dugu hemendik Student.h eta Student.m bat daukat. . H fitxategia, gogoratu, non gauza guztiak deklaratzeko I klase barruan dago. Ikus dezagun begirada bat. Guztiak eskubidea, hemen @ interfaze hau dugu, eta hau dio hemen dator guztia egingo, nire klase barruan existitzen diren deklarazioak. Ondoren, colon daukat. Ondoren, NSObject gauza hau behar dut. Colon hori herentzia bit pixka bat lehenago genuen eztabaidatzen ondorioztatzen du. Duela dio, hau guztia NSObject bat egin daiteke non NSObject norbaitek idatzitako klase hau da, guztia NSObject hau egin daiteke, horretarako gai izan nahi dut. Esaten By: NSObject dut, funtsean, horrek esan nahi du heredatu klase beste funtzionalitate guztiak. Hori benetan metodo ezberdinak erabili ahal izango dut eta ezaugarriak sorta osoa eman zidan. Down hemen 2 propietate sortzen ari naiz. Hori da nire ikaslearen esan nahi du, hau izan ziren eta egitura bat izanez gero, hauek 2 gauza izango litzateke nire struct barruan, eta, beraz, ikaslea bakoitzak izen bat du kate bat da, eta ikasle bat ere kalifikazioa du, int bat da. Azkenik, behera hemen nire ikasle metodo bat sortu nahi dut joan. Metodoa deitzen ditut, initWithName, eta argumentu bat hartzen du, eta argumentu hori kate bat da, eta izendatzeko deitu nuen. Orain dezagun nola inplementatu dugu klase honetan begiratu. Hemen, orain nago nire m fitxategia barruan I ezartzeko m, I guess. Nire ezartzeko dut, nire amaiera, eta hemen, non benetan ari naiz definitzen zer initWithName du. InitWithName, nire parametroaren izena, eta, ondoren, hori daukat ikasle bat sortzea non benetan ari naiz, eta, beraz, hau da apur bat críptica, baina hau da boilerplate mota nahi duzun zure eraikitzaileak, besteak beste. Hasieratzea funtzio hau hemen, initWithName, eraikitzaile mota bat da. Funtsean, ikaslea objektu berri bat eraikitzen ari zara eta, agian, barruan datu batzuk bidaltzeko. Lehenengo gauza egin nahi dut gauza hau super Init deitu nahi dut. Gogoratu itzuli hemen esan dut. H fitxategia dena NSObject bat ikasle bat ere dauka. Horrek esan nahi du, ikasleak zer egin behar nik ere sortu dut ziurtatu NSObject naiz dut datu horiek guztiak inheriting Era berean, behar bezala hasieratu. Zer esan behar dut super hau da benetan guraso klase aipatzeko naiz naiz inheriting, eta, beraz, ziur I hasieratu egin nahi dut naiz dela I guztia erabiltzen saiatzen ari da aurretik arabera. Ondoren, hori behar bezala hasieratu bada hori esaten duena bezalakoa da malloc bada ez itzultzeko null ondoren hasi propietate batzuk ezartzen. JavaScript eta PHP hitz hori genuen izeneko hau, eta hau uneko klase baten instantzia aipatzen. Objective-C auto hau deitzen diogu. Noiz self.name diot, horrek esan nahi du, objektuaren Sortu dut ikaslea esleipenen Init esan dut, me ematen objektu bat itzuli. Horrek esan nahi du objektu izena ezarri nahi dut edozein gainditu dut sartu Just C bezala, bazkideak sartzeko puntu honekin, beraz self.name ikaslearen objektuaren izena dio gaur egun edozein izanda ere gainditu besterik ez duzu sartu izango Eta horrela, azkenik, itzuli ahal izango dut benetan zerbait itzuli dut, beraz. Zalantzak dituzu? Ongi da, eta, beraz, auto = super Init, erabat ez baduzu ulertzen herentzia stuff ez kezkatu. Just ezagutzen al duzu inoiz zure init metodoa egin nahi izanez gero, besterik hori egiteko, eta joan ona izango duzu. Bai. >> [Student] Zer auto batez bestekoa ez bada? Horrek esan nahi du zerbait beti checked genuen null berdina bada malloc dugu, zen eta null gero, amaitu da. Gauza bera da, itzultzen null hori izanez gero, orduan delako ziurrenik ari gara seg errua hasteko badugu manipulatzen saiatzen. Hori da gure ikasleak klasean. Horrek esan nahi du, gure ikasleek hasieratu dezakegu bi modu batean. Diot ikaslea esleipenen Init, ez bada metodo erabiltzen dut besterik ez dut idatzi, eta horren ordez, besterik gabe, ezin dezaket esan alice.name eta, gaur egun, higiezinen izen hori ezarri dut. Era berean, nahi dut initWithName metodo hori erabili nahi izanez gero Besterik gabe, ezin dut esan esleipenen, eta, ondoren, baino init esaten Metodo Nik sortutako deitu dut, eta Bob pasatzen dut. Puntu honetan, objektu Bob Bob berdina du. Ados, behera, hemen NSMutableArray horren lehenago dugun begiratu dut erabiliz. Space.Then dut esleitzean array berri bat naiz hasieratzean. 2 gauza gehitzeko noa. Array honek ikaslea objektu dauka. Iragarki, ezerezetik ez ikasleek array bat da esan behar dut. Array, aldi esan dut. Ondoren, edozein delarik ere barruan nahi dut. Here 2 objektuen daukat. Azkenik, beste objektu bat daukat hemen, TF hau. Hemen TF.h baino gehiago, funtsean, gauza bera. NSObject, eta modu naiz inheriting hau da, eskolak sortu duzun guztia egin, interfaze boilerplate mota hau. Ikasle jabetza ditu. Bikote metodo bat daukat hemen asko guztia benetan ez da egin, eta, beraz, horrek esan nahi du I TF objektu hau sortu ondoren Kalifikazioa metodo hau deitzeko hau atsegin dute. Objective-C sintaxia edozein galdera gehiago batean hasten gara mugitu aurretik. interesgarri apps garapen stuff? Ongi da, eta, beraz dezagun benetan iPhone app bat egiteko. Core klaseak dira erabiltzen duzun barruan egingo zure app iPhone ikuspegi kontrolagailu deitzen dira, eta ikuspegi controller funtsean pantaila bakar bat adierazten du zure app barruan, eta, beraz, musika app naiz bada, esate baterako, ikuspegi bat kontroladore abesti guztiak ikusteko nire iPhone izan liteke. Beste ikuspegi controller sakatu abesti bat eta hasi jolasten izan daiteke edo naiz dudan bezala behera zulaketa artista sartu. Duten hainbat pantaila bakoitzak ikuspegi ezberdinak controller irudikatzen litezke, eta ikuspegi controller da benetan klase bat besterik ez dio pantaila honetan nola funtzionatzen. Ikuspegi controller barruan gauzak, propietate izan dugu, beraz, botoi bat bezala gauzak da gure ikuspegia controller jabetza izango. Ari gara, halaber, metodo izan du, eta horiek dira, batez ere, gertaera kudeatzaileen. Metodo honek dio botoi hau sakatu Zerbait egin nahi dut, eta, azkenik, berriro ere, erabiltzen ari den hitz hori auto uneko instantzia sartzeko goaz. Interfazeak eraikitzeko iOS da, benetan, benetan, oso erraza da. Hau nice arrastatu eta jaregin interfazea Interface Builder izeneko dute, eta 2 core kontzeptuak Objective-C sortu Interface Builder alanbre IBOutlet eta IBAction dira. IBOutlet bat besterik ez dio bada botoi bat jabetza deklaratzeko, eta lotu zure UI benetako zerbait egin nahi baduzu, outlet bat esan duzu. Era berean, nahi duzun gertaera kudeatzailea bat irudikatu nahi izanez gero ondoren, ekintza bat esan duzu. To benetan Wire ordezkaritza hori grafikoa eta zure kodea benetan, oso sinplea da. Nahi duzun IBOutlet bat erantsi nahi izanez gero, egin behar duzun guztia click kontrola ematen dizu, eta hau benetan azkarra adibide bat ikusiko dugu. Egin klik zuk kontrolatzen duzu, non View Controller dio. Interfazea arrastatu ari zara, edo alderantziz, event handler bat sortu lotu nahi duzun interfazea arrastatu ari zaren beste norabide batean. Dezagun iOS oso sinplea adibide begirada bat. Dezagun proiektu berri bat sortu. Etorri hemen Eskaera noa, , eta Single ikusi Eskaera egin klik noa. Hurrengo sakatu dut. Eman dut nire proiektua izen bat. Deitu dut Hello. Interesgarria da, Apple bere gain hartzen produktu bat sortzen ari zara beraz, saldu ahal izango, eta dirua egin ahal izango dute. Down hemen hori iPhone app bat da, esan nahi dut. IPad aplikazio bat sor dezakezu, edo nahi duzun apps horietako bat sortu nahi izanez gero onartzen duen gailu bai ere egin dezakezu. Hauek dira zer nahi duzun zure checkmarks itxura. Storyboard, hori geroago dugu erabili nahi duzu, eta behin betiko erreferentzia zenbaketa automatikoa erabili nahi, eginbide polit bat eragozten malloc eta dohainik da esan beharrik. Malloc eta free deitu nahi duzun ezean, fakturatutako honetan utziko dut. Egin klik hurrengo dut, eta, azkenik, hau da, galdetu non gorde nahi dut. Sortu sakatu dut, eta hemen dugu. Proiektu berri bat sortu dut. Hemen ezker baino gehiago daude, nire proiektuaren barruan dauden fitxategi guztiak, eta konturatu got I sorta bat osoa, eta nahiz eta ez nuen ezer egin. IOS handia da. Esate baterako, hemen ViewController.h honetan, hau da nire lehen ikuspegi controller irudikatu nahi du, nire app barruan lehenengo pantailan, beraz. Orain zer hori esaten dugu. Klase ViewController deitzen naiz esaten ari gara, eta ViewController UIViewController bat egiten duen guztia egiten du, eta hau, berriz, klase batzuk Apple idatzi du, asko stuff handy Gurekin pantailan erakutsi nahi. Hemen da non benetan hasi zer nire iritziz controller definitzen du, eta bihurtzen da, benetan ez dut behar hori edozein. Boilerplate kodea Apple diola me free da. Lehenik lerro bat egin dut, edo ez dut klase bat izan, beraz, kendu ahal izango dugu, eta hau kentzeko. Ongi da, eta, beraz, hau da nire pantaila hutsik da. Orain dezagun egin klik MainStoryboard.storyboard honetan, eta hau da, non interesgarria hasten da. Nire app lehen pantaila adierazten du. Nahi dut botoi bat gehitu nahi baduzu, HTML botoia etiketa bat sortu nahi izan dut. Android botoia etiketa bat sortu behar duzu, baina iOS etorri naiz gero hemen behean eskubidea eta hau 3. klik eginez gero, hemen non Objects dio, eta behera joan I daiteke, edo hasteko botoia bilatzen dut. Eta begiratu, botoi bat, arrastatu hala badagokio, benetan I eta jaregin eskubide hori ez dago, Dut nire app pantaila hau botoi bat gehitu. Nahi dut, testua aldatu nahi izanez gero, egin klik bikoitza egin dezakezu dut, esan zerbait erakargarri "Sakatu Me". Ongi da, orain dut aplikazio hau exekutatu bada, eta, beraz, konpilatu dugu, beraz, exekutatzeko egin klik goiko ezkerreko botoia play I, eta ez da nire app. Nik ez dut ezer egin, eta gozoa iPhone app bilatzen dut. Nahi dut gelditu nahi izanez gero, stop botoian klik egin dezakezu da gehiago dibertigarria delako. Demagun benetan nahi dut zerbait botoi hau sakatu I gertatuko. Egiteko zer egin behar dut, hau da, sortu behar dut gertaera berri bat maneiatzailea edo ekintza bat. Horrek esan nahi du metodo batzuk sortu nahi dut deitu behar dut botoia sakatu, eta, beraz, dezagun metodo berri bat sortu. ViewController.h barruan nago. Metodo bat existitzen dela esan behar dut. Marratxo bat lehen behar dut dut deituz hau ikusteko kontroladorea joan delako. Hau mota bat eman behar dut. Mota hori IBAction gauza lehenago ikusi genuen izango. Event handler, IBAction itzuli da, beraz, eta hau bat XCode iradokizun esan hau da, zerbait zerbait Wire nahi dut. Eman daiteke izena, buttonPressed, puntu eta koma bezala. Orain izendatu dut nire klase barruan modu berri bat. Esan dut, metodo hau ez da existitzen. Orain dezagun ViewController.m sartuko da, eta demagun metodo hau zer egin dezaket. Hasten naiz idazten bada, adibidez, (void) buttonPressed oharra XCode benetan atsegina da eta niretzat autocompletes. Hori da benetan zoragarria. Iragarki hemen. M fitxategia barruan void ere esan dezaket, eta hau da IBAction hori benetan mota bat da, ez delako. Da benetan hashtag definitu nonbait void bat izango da, eta, berriro ere, hori besterik ez da aholkua XCode dioen Event handler bat izan nahi dut, eta ikusi zergatik bigarren dugu. Zerbait gogaikarria egin botoi hau sakatzen da noa gustatzen erakutsi laster. Klase honen instantzia berria izeneko UIAlertView bat sortu egin daiteke, eta klase bat Apple idatzi du gogaikarriak popups erakutsi egingo da. Laster-alerta hau deitu dugu, eta 2 urratsak I, gogoratu, objektu hau sortzeko. Lehenik eta behin, egin behar dut esleitu espazioa. UIAlertView bat nahi dut. Espazio esleitu nahi dut. Hori da nire lehen metodoa. Nire hurrengo metodoa da hasieratu nahi dut, eta, beraz, hau big, luzeak-metodoa deitzen initWithTitle daukat. Hori da, funtsean, zer dio honen laster-kontrolatzeko. Nire popup izenburua kaixo izan daiteke. Mezu hau popup izan daiteke "Hau da iOS." Delegatu gauza, ez dakit zer dela. Demagun da ezer. Orain agertzen den bezala "ziurtatu du," botoia zerbait esan daiteke eta ez dut nahi beste botoirik, beraz, ezabatu eta parentesi ixteko. Ongi da, extra bat sortu dut. Bertan dugu. Hau da, nola popup berri bat sortu ahal izango dut. Benetan erakutsi nahi dut laster show metodoa deitu nahi dut. Alerta eta erakutsi dut esan dezaket, eta, berriro ere, 'automatikoki osatu' super nice zen. Ahaztu dut, zer izan zen, besterik ez dut s bada, idatzi bada, Korrituko bidez dut hemen zer zen, eta nicely iragazten. Orain popup berri hau sortu dut. Itzuli dugu zer delegatuak esan nahi du geroago, eta, gaur egun, metodo hau tiro nahi dut esan nahi dut botoia sakatu dut, nire gidoi grafikoaren itzuli dut, beraz, eta orain IBAction hau erantsi nahi dut. Lehenengo gauza egin nahi duzun da, sakatu botoia. Botoi hau sakatu zerbait gertatuko nahi dut. Ez dut eduki kontrol. Egin klik eta arrastatu botoia noa hemen non View Controller dio. Ikusi nicely argiak sortu ahal izango dugu. Dut nire saguarekin dute gaur egun I popup hemen aukera batzuk non egin behar dut. Horietako bat ekitaldi naiteke da. Hauek dira nire h fitxategia IBActions gisa deklaratu metodo horiek guztiak. Hau da, nola XCode badaki zer egin behar txiki honetan zerrendan agertzen, beraz, iradokizun bat besterik ez da. Botoia sakatzen dut klik eginez gero, erregistratzen dut gertaera kudeatzailea. JavaScript event handler erregistratu zenbait kodea dut esan nahi izan dugu. Objective-C benetan zen batere erraza. Exekutatu dut hau berriro orain, botoia sakatu dut nire event handler sua egingo da, eta hau popup noa. Super, super simple dago. Inoiz gertatuko erregistratuta egon Ekitaldi guztiak ikusteko nahi baduzu Osagai bat botoi honetan klik eginez gero eta gehiagoko naiz hemen eskuinaldean lehen ikus dezakezu hemen gauza egin ahal izango dut botoia mota bezala, hala badagokio, horiek I edo add kontaktua botoia bat nahi duzu edo dena delakoa. Nahi dut botoi hau Ekitaldi guztiak ikusi nahi izanez gero modu guztiak galtzen naiz hemen eskuinaldean Hemen ikus dezakegu gertakari horiek hainbat gertakari daukat. Botoia sakatu dut, botoia, tap bikoiztu I edo dena delakoa utzi dut, eta bat erregistratu dut da gertaera hau izeneko Touch Up Barruan, eta hau dio laster nire hatz gisa dator gisa off botoia gertaera da sua, eta hori zehazki zer gertatu da. Hau default botoia gertaera sakatzen mota da. Edozein galdera, beraz, orain arte? Ados, hori nola martxan Wire gauzak ahal izango dugu gure kodea gure interfazearen barruan gauzak sartu. Gogoratu egin behar izan genuen lehen gauza kodea aurkitu zen, eta, ondoren, kable interfazea kodea, eta gure lehenengo aplikazioa da. Ados, hori benetan cool izan zen, eta botoi hau sortu genuen. Zer egin nahi ez badugu propietate-sorta bat sortu dute botoi hauek ordezkari? Esate baterako, TIC TAC behatza 9 botoiak daukat, eta super, super gogaikarriak 9 aldiz arrastatu eta jaregin litzaidake edo izan nuen TIC TAC behatza egin ordez 9 81 eta 81 aldiz arrastatu eta jaregin nuen, eta hori lame. Zer egin ordez dezakegu askoz HTML bat bezalakoa da identifikazioak eta izenak bezala gauzak izan genuen, eta gauzak bilatu ahal izango dugu beren ID, iOS nozioa antzeko izeneko tags. Etiketa bat besterik ez da, osagai baten zenbakizko identifikatzaile esklusiboa. Diot 0 tag bat badu, esate baterako, botoi bat sortu dut eta eman da 0 tag bat, eta ikusi nola egiten dugu, bigarren batean, nahi dut botoi hori lortu nahi izanez gero, besterik gabe, esan dezaket deitu nahi dut metodoa viewWithTag objektuaren hemen baino gehiago, self.view, uneko pantaila adierazten du, esate baterako. Metodoa deitzen diot nik viewWithTag bada, atzera tira botoi 0 tag noa. Dezagun begirada eraikina TIC TAC behatza. Lehenik eta behin, hau da nire gidoi grafikoa da. Nik sortutako horiek 10 UI botoiak. Iragarki guztiak tamaina berekoak dira. Sakatu dut hauetako bat bada, eta itzuli naiz hemen eskuinaldean honetan ikusi duzu letra-tipoa egokitu diot hemen, beraz, letra-tipo egin dut pixka bat handiagoa, baina, zer egin ere dut tag hau ezarri nuen. Hori 1 tag du esan dut, eta hori da goiko ezkerreko. Orain, sakatu beste I botoia bat izanez gero, bigarren hau hemen bezala, ikus nire tag dela 2 duzu. Botoi hauek bakoitzak etiketa bat bakarra du, eta, beraz, hau da, geroago nola erlazionatzerakoan hasteko dut joan nire app. Guztiak ikuspegi bat kontroladore barruan, baina hemen dugu. 3 propietate ditugu hemen. Lehena eta azkena nire taula egoera irudikatzeko. Funtsean, lehen array bat non XS eta Os dira ordezkari da. Hemen beste hau kontatzen digu bere txanda da. Konturatu ere egiten dut gauza horiek duzu hemen. Aurretik ondasunok deklaratu dugu mota bat eta izen bat eman genuen. Ere eman ahal izango dugu, horietako zenbait informazio gehiago hemen. Lehen nonatomic dio, eta hori zer dioen Gauza bakarra da, funtsean, inoiz aldagai hau aldi berean saiatzen ari dela esan nahi du. Konplexuagoak diren aplikazioak multi-gaika egin ahal izango duzu, eta, beraz, atzera Scratch hariak ezberdinak izan ditugu, eta sprites hainbat gauza desberdinak egiten ari izan eta, aldi berean. Hori ez bada, ez da ezer dugun zaizu, esaten dugu nonatomic bada benetan, gauzak pixka bat azkarrago egiteko. Horrez gain, izeneko gauza hau esleitzeko, indartsua, edo ahula. Hau esleitu dio hori estandar mota bat da. Hau ez da objektu bat edo erakuslea besterik ez da boolearra delako, beraz boolearra Objective-C barneratzen. Horrek ez saiatu ezer erakusleak hemen fancy egin dio. Erregular bat zaharra eskalatzailea da. Indartsua eta ahula, ahula dio benetan duen Nahi dut hau ikusteko kontroladorea zerbait seinalatuz. Ez dut benetan esleitu edo Init hau neure buruari. Interfaze eraikitzailea, aplikazioa exekutatu I, hasieratze hori guztia kudeatzeko. Diot ahula bada, esaten duen beste norbaitek sortzen hau. Diot sendoa baldin bada, hau dio bat izango naiz duten I taula objektu hau sortzeko, eta, beraz, hemen batzuk gehiago metodoak behar dut hemen, Adibidez, joko berri botoia sakatzen da ekintza bat, beste edozein botoi sakatzen direnean ekintza bat, et cetera. Ez dugu gehiegi TIC TAC behatza logika askoz sartu Oso zirraragarria izan arren, baina utzi itxura bat hartu iOS barruan egin ahal izango dugu, gauza batzuk. Joko berri honek metodoa tiro egingo da betiere, joko berri botoia sakatu dut. Gora etorri besterik ez dut nire gidoi grafikoaren lotu. Klik egindakoan joko dut. Naiz eskuinera bada, hemen ikusten dut Ukitu Up metodoa newGame kable Inside. Horregatik, hau da, tiro eskuratzeko. NewGame metodoa da jaurtiketa egin du. Taula egoera garbitu nahi dut, esan nahi da. Metodo mutable array atsegina da. Hau da X-en txanda da esan nahi du, eta, gaur egun, gauza hau viewWithTag aprobetxatu dut. Ezagutzen dut nire botoiak dute tags 1-9, eta hori zerbait arbitrarioki jaso dut. Botoi bakoitzaren testua ezartzeko hutsik egon nahi dut besterik ez dut joko berri bat hasi delako eta ez dut nahi Xs edo Os utzi behar baino gehiago egin ahal izango da. Tag duen ikuspegia, 1, 2, 3, 4 et cetera esan nahi dut. Honek beste botoi bat zabaltzen da aldi bakoitzean. Hona hemen bota nahi UIButton noa. Just bezala ints bota izan dugu, karroza eta alderantziz hau dio cast UIButton bat nahi dut. Horrek esan nahi du, hau mota UIButton * izango da delako erakusleak, baina ez kezkatu, Oraindik ez dute scary jada. Behin metodo bat deitzeko noa botoi honetan daukat. Metodo honek setTitle forState deitzen da, eta, beraz, hau dio Botoia testu kate hutsa izan nahi dut, eta kate hutsa ez denean sakatzen nahi dut. Dut metodo hau erabiltzen baduzu, testua aldatu ahal izango dut botoia ahalik eta azkarren norbait doakizula ikustean,, baina botoia besterik ez da han eserita esan nahi dugu Testua hutsik izan nahi dut. Azkenik, nire taula hasieratu goaz, eta dena da gaur egun 0 esan nahi dut, taula hau, beraz, kide immutable mutable array bat da, Horrek esan nahi du, metodoa eta besterik ez da barrutik 0 addObject deitu ahal izango dut. Hau da, zer gertatzen da joko berri bat sortu dut. Ikus dezagun begirada bat beste bat. Hemen metodo hau IBAction hori sakatzen egingo da aldi bakoitzean lauki horietako bat sakatzen da. Orain zenbait TIC TAC behatza logika ditugu hemen. Irudikatu dugu eta bere txanda da, eta horretan oinarrituta ezarri bai dugu X edo O bat event handler bera hau berrerabiliz ari garela nabarituko dugu botoi horietako bakoitza bakarra. Horrek esan nahi du, ez dut goiko ezkerreko botoia metodo bat, beheko eskuineko botoia metodo desberdinak, egin dut, nahiz eta izan. Hori ez litzateke benetan diseinu ona izan. Zer da hemen egiten ari naiz, benetan ari naiz zehazteko zer zen botoia sakatzen tag da. Play metodo hau argumentu bat hartzen du nabarituko duzu. Deitzen da duela egiaztatzen du, eta zer bidaltzailearen da bidaltzailearen da joan ordezkatzen zehazki zer hartu zuen ekintza gainean. Botoi bat sakatu nuen bada, bidaltzaileak hau UIButton hori izango actually I sakatzen, eta, beraz, horrek esan nahi du UIButton hori etiketa bat sortu du I tag bat delako. Nahi dut Etiketa bada, besterik gabe, esan dezaket Bidaltzailearen tag nahi dut, eta, berriro ere, besterik ez dut casted UIButton bat. Bidaltzailearen UIButton bat izango da jakin gertatuko dut. Ez du beti izan UIButton bat izan. Izan dut, esate baterako, erregistratu event handler bera  botoi bat, graduatzaile bat bat bat. Kasu honetan, botoi guztiak ari dira ezagutzen dut, beraz, esan nahi dut Botoi bat izan nahi dut, eta, ondoren, etiketa lor daiteke I Etiketa jakin dut non I am taula barruan. Orduan, besterik gabe, ezin dut ezarri bai X edo O, txanda irauli dezake, egiaztatu duten irabazi du, et cetera. Hau hain urrun edozein galdera? Ados, kodea online-ez gehiegi sartu nahi posted dugu TIC TAC behatza logika, baina orain, benetan dezakezu guztiak egiten ari garen array hau begizta baino gehiago ari gara, beraz, loops hemen pare bat dugu, eta ari gara ikusten alderatuz errenkada, zutabe bat edo ezer horrelako partida bat partida bat izan dugu. Benetan exekutatu aplikazio hau, botoi hauek bat ukitu bada play metodo tiro izan zen, eta horrek esan nahi du ezarri besterik ez dut, beraz, botoia X bat izan nahi du, eta, beraz, orain botoi hau O bat izango da, eta, beraz, eta, beraz, hori nola Orri hau single app elkarreragin hasten ari gara. Kodea idazteko dugu, eta, beraz, sentitzen free hori peruse baina dezagun gaur egun zenbait orrialde bakar bat baino gehiago dira apps buruz hitz egin. TIC TAC behatza gisa zirraragarria izan zen, apps asko iOS barruan zulagailu horiek mota pantaila hainbat gauzak behera. Kontzeptua lehen hitz beharko dira protokoloak, eta protokolo bat besterik ez da, metodo multzo bat definitzen agintzen. Sortu I 2 metodo protokolo berri hau, lehen hau bada, itzulera mota da void bada, foo izeneko I. Argumentu hartzen ditu. Beste metodo bat daukat. Int bat itzultzen ditu. It bar deitzen dut, eta argumentu bat hartzen du. Protokolo hori guztia da izeneko SomeProtocol hemen, norbaitek ezartzeko gauzak multzo bat da. Ez dut protokolo honen barruan esan zer foo du. Horren ordez, besterik ez dut esaten foo zehaztu ahal izango duzu, nahi izanez gero. Dut ikuspegi kontroladore bat sortzen bada, edo klase bat sortu Barruan ezin dut klase promesa hori ezartzeko metodo horietako batzuk, eta, beraz, esate baterako, bada esan orain dio promesa bat egiteko dut barruan foo eta bar definizioak ikuspegi honetan controller klase egingo dut. Zergatik da baliagarria? IOS barruan osagai asko aprobetxatu honen diseinu eredua izeneko ordezkaritza, eta zer ordezkaritza dio da, adibidez, testu-koadro bat daukat bada daude eta gertakari batzuk nire testu-koadroan barruan erregistratu ahal izango dira, baizik eta zer egin ahal dut aparteko gertaerak sortzeko baino esan daiteke I testu-lauki hau ordezkaria objektu batzuk izango dira. Hori dela ordezkari bat da, gaur egun esan dut, horrek esan nahi du betiere, gertaera batzuk izan testu-koadroan marrazainak baino gehiago edo horrelako ezer erregistratu beharrik besterik ez da ordezko metodo bat deitu du. Esate baterako, nire testu-koadroan barruan I sakatu metodo bat behar dut egin beheko eskuineko botoia, eta, beraz, baino event handler erregistratzean, zer esan daiteke I testu-koadroan, hemen metodo bat deitzeko objektu bat nahi dut aldi bakoitzean norbait prentsak egin botoia eta horrek esan nahi du objektu protokolo batzuk ezartzea dioen egin botoiaren ekintza zehaztu hitzematen dut, ez badu define metodo eta Eginda sakatu delako, ondoren, nahasgarria izan dute. Ikus dezagun adibide bat begirada bat. Hemen, besterik gabe, I bat testu-koadroan, eta hemen honen eskuinaldean testu-koadro hau ezaugarriak bat ordezkaria da. Klase jabetza da. Zer egin nuen, bertan klik kontrolatzen dut, eta arrastaka eraman Leku hau dut hemen Ikuspegi controller, eta testu-lauki hau dioen delegatua ikuspegi controller izango da. Horrek esan nahi du ekintza batzuk gertatzen, baizik eta erregistratzean baino aparteko gertaera kudeatzaileen bidaltzeko delegatua nahi dut. Dezagun orain nire iritziz controller begirada bat. H file Inside promesa bat egin dut. Agindu dut metodo batzuk ezartzeko protokolo honen barruan izeneko UITextFieldDelegate, eta berriro, gauza batzuk ezartzeko aukeratu ahal izango zerrenda bat besterik ez da. Hemen naiz bada, nire m fitxategia, ezarri dut metodo horietako bat. Deitzen dut textFieldShouldReturn hori delako zer protokoloaren barruan deitu zen. Eta orain, betiere botoia testu-eremuan egin barruan sakatzen dudanean hau da, zer deitzen, beraz, ez nuen event handler erregistratzeko. Ordezkaria konektatutako dut, eta betiere, gertaera hau da tiro deitzen den metodoa da, hala badagokio baino gehiago naiz hemen nire gidoi grafikoaren eta exekutatu hori da kargatzen bitartean ikusi ahal izango dugu zer honek. On my pantaila 2 gauza daukat. Testu-eremu hau behar dut, eta, etiketa hori daukat. Etiketa honen testua nahi dut besterik ez dut esaten edozein erabiltzaileari testu-eremuan barruan idatzi berdinak izan. Hau hurrengo lerroan hemen metodo bat besterik ez da, naiz I deituz dioen testu eremua teklatua ezkutatu nahi dut. Hau besterik ez da arbitrarioa metodoa Apple aukeratu zuen. Berriz ere, ez dut ezer izan nuen guztia Wire sortu aurretik, eta, beraz, izan zen lehenengo ditut hemen. Ikuspegi controller From baino gehiago arrastatu testu-koadroan. Joan dut, eta hemen ikusi ahal izango dut hau testu-eremuaren jabetza I egin ahal izango ikuspegi controller gehiagoko hemen geroztik, etxebizitza bat definitu dut testu eremu bat IBOutlet bat da. Dio jabetza hori I Wire sortu nire UI testu bat eremuan. Orain hau sakatu dut idazten dut. Orain egin botoia sakatu dut bada, hau da, suteen aurkako gertaera bat dut erantzun. Gertaera kudeatzaileen No. Hori nola egin botoi hori besterik ez dut erantzun. Zentzurik? Hau ez da diseinu-eredu bat-duzula agian inoiz puxtarri zure protokoloa sortzea, baina jakin batzuk iOS osagai desberdinak erregistratu gertaerak modu ezberdinetan. Buttons, adibidez, erabili IBActions horiek. Testu-eremu, beste alde batetik, ordezkariek erabili behar dira. Ikusi ahal izango dugu, eta dokumentazioa barruan begiratu dezakezu. Bide batez, ez da benetan iOS sartu zuretzat eraikitako UI stuff tona bat, beraz, adibidez, modu bat dela esaten beheko eskuineko egin egin nuen testu Eremu hau aukeratu dut. Nintzen hemen. Pixka bat behera korritutako I gakoa itzultzeko, eta benetan gauza sorta osoa, bada bezala, esan nahi dut larrialdi deitu ordez, hori egin ahal izango dut, hau da, erabat ausazko eta ez dakit zergatik ez inkorporatu batean larrialdi-dei botoia baina ez dago, larrialdi benetan txiki gutunak dei dio. Bertan joan zaitezke. Definitely iOS hainbat aukera horiek guztiak arakatzeko. Ordezkariek edozein galdera? Berriz ere, diseinu interesgarri bat bakarrik eredua jakitun izan behar du. Ados, dezagun hurrengo taula aldiz begirada bat hartu. Taula-ikuspegi bat da, funtsean, hori iOS leku guztietan zehar elementuen zerrenda da. Zure kontaktu guztien bidez ari zaren biratu, bilatzen ari zaren ezartzeko, eta gauzak zerrenda mota horretako izeneko taula ikuspegi bat. IOS ikuspegia taula bat ezartzea da nahiko erraza da. UIViewController horretatik aurrera jaisten klase bat egin beharrean dugu, besterik gabe, egin bezala baino esan behar dugu aurretik UIViewController du egin nahi dut guztia, Diot guztia ez UITableViewController bat egin nahi dut, beraz, besterik gabe, batzuk Gurekin egin diren gauzak erabat osagarriak gehitzen. Oso txikia da, funtsean, mahai barruan hutsuneak bete egin behar dugu. Galdera batzuei erantzun behar dut taula bat erakutsi. Lehenengo galdera erantzun behar dut, zenbat atal mahai daude? Zure kontaktuak app bidez biratu ari zarela nabarituko duzu mota horretako bezala antolatu, ondoren Bs duzu,, eta sub goiburua txiki duzu. Horietako bakoitzak izeneko atal bat. Edo, agian, agian, ez duzu horien beharrik. Egin behar duzun lehenengo gauza da ezartzeko metodo bat izeneko tableView: numberOfSectionsInTableView. Hori besterik ez itzultzen zenbat atal duzu, beraz, hau itzuli handi bat taula ikuspegi bat duzu bada esan dezakegu. Hurrengo galdera iOS jakin behar da zenbat errenkada daukazu? Adibidez, taula baten bidez ari zaren gutxien iraultzea. Abesti kopuru finko bat bilatzen ari zaren edo kontaktu-kopuru finko bat behar duzu. Oraindik baduzu me, jakina, ez da asko, eta, beraz, hori nola iOS daki zenbat zelula erakutsi. Berriz ere, honetan itzulera 3 antzeko zerbait esan genezake. Nire taula ikuspegian 3 errenkadak ditu. Azkenik, iOS zelula bakoitzaren itxura jakin behar da, beraz, zer da benetan da egingo deitu metodo hau behera hemen, tableView honetan: cellForRowAtIndexPath. Metodo hau deitzeko zure taula barruan zelula guztietan bakarra da. Nola ez zenbat aldiz deitu ezagutzen? Beno, esan atalean errenkaden kopurua barruan. Gure zelula bakoitzean hau deitu dugu, eta honen barruan dago, non gauzak benetan egin dezakezu bezala testu edo esango dizu zer esan eskuineko botoia little blue du. Zelula horiek lortzeko eredua, metodo hau erabili dugu izeneko dequeueReusableCellWithIdentifier. Objective-C da, benetan oso ondo ezagutzen, beren metodoa izenak barregarria luzera eta, hau da, benetan puntu Adibidez kasu atsegina. Zein da metodo hau ez da hau besterik ez dio ematen didazu zelula bat nahi dut. Just iOS gauza bat. 100.000 abesti antzeko zerbait bada, zure iPod-ean iOS ez du egin nahi da esleitu 100.000 zelula zure zerrendaren goialdean baduzu, ez delako behar duzula memoria esleitu 99.000 errenkada behera zelula? Ez, zaren korritu mota esleitu joan batera jo ahal izango duzulako. Hau da egiten. Ez daukazu hori performance stuff ergelak guztiak kezkatu. Guztiak diozu metodoa dequeueReusableCellWithIdentifier hori deitzen duzunean, eta hau dio, ados, behar duzun zelula berri bat sortu nahi dut bada. Baina mahai behealdeko baduzu eta dagoeneko duzun esleitu zelula batzuk ari zaren benetan ez edonoiz laster behar du taula gainean Emango dizu horien ordez berri bat esleitzean bat dut, eta, beraz, hau nice performance kezka da. Ez daukazu zelulak eskuz esleitu. Hori itzuli beste modu bat: gelaxka batean joan. Nahi duzu itzultzeko zelula objektu bat da. Behin zelula objektu stuff egin dezakezu duzu. Gelaxkak testua ezar dezakezu testu-etiketa izeneko jabetza honekin. Random stuff batzuk edo eskuinera gezi hori gehitu ahal izango duzu izeneko honetan bestelako jabetza accessoryType, eta, beraz, eta abar. Ikus dezagun begirada bat benetan taula ikuspegi bat ezartzeko. Proiektu hau sortu dut ikuspegi bakar aplikazio esaten beharrean izan zen benetan ditut hemen maisu-detail aplikazioa, eta, beraz, funtsean, hau mail app dagokio Ezkerraldean ikuspegi taula eta gero, eskubidea eduki iPad. Hau da, iPod edo iPhone On bakar bat taula ikuspegia dagozkio. Hori non nire hasierako kodea dut. Dezagun lehen aldiz hartu du gidoi grafikoko begirada bat. Hori guztia niretzat egin zen, batez ere sortu. Adibidez zelula itxura nabigazio-barra honek erakutsi zidan, bikoitza egin dezakezu klikatu, izenburua aldatuko. Beste edozein UI kezka kudeatu ahal izango dut. Goiburu-fitxategia itxura oso sinplea da. Hau da esaten UIViewController beharrean ari gara, hau da, esaten TableViewController, eta, beraz, taula metodo horiek guztiak deitu nahi dugun badakigu. Propietate bat irudikatzeko joan sortu nahi dut Next nire taula barruan gauzak. Taula honek arbitrarioki erakutsi fruta-zerrenda bat, eta, beraz, array batzuk sortu behar dut eta bertan fruta sartu ahal izango dut. Nire ezartzeko fitxategi lehenengo gauza Inside egin nahi dut ziurtatu array hau abiarazi dut egin nahi dut. Esleipenen init esan dut, nire fruta array sortu eta 4 gauza naiz gehitzen zaio, eta horietako batek beste 3 baino askoz ere polemikoa da. Eta orain, 4. Tamaina array bat daukat. Dardarka ari gara sortu CS50. Dute gaur egun I tamaina array bat 4. Orain galdera hauek erantzutea hasteko naiz joan, eta benetan, app hau sortu dut hori guztia egin zen dagoeneko me. Ez nuen idatzi sail kopurua taula ikuspegian. Dagoeneko izan zen han, eta hutsuneak, naiz betez. Zenbat atal dut? One. Dena eginda. Zenbat errenkada dut? Beno, fruta bakoitzeko lerro bat behar dut, beraz, Aldaketa hau nola big da esaten duen edozein array propietate bat da? Hau da, zenbat errenkada dut. Azkenik, zelula bakoitzaren itxura esan behar dut? DequeueReusableCellWithIdentifier esan nahi dut. Berriz ere, dagoeneko me idatzia izan zen. Ez dut hori egin neure buruari, eta itzuli nahi dut kokapen honetan gelaxka hau. Gogoratu zelula bakoitza berean metodo hau dei ari garela, eta hau hemen argumentua, indexPath argumentua, dio zer errenkadan sartu naiz Diot indexPath.row bada behera hemen honetan 0 izango da, orduan 1 izango da, eta ondoren 2 izango da, eta hau da ezagutzen, beraz, I zer zelula dut bistaratzeko. Testua jabetza hau erabiliz gelaxka testua ezarri nahi dut nire fruta array baten barruan joan eta objektuaren lerro bakoitzari dagozkion. Hau kate bat bada, gaur egun dut kate bat jabetza testua. Beste gauza bat egin ahal izango dut. Handler gertaera bat ere naiteke zelulak bakoitzean, beraz, zelula horietako bakoitzean sakatu I didSelectRowAtIndexPath honetan, hau da, me izeneko beraz, besterik gabe, hau definituz kudeatu ahal izango dut zer gertatzen den zelula bat ukitu duzu, eta, berriro ere, zelula tapped ari gara pasatzen beraz, hau gure zelula guztiak gertaera bera kudeatzailea dugu berrerabiltzea. Berriz ere, zerbait iOS da niretzat egiten da. Dezagun erakutsi beste gogaikarriak popup besterik gabe dio zerbait non zerbait bildu errenkadan objektu izango da. Hau abiarazi I, taula honetan nice ikuspegia izan dut fruta horietako bakoitzean lerro bat, eta bat ukitu dut esaten dit, zer gertatu zen. Zentzurik? Dezagun eraikitzeko apur bat gehiago aplikazio bat konplexua, tomatea jaso duzu klik eginez gisa askoz da. Storyboarding buruzko nice ez da bakarrik gurekin diseinua pantailak banaka laguntzeko, ere elkarrekin lotzeko gure app osoa beraz, azken app eraikin izango dugu hau nice kirol news reader da, eta, beraz, pantailak bat baino gehiago izan da joan, eta, beraz, egia esan, ezin dut irudikatu gidoi grafikoko hainbat pantaila horietako bakoitzean, eta mapan handiago dut eta nire app maila altua. Nire gidoi grafikoaren elementu berriak barrutik sortzeko Interface Builder barruan benetan erraza da. Nahi izanez gero, pantaila bat gehitzeko honetan, esate baterako, I mapan handiago pixka zoom Apple maite hainbeste eta behera hemen botoi bat bilatu aurretik eta arrastatu I jaregin botoi bat pantaila berri bat sortu nahi dut benetan ezin dut besterik gabe, arrastatu eta jaregiteko Ikuspegi osoa controller, hala badagokio hau jaso dut, tira baino gehiago hemen, hey, beste pantaila da, eta beraz, gaur egun hau bera gidoi grafikoaren fitxategia erabiliz Nire app barruan pantailetan guztiak izan dut, eta zoom out I ikusi eta nola elkarreragin. Elkarreragin horiek ez dira oraindik. 2 pantailetan hauek elkarreragin harreman definituko dituzu. Funtsean, esan dezakezu pantaila honetan, botoi hau sakatzen baduzu, Lerratu zara pantaila berri hau nahi dut. Horrek esan nahi du harreman artean mota honetako  pantaila lehen eta bigarren pantaila. Dute funtsean duzu botoi horretatik aurrera bigarren pantailan gezi bat botoi hau sakatzen baduzu esan du nora joan nahi dut esaten. Bezala, bertan klik egin eta arrastatzean Kontrol dugu saltokietan horiek definitzeko segues horiek definitzeko gauza bera egiten dugu. Adibide bat ikusiko dugu, eta trantsizio dugu aurretik pantaila bat batetik bestera iOS nice nahikoa da metodo hau deitzeko izeneko prepareForSegue, eta hau da, non hasteko aukera izango dugu bat aplikazio batetik bestera datuak bidaltzen. Adibidez gara begiratu izango dira, funtsean ahalbidetzen beisbol taldeak iragazteko liga eta zatiketa. Liga bat hautatu dut, adibidez, trantsizio nahi dut non banaketak guztiak erakutsi ahal izango dut nire hurrengo pantailara liga edo talde guztiak desberdinak. Pantaila horretan zer Taldeak erakutsi behar duzu bidali behar dut. Naiz dela metodo hau aprobetxatu behar dut hemen egiteko. Azkenik, iOS ausazko puntu bat. Nahi duzun datuak gordetzeko bada izeneko gauza hau core datuak hau da, benetan zaila lan mota. Ere erabili ahal izango dituzu datuak gordetzeko SQL, Izan ere, berriro ere, atsegina da, baina mota horretako lan konplexuagoak aldean, baina iOS jabetza zerrendak izeneko really cool gauza horiek ere onartzen du, eta higiezinen zerrenda bat besterik ez da gako bikote fitxategi bat adierazten du. Gako zerrenda bat zehazteko, eta esaten duzu gako hori array bat izango da. Gako hau kate bat izango du, eta, funtsean ezer egin dezakezu JSON egin barruan dezakezu higiezinen zerrenda bat, eta, beraz, hau benetan nicely datu batzuk ahalbidetzen digu lan. Esate baterako, hau sortu dut Teams.plist daukat. Sortu dut berri bat plist fitxategia, eta, zulatzeko behera I daiteke. Hau da hiztegi bat, hiztegi bat da, hauek kateak dira, eta, beraz, hau JSON dokumentu baten irudikapen grafikoa polita da edo, besterik gabe, balioa gako-bikote multzo bat, eta, beraz, hau datuak nire app barruan egingo da. Dezagun lehenengo etorria hemen. Asko fitxategi gehiago ditugu orain. Baina lehen etorri baino gehiago hemen gidoi grafikoa. Gidoi grafikoaren Hemen I mapan handiago- Gaur egun, ikus dezakegu hori nire app fluxua da. Lehenengo pantaila honetan hasi naiz. Pantaila honetara behera zulatzeko noa, eta behera zulatzeko pantaila honetan naiz joan, eta hemen ikusi ahal izango dugu I mota bada mugitu geziak horien inguruan dugu hemen hemen horietako bat, eta arrow definitzen duten I dut pixka bat mapan handiago bada, eta ikuspegi controller naiz bada, eta hemen beste modu bat: gelaxka batean, eta esan nahi dut, beste modu bat: gelaxka batean, sakatu Irristatu zara beste pantaila bat nahi dut. Besterik gabe, ezin dut sakatuta kontrola, pixka bat baino gehiago mugitzeko, mantendu sakatuta kontrola, arrastatu gelaxka hau baino gehiago eta joan utzi. Eta hemen zer trantsizio erabili nahi duzun esaten dugu? Ez hori izeneko diapositiba gauza push erabili nahi al duzu? Behetik mugitu nahi duzu? Hori modal esaten zaie. Eta behin, horietako bat sakatu dut, gezi hau marrazteko me da, eta horrek esan nahi du benetan ditudan maneiatutako zer gertatzen den botoi hau sakatu I grafikoki. Ez nuen idatzi kodea edozein benetan pantaila bat etatik hurrengo bat irristatu. Hau begien Interface Builder barruko definitu dut. Arrow honetan klik egiten baduzu, ikus eman dut gauza honi izen bat ezarri ahal izango ditugu. Izeneko I showDivisions, eta hau da horrela ezagutu ahal izango dut zer trantsizioa gertatuko da, eta ikusi zergatik besterik ez sec bat dugu. Hau da, nola kable dut nire app pantaila ezberdinetan. Hau botoi bat, adibidez, baino taula ikuspegi bat bada, Botoia sakatu kontrolatzeko izan dut, arrastatu Hurrengo pantailan, eta hori nola nabigazioa modu horretan egin ahal izango dut. Benetan azkar, MasterViewController sartu dugu etortzen bada, berriro ere, besterik gabe, ari gara gauza zerrenda definitzeko taula ikuspegian agertuko dira. Fitxategi hori plist hartu nahi dut, esaten dut, eta kargatu ahal izango duzu hiztegi bat sartu nahi dut, eta behin hiztegi hori duzu, galdera horiek erantzun berriro noa. Hona hemen atal kopurua da. Bat, ez dago Multzo bakoitzeko errenkada bat, eta zelula bakoitzaren testua bai lehen, ligako lehen, bigarren liga, eta, beraz, izan behar du. Azkenik, metodo hau erabili dugu besterik ikusi izeneko prepareForSegue noa, eta hau den metodoa tiro egingo naizenean sakatu errenkada horietako bat, eta, beraz, trantsizio hori aktibatzeko ezarri dut geziak. Hori baino gehiago daukat esaten harreman bat pantaila batetik bestera. I 2 botoiak bada eta botoi bakoitzak hartuko ditu, beste pantaila bat Botoi bakoitzak 2 segues, 1 izan dut. , Baina prepareForSegue hau da, berriro ere, berrerabili egingo da hainbat harreman bakoitzean, eta, beraz, horrek esan nahi du modu bat behar dut sakatu duzu lehen edo bigarren botoia sakatu duzu botoia bada identifikatzeko. Gogoratu segue eman dut izen bat, showDivisions honetan nola ezagutzen dut hori segue zen aktibatzen da. Guztiak egin nahi dut, esan nahi dut Out irudikatu zer sakatu besterik ez dut nahi dut, eta, beraz, hori lortzeko, esan nahi dut hautatutako errenkada indexPath I daiteke, gogoratu indexPath dio non, bertan klik egin besterik ez dut, eta, ondoren, non egingo dut irudikatu nahi dut esan nahi dut. DestinationViewController, segue-propietate bat da. Hau pantaila noa, beraz, pantailan noa deritzo DivisionsViewController ezagutzen dut sortu dut klase hori delako, eta, beraz, orain diot d.divisions bada Ikuspegi controller joan naiz jabetza ezartzean dut. Hau da, datuak nola naiz beste pantaila pantaila bat bidaliz. Just DivisionsViewController hau begira hemen ikusi ahal izango duzu. h fitxategia jabetza zatiketa hori ez da, eta hori da, funtsean, naiz populating beraz, nola naiz I zatiketa dagokion erakusteak ezagutzen dut Ligako sakatu dut, eta berriro ere, Badirudi taula benetako ikuspegia pretty askoz ere gauza bera, soilik erantzutea 3 galdera erraz, baita identifikatzeko denean zer gertatzen den hurrengo pantailara eraman behar duzu. Hemen beste gauza pare bat besterik ez. Nabarituko goialdean zaude hemen, baizik eta hori baino # include esaten # Inportatu esaten dut. Objective-C gauza bat da. Import include bertsio nicer bat da funtsean, Adibidez, klase hau zer den jakin behar dugu, beraz, ezin dut esan DivisionsViewController. Genuen ez bada. C fitxategia barruan standardio.c hashtag Konpilatzailearen izan ideia ez printf zen. Era berean, ez dut ez bada inportatu DivisionsViewController konpilatzailea ideia ez zer da DivisionsViewController da benetan. Just ziurtatu zure desberdinak m. Fitxategiak barruan ziur inportatu h fitxategiak dagokion. konpilatzailea jakin zer ari den gertatzen. Azkenik, Apple, azken finean, ez du web ikuspegi bat erabiliz datu batzuk erakutsi da, eta, beraz, web-ikuspegi bat kapsulatzeko dezakezu objektu bat da zure app barruan apur web nabigatzaileak. Guztiak egin behar duzun URL bat eman da, zure web nabigatzailea, beraz nahi mlb.mlb.com joan nahi dut, eta, hau da, nola hasiera-orrian sartu ahal izango da, talde bakoitzak bere eta, beraz, URL honetan pasatuz web ikuspegi honetan erakutsi ahal izango niretzat, eta inguruan nabigatu ahal izango dut, eta simulator bat erabiltzen da. Orain hau nire plist zen. Sakatu dut hau bada ere, nire plist izan zen, eta hau izan zen irristakorretako maneiatutako segues horiek definituz. Sakatu dut eta bat gehiago, eta, orain, hemen nire UIWebView da, eta, beraz, besterik gabe, horrela hemen URLa web besterik ez dut kapsulatutako eta ez dut ezer crazy kudeatzeko. Hau da, web orri bat nola erakutsi. Botoi honetan atzeko bezalako gauzak hemen ere eman zidan Nik erabat doan definitzen delako harreman horiek segues erabiliz. Edozein galdera? Bai. [Student] Beraz, behin esleipenen erabiltzen, free ezer inoiz ez duzu? Zehazki, esleipenen eta init deitu ez duzu libratzeko. IOS da hori guztia kudeatu ahal izateko. Zoragarria da, eta arauak hautsi ez duzu. Bai. [Student] bada, talde gehiago izan pantailan sartzen zinen, litzateke automatikoki gurpila aukera bat, edo zerbait gehitu behar duzu? Zehazki, izan nuen gehiago Taldeak, adibidez, automatikoki litzateke kudeatzeko me scrolling, eta performance kezka guztiak mahai handi ere maneiatutako niretzat erabat. Beste galdera? Kode hau guztia etan argitaratua egingo da. Txikiak xehetasun gehiago pixka bat baino gehiago mota dugu glossed baina gauza bezala propietate batzuk web ikuspegian Apple dokumentazioa arakatzen lortu ditzakezun gauzak besterik ez dira, hau da, benetan, benetan ezarritako nicely. Lagina apps asko eta adibidez Usages dute APIak desberdinak, eta, beraz, behin betiko peruse baduzu. Just lagungarria lotura batzuk begirada bat hartu nahi izatea. Handy dokumentazioa gida batzuk hauek dira. URL masiboak dira, beraz, laburtu dira. Lehena liburutegia dokumentazio osoa da. Ez dago bilaketa txiki tabernak, hala badagokio Idazteko botoia hasten zara botoi bat egin dezakezu gauza guztiei buruzko informazio guztia ematen hasteko izango da. Nik, halaber, barne Table View Programazio gida. Taula aldiz heldulekuak xehetasun askoz ere gehiago, gauzak nola egin dinamikoki gehitu, zelula edo edit zelula bezala edo ezabatu. Ez lagina apps asko Apple ahal izango duzu horretarako, eta, azkenik, azken hau Human Interface Guidelines da, eta hau da, funtsean, UI osagaien eztabaida batzuk, gauza bezala ez egin 4 4 pixel pixel botoi bat da. Hori da ideia txarra, eta beste gauza Apple nahi duen egin behar duzu diseinu ona sustatzea. Edozein azken galdera amaitzeko dugu aurretik? Guztiak eskubidea, zalantzarik gabe sentitzen free-we're eztabaidatzeko etiketak bereziak izan. IOS bat izango dugu, eta, beraz, behin betiko sentitzen doan erabili ahal izateko. Nahi duzu zure ikaskideekin lan egiteko proiektuak edo laguntza irudikatu iOS stuff batzuk ausazko sentitzen free me email, eta behin betiko kodea konektatuta delako peruse denbora interes gehiago gainean mota dugu glossed finagoa gauza xehetasunak fintzea komeni izaten da. Baina ez bada, Zorte ona zure iOS proiektuetan, eta espero dugu App Store apps bultzada handi bat. [CS50.TV]