>> RHED SHI: Welcome to sien CS50 seminaar -
Inleiding tot IOS.
Baie dankie aan almal vir die komende.
Ek hoop dat jy net so opgewonde as ek oor IOS.
Verlede jaar het ek CS50 as 'n stage, en ek basies geleer IOS vir my
finale projek.
En dit was 'n bietjie -
Wel, dit was nie maklik nie, maar daar is baie ondersteuning tutoriale aanlyn.
En ek hoop regtig dat hierdie seminaar, sal ek gee julle 'n kop
begin op IOS-ontwikkeling
>> So, in terme van IOS-ontwikkeling, Daar is twee belangrike dinge wat ons
vandag wil dek.
Eerstens, die taal -
die taal gaan wees in Objective-C. Ons sal eintlik hoor
iets wat regtig opwindend.
So, kan jy aansluit by die hele Apple gemeenskap van ontwikkelaars en die bou van 'n paar
regtig awesome apps.
>> Ook, IOS 7 is 'n pragtige, hopelik, sommige van julle.
Maar dit is omstrede, ek weet.
En veral, wat ek wil doen, is om gids jy deur Objective-C en ook
Xcode, wat is die geïntegreerde ontwikkeling omgewing wat jy sal wees
werk in vir IOS.
>> En ja, net 'n woord op Objective-C. Kortom, dit is presies dieselfde as C,
maar met 'n baie ander dinge.
En so, meer streng is, is dit eintlik 'n super-stel C. So enigiets wat jy
kan doen in C nou, wat basies graag pset 0 tot 6, moet jy
kan doen in Objective-C.
>> So, moenie bang wees oor hierdie nuwe voel nie taal wat jy gaan om te leer.
Jy het alreeds gedek 'n baie dit, want jy het alles gedoen C afgelope
semester, behalwe nou jy gaan 'n baie meer om te werk met te hê.
En ek gaan net jou deur 'n te lei paar voorbeelde n paar uit te lig
van die belangrikste verskille wat ek gevind het was werklik belangrik wanneer ek geleer
Objective-C verlede jaar.
>> Wel, eintlik, wel, die ander punt is, Objective-C is, natuurlik,
objekgeoriënteerde.
En ons sal 'n bietjie te bespreek oor wat dit beteken later.
Eintlik is dit is soos hoe jy gewerk het met structs in die afgelope pset, met
nodes en soortgelyke ander dinge soos dat.
Behalwe, in Objective-C, alles is 'n voorwerp, en jy gaan wees
slaag om verwysings na voorwerpe eerder as om die waardes self.
So, dit is net iets wat belangrik is in gedagte te hou.
>> So, hoekom nie begin ons met 'n paar verskille in sintaks tussen C en
Objective-C?
Ek wil die # beklemtoon sluit, moet jy weet, standaard io.h in C en C + +, met
die doelstelling-C-weergawe van dit wat is # invoer, en dan 'n soort van
kop-lêer.
In hierdie geval, sou dit wees UIKit, jy weet, streep UIKit.h.
Dit kan ook wees, jy weet, MKMapview aan u streep MKMapview.h as jy wil
te doen, soos 'n kaart binnekant van jou jeug.
Soortgelyke dinge soos dat.
>> So, die belangrikste ding is, sluit het nou verander in te voer.
Maar die idee is nog steeds.
Jy gaan word die invoer van 'n soort van kop-lêer in jou program.
>> Ek wil ook die verskil te beklemtoon tussen printf en NSLog.
Maar, soos ons vroeër gesê het, Objective-C is 'n streng super-stel
C, wat beteken dat printf bestaan in Objective-C, ook.
Maar, die meeste mense gebruik dit nie.
Die meeste mense gebruik dit NSLog omdat dit gee jou 'n tyd stempel, en ons sal sien
dit in aksie later.
Maar, dit is oor die algemeen 'n meer bruikbare manier om uit te druk veranderlikes.
>> En ek wil ook dat na vore te bring NSLog neem in presies dieselfde
plekhouer waardes as printf doen -
sodat% d is vir 'n int, % F is oor 'n float.
Ek wil egter nie na vore te bring hierdie laaste een -
NSLog% op teken -
dit is 'n plekhouer vir 'n voorwerp.
En as ek vroeër gesê het, Objective-C handel pretty much meestal in voorwerpe,
en so dit sal kom in die gebruik wanneer jy wil uit te druk, miskien, miskien 'n
NSArray, of NSDictionary, of 'n NSString.
>> So ook, kennis dat, in ons NSLog verklaring, ons het 'n op-teken
van die kwotasie -
dit is dat snare aan te dui, nou, in Objective-C is voorwerpe.
Hulle is nie meer net kar sterre.
Hulle is voorwerpe en is so behandel.
>> So, dit is regtig belangrik dat wanneer jy NSLog gebruik neem dit in 'n S
string, wat beteken dat jy sal moet 'n by in te sluit in die voorkant van jou
aanhalingstekens.
En dit is hoekom jy sien, hier, in al my funksie oproepe na hierdie NSLog, ek
'n by in die voorkant van die aanhalings, selfs al die% d en die% f's is
almal dieselfde van C.
>> Enige vrae so ver?
Ek sal probeer om te gaan deur middel van hierdie so vinnig dat ons meer tyd om te werk
met Xcode en Objective-C, so dat julle meer kan kry
vertroud met dit.
>> Volgende, ek wil iets uit te lig konseptueel belangrik.
So, in C, die meeste dinge funksies.
Ons maak 'n funksie oproep.
Ons verklaar funksies op hierdie manier, met return eerste, dan die
funksie naam, hakies, en dan watter argumente en die tipe
hierdie argumente wat ons wil om te slaag in
En objektiewe-C, want alles is 'n voorwerp of klas -
sodat die klas en voorwerp is twee terme wat meestal sinoniem met mekaar,
sodat Ek hulle uitruilbaar gebruik Dwarsdeur die seminaar.
>> Maar, sal jy sien dat ons metodes in Objective-C eerder as funksies.
En metodes behoort aan voorwerpe.
So net so, miskien neem byvoorbeeld, knoop -
ons soort [onhoorbaar]
knoop van pset 6 of 5 -
ons het die woord, eiendom, of die volgende knoop wyser.
Metodes is eenvoudig funksies binne van 'n soort struktuur.
>> So, in hierdie geval, sou die struktuur die voorwerp, en dan die metode is
iets wat behoort aan 'n voorwerp.
En dit is hoe jy sou verklaar, soort van 'n metode.
Jy sal met, weer, die terugkeer begin type - so, het ek probeer om in te kleur
kode om die sleutel woorde hier sodat julle kan sien die, ten minste, opmaak
ooreenkomste tussen funksie verklarings en metode verklarings.
So, jy begin met, jy weet, 'n terugkeer type - in hierdie geval, dit is 'n skikking, of
'n NSArray wyser -
en dan moet jy hierdie metode.
En dan, wat is interessant hier is dat in plaas van hakies, ons
het hierdie dubbelpunte.
En dan, in die voorkant van ons argumente, ons sit weer in hakies die tipe
van ons argument.
>> So, nou ek probeer om die vergelyking tussen, jy weet, N en
groot aantal, omdat hulle beide soos ints.
En dan, die ander een is 'n NSUInteger tipe.
En dan, met Objective-C, wanneer jy wil verskeie argumente in te hê
jou metode klousule, jy, soort van, skei hulle uit soort van soos hierdie -
Ek is nie heeltemal seker hoe om dit te beskryf, maar dit is 'n goeie voorbeeld van hoe jy
kan verskeie argumente het daar in.
>> Jy kan natuurlik, net totaal ignoreer die andArray kolon NSArray
skikking as jy net 'n metode wou wat neem in een argument.
Ja, die vraag.
>> Publiek: Is beide NSUInteger en NSArray argumente wat in geneem kan word
binne die NSArray?
>> RHED SHI: Ja.
So, laat ek verduidelik.
So, ja.
So, die vraag is, is NSUInteger en NSArray * soorte van die argumente,
en dat die inligting korrek is.
So, jy wil altyd om te spesifiseer wat die tipe van jou argument is.
En hier, ek probeer om jou te voer sommige van die sintaksis en woordeskat van
Objective-C, so dit is die werklike tipes dat jy doen het met.
>> En as jy sien, skikkings is nie meer nie, soort van,
eenvoudige bracket dinge.
Hulle is voorwerpe.
Hoewel, as ons gaan op na die volgende skuif, kan ons sien dat ons kan
hard-kode 'n NSArray in Objective-C met bloot 'n simbool op die voorkant van
die hakies.
Ek is nie eintlik seker of Ek sintakties hard-gekodeerde 'n skikking
korrek vir die C-weergawe, maar dit is veronderstel is om te wees in 'n C skikking.
>> So, dit is hoe jy wil, jy weet, miskien die funksies of die gebruik van die
metodes wat ons vroeër geskep het.
Reg?
So, dit is waar ons verklaar ons funksie en ons metode.
En nou is ons wil om dit te gebruik in ons program, en dit is
hoe ons dit sou doen.
So, in C, sou jy het, jy weet, miskien, 'n Bool b, en jy stel dit na
gelyk is aan die funksie, en dan jy slaag in die argumente.
>> In Objective-C, is dit redelik baie dieselfde ding.
Jy het NSArray * my_array, en dit is gaan gelyk - nou, die enigste
verskil hier is die voorwerp ding, wat ek in geel uitgelig is en
soos jy kan sien, in C, is daar geen ander geel woord.
En dit is omdat metodes behoort met 'n sekere voorwerp.
So dit is waarom ek 'n voorwerp te hê dat, soort van, noem hierdie metode op
die getal nul, en dan die NSArray a, b, c, d.
Enige vrae oor wat?
>> Ons sal hierdie konsepte in aksie sien redelik gou as ons gaan in 'n demo.
OK.
Nou, ek wil 'n bietjie te kort praat oor Xcode 5, wat is die
geïntegreerde ontwikkeling omgewing dat jy moet werk met.
Ek weet baie van julle, of 'n paar van julle, het nie Macs, wat 'n probleem
omdat Xcode is nie beskikbaar nie vir Windows en PC.
Moet my nie vra hoekom nie, maar waarskynlik -
ja, korporatiewe.
Wat ook al.
Maar in elk geval, so ek is jammer as sommige van het jy 'n soort van af te laai
virtuele masjien vir Mac in Om Xcode 5 te voer.
Maar dit is 'n mooi nifty sagteware te gebruik.
>> En so, voordat ons duik in enige soort van demo, ek wil net vir jou 'n om te wys
prentjie van wat Xcode lyk soos in jou venster, en dan ook praat oor
wat die hele ruimte is.
So, dit is soort van soos om te leer hoe om te gebruik Microsoft Word, behalwe as jy wil
raak vertroud met al die verskillende dinge wat
gaan hier aan.
>> So die eerste, ek wil hê jy moet daarop om die nutsbalk aan die bokant.
Jy sal sien dat, by die top, jy die lêer se naam het -
of eintlik, jou projek naam en dan jou lêer naam.
Neem kennis van die spel en die stop knoppies.
Dit is die een wat jy sal wees gebruik om jou artikels te loop op die
simulator -
die IOS simulator.
Dit kom outomaties met Xcode 5, sodat jy nie hoef te bekommer oor
laai 'n soort van simulator.
Jy druk net speel en dan loop dit jou artikels.
En jy kan speel met jou, en Jy sal sien hoe dit werk later.
>> En dan, in die sentrum, natuurlik, is waar al jou pragtige kode is
gaan om te gaan.
En dan, op die linkerkant, sal jy hierdie, soort van, gids -
navigasie -
en dan sal jy ook sien dat, saam met ikoon in die gids, daar is 'n
n klomp van die ander ikone daar wat later nuttig sal wees.
>> En dan, aan die regterkant is 'n program area waar jy kan werk met
sommige van die voorwerpe en spesifiseer, jy weet wat die kleur moet wees, wat
van die skrif moet wees, ensovoorts.
Alhoewel, alles wat jy doen in die nut gebied is, kan jy
doen in die kode so goed.
En so gaan ek deur middel van twee voorbeelde van die gebruik van, eenvoudig, geen kode op
almal - of baie lae-kode -
verse al-kode, net sodat julle weet wat jy kan en nie kan doen in
Xcode en Objective-C.
>> En dan, uiteindelik, op die bodem, jy het die debug gebied.
So, jy hoef nie meer GDB uit te voer, ensovoorts, op jou programme.
Dit doen dit outomaties vir jou.
En jy kan ook druk dinge in hierdie gebied.
So eintlik, later, ons gaan deur mario.c, as jy ouens onthou
dat, in die Xcode.
Sodat pret moet wees.
>> En dan, net om dit terug te bring na Objective-C, ek wil uit te lig wat
wat jy kan doen met if-stellings.
So, jy weet, want Objective-C is 'n superset van C, alles wat jy doen is,
letterlik, dieselfde as C. Jy moet net ligte verskille.
So, sal jy die vorm Kennisgewing vir 'n as verklaring is nog steeds dieselfde - jy het
As en dan moet jy hakies met 'n voorwaarde binnekant van dit en dan
krulhakies vir alles wat jy wil doen binnekant van daar.
>> Maar ek wou dit skuif op te sit hier, net om te illustreer dat,
omdat ons te doen het met voorwerpe nou, ons sal hierdie dinge te gebruik
genoem wil hê, is gelyk aan string, wat is, toevallig, 'n metode van 'n
string of 'n NSString voorwerp.
So, woord, in hierdie geval, is 'n NSString beswaar, en dit het 'n metode genoem is
gelyk aan string, en dan is ons verby in 'n harde-gekodeerde string te sien
of diegene gelyk aan mekaar.
>> Enige vrae so ver?
OK.
En, ek wil om te gaan 'n verklaring vir ook.
>> So, byvoorbeeld, as ons wou loop oor die lengte van 'n string in C, hierdie
moet aan jou bekend wees.
En in Objective-C, wil ek om dit te beklemtoon, soort van,
metode genoem telling.
Wel, eintlik, laat my net neem dit terug.
Telling is 'n metode van skikking.
Dit is egter meer spesifiek 'n eiendom van die skikking, wat is die rede waarom jy
kan gebruik om die dot-notasie.
Maar ek wil nie te kry in te veel van hierdie konseptuele dinge, wil ek net
om jou te wys hoe dinge sou lyk soos in Objective-C versus C.
>> En ook, wil ek daarop wys dat selfs al het ek het al met behulp NSUInteger
in die voorkant van al my i's in Objective-C, jy kan ook gebruik int, want int is
heeltemal geldig in Objective-C, ook.
Ja?
>> Publiek: Is dit net stilistiese, of is -
>> RHED SHI: Ja.
So, as jy sal sien -
so, die vraag is, is dat net 'n stilistiese kwessie.
As jy sien, ek het 'n, soort van, ster asterisk ding af aan die onderkant, en
die skakel neem jou na 'n Stapeloorvloei vorm, waar iemand verduidelik
die verskil tussen 'n int in NSInteger en 'n NSUInteger.
En so, kan jy daaroor later lees.
Hierdie skyfies sal wees, natuurlik, aan u beskikbaar.
>> Kom ons kyk.
OK, awesome.
So, dit is ook ingesluit in die skyfie want ek het gedink dit was 'n groot
webwerf wat stel jou doelstelling-C sintaksis.
So, eintlik, waarom nie ons skuif na Chrome en check hierdie webwerf?
>> Right.
So, wat ek wil om te wys ouens hier is om hierdie beeld.
So, dit is, soort van, gaan wees wat jy gaan om te sien binnekant van enige
Xcode lêer.
Eintlik is die rede waarom ons nie net 'n oomblik, soort van, neem hierdie in
>> So, hierdie boek -
dit is die voorwerp wat ons te doen het met.
En dan, dit is natuurlik gaan wees geërf het van 'n ander voorwerp, maar
jy hoef nie te bekommer oor dat.
En dan is dit dalk het sommige lid veranderlikes.
>> Die belangrikste ding wat ek wil om te wys is die geval metodes, hier.
So, is byvoorbeeld metodes aangedui deur die minus teken.
En dan, as jy sien, ons is reeds begin om die paradigma te sien
vir metode verklaring, reg?
Die opbrengs tipe, die metode naam, en dan is die tipe van die argument, en
dan is die naam van die argument.
En dit minus teken beteken dat dit 'n byvoorbeeld metode, wat beteken dat
hierdie metodes is slegs beskikbaar vir voorwerpe wat aangehaal.
>> Om dit te kontrasteer, metodes met 'n plus teken in die voorkant van hulle is die klas
metodes, wat beteken dat jy kan bel hierdie metodes, selfs as jy nie het nie
'n voorwerp geskep het nie.
So, vir 'n duidelike voorbeeld, NSString is 'n klas.
En jy kan bel, byvoorbeeld, klas metodes op NSString -
die werklike, soos, woord NSString.
>> Maar, ten einde dit te gebruik metodes, wat jy eintlik
'n string te skep.
Byvoorbeeld, NSString ster string gelyk by aanhalingstekens, hallo wêreld.
En dan, kan jy hierdie metodes gebruik -
byvoorbeeld metodes -
op daardie Hello World string.
So, wat is die verskil tussen byvoorbeeld metodes en klas metodes.
>> En ons het net hierdie deel gedek.
Eienskappe is 'n ander ding wat binnekant van voorwerpe, basies.
En jy verklaar hulle met die eiendom op navraag.
Jy het hierdie opsies, hier, dat ek later sal verduidelik wanneer
Ons gaan in 'n demo.
Ja?
Hi.
>> Publiek: Kan jy zoom in, asseblief?
>> RHED SHI: O ja.
Jammer.
>> Publiek: Dankie.
>> RHED SHI: Dit moet 'n baie beter wees.
>> Publiek: Ja.
Dankie.
>> RHED SHI: Ja, herinner my gerus indien Ek vergeet om te vergroot of zoom uit.
So, dit is al wat ek wou om te wys vir -
whoa, dit is 'n baie -
vir hierdie webwerf.
So, laat ons terug na ons skyfies gaan.
>> Eintlik, nou, laat ons neem 'n oomblik om te duik in 'n demo.
So, sal ons begin met 'n nuwe Xcode projek.
Dus, as jy oopmaak Xcode op al jou masjiene, moet dit jy 'n paar
bladsy waar dit sê, soos, óf oop 'n bestaande projek of 'n nuwe
projek, en jy moet klik op 'n nuwe projek.
En dan moet dit neem jy na hierdie skerm.
Ja?
>> Publiek: As ons nie 'n Mac, ons net soort van ontspan?
>> RHED SHI: Of kyk op met iemand, ja.
Ja.
Jy kan ontspan ook.
OK.
>> Dus, wat ons gaan doen eers, nou, is, eintlik, gaan ons doen om 'n
enkele uitsig aansoek.
So, as jy sal sien, wat is 'n groot oor Xcode en Apple ondersteuning vir
ontwikkelaars is dat jy het 'n baie templates om te werk met reeds.
Jy kan, byvoorbeeld, maak 'n meester-detail aansoek.
Jy kan 'n spel -
en eintlik, gaan ek nie in games, omdat speletjies is 'n ander storie
vir IOS-ontwikkeling.
En hulle is soort van skei, so ek sal nie daarop ingaan nie.
>> Dan moet jy bladsy-gebaseerde aansoeke.
Jy het 'n blad aansoek -
Dus, net soos, byvoorbeeld, die Bank van Amerika waarskynlik, soos 'n blad artikels.
Dit is die een waar jy die knoppies aan die onderkant.
En dan, jy het 'n Sprite Kit spel.
>> Of jy kan werk van nuuts af, wat is wat ons later sal doen.
Maar laat ons eers begin met 'n enkele uitsig aansoek.
Dan sal dit vra vir 'n produk se naam, en ons kan net doen toets.
Organisasie se naam -
so, die organisasie se naam, maatskappy identifiseerder -
dit is belangrik as jy gaan jou artikels te plaas op die app store.
Anders as dit, is jou kode gaan absoluut fyn loop sonder hierdie.
>> Dit gaan belangrik wees as jy wil - so, per se, soos, sit jou artikels
op jou selfoon of iets, en toets dit uit, jy weet, in die werklike lewe -
hierdie belangrike sal wees.
Dit is geneig om gewoonlik geassosieer word met 'n soort van 'n ontwikkelaar rekening
met Apple.
>> En so, ek weet, waarskynlik, 'n lot van julle sal nie enige ontwikkelaar rekeninge.
Ek weet dat die universiteit het een.
Ek dink CS een.
Maar, kan jy my e-pos en ek sal probeer dat om uit te vind vir jou.
Maar nou, ek het net sit in sommige bevat dinge hier.
>> En jy kan, natuurlik, hier, kies of jy wil om dit te wees uitsluitlik in
iPhone, iPad in, of albei -
universele toepassing.
So, vir nou, laat ons doen universele, net beide kante van die platform om te sien.
>> Kom ons kyk.
So, op die oomblik, ek gaan om te red dit in 'n soort van die gids.
Maak nie saak waar nie - jy kan altyd later skuif.
En nou, is ons gebring ons Xcode projek.
Ek sou nie bekommerd wees oor al hierdie dinge.
Ek wil voorstel nie oor enige van hierdie, tensy jy presies weet wat
jy doen.
So, al hierdie dinge, net ignoreer vir die grootste deel.
Jy sal nie nodig om dit aan te raak, en as jy doen jy gemors 'n paar dinge wat hier is, is dit
kry 'n bietjie lastig.
>> So, waarom nie ons kyk na die lêers op die
linkerkant in ons navigator.
Hier het ons AppDelegate.h.
Ons het AppDelegate.m So, as jy sal kennisgewing, het ons header lêers, wat
eindig in dot h, en ons het implementering -
eintlik, laat my zoom in
OK.
Laat my zoom in
>> Reg, so jy header lêers en jy het die implementering van lêers.
Eintlik -
OK.
Dit is 'n bietjie vreemd, maar met my dra.
Dan, want ons het gekies om 'n enkele uitsig aansoek, gaan ons te wees
werk met storielyn.
>> So, storielyn is iets wat Apple het met regtig help kom
ontwikkelaars vinnig prototipe hul aansoeke.
So, dit is waar jy kan skep 'n jeug sonder skryf van 'n
enkele lyn van kode.
Maar in ons enkele uitsig aansoek, ons nie, natuurlik, het 'n
lêer vir ons mening, wat is 'n oog kontroleerder.
So, ons het die kop en die implementering lêer, hier.
>> En, ek gaan om te vergroot nou uit, want ons sal moet werk in die storielyn.
So, hier is ons mening.
As ons, eenvoudig, loop die inligting op die oomblik, daar is nie veel opwindende aangaan.
So, sal jy hierdie wit skerm sien.
OK?
>> En in ons utilities gebied is, kan ons voeg 'n klomp van verskillende dinge om dit te.
Dus, wanneer jy met skerms in IOS, oog leiers is die
voorwerpe wat omsluit, soort, jou mening.
So, 'n oog kontroleerder altyd het 'n eiendom genoem oog.
En dat die oog, tipies, bevat, jy weet, wat jy
wil sien op 'n skerm.
>> So, goed, laat ons net begin deur om, miskien, miskien 'n etiket.
So, laat ons 'n etiket op daar -
plak dit in die middel.
So, nou dat ek het op die etiket, ek kan gaan in die eienskappe inspekteur
en begin die verandering van sy waarde.
Kom ons noem dit CS50 kleure.
>> En, kan ek ook die skrif verander.
So, in plaas van om stelsel, wat die standaard, kan ons doen om 'n persoonlike een.
Ons kan verander -
jy weet, ultra, maak dit 32.
En dan, kan ons ons boks groter.
>> Publiek: Het jy dink jy kan zoom in net 'n bietjie meer, miskien?
>> RHED SHI: Ja?
OK.
>> Publiek: Net tap dit?
>> RHED SHI: Kom ons kyk.
Werk dit?
>> Publiek: Net verby die Xcode?
>> RHED SHI: Natuurlik.
OK.
Awesome.
>> Publiek: Die etiket onder?
Die etiket?
>> RHED SHI: Wat is dit?
>> Publiek: Wat drop-down was die etiket onder?
>> RHED SHI: So, die vraag is, wat drop-down was die etiket onder?
Dit moet eenvoudig, onder hier.
Ek dink dit is 'n kubus ding.
Maar gewoonlik, dit is die standaard -
Ek gaan net hier totdat ek 'n etiket.
Ja.
>> So nou het ons ons etiket.
Kom se sentrum nie.
En Xcode gee ons riglyne vir sentreer voorwerpe.
So, laat ons nou loop ons weer code.
>> Daar gaan ons.
So, ons het CS50 kleure.
En nou, laat ons 'n knoppie op daar, reg?
Omdat ons wil maak hierdie interaktiewe.
So, laat ons 'n knoppie hier.
En ons sal hierdie knoppie "tap hier noem om voort te gaan. "Ons sal sentreer dit ook
Eintlik is dit reeds gesentreer.
Ja.
>> So, nou het ons 'n knoppie.
En as ons loop dit weer, ons gaan 'n mooi klein knoppie hier te hê.
En ek kan dit kliek, maar dit beteken nie enigiets nie, want ons het nie gedoen
enigiets met die knoppie nie.
>> So, laat ons 'n ander siening, reg?
So, kom ons sê ek wil kraan dat die knoppie en ek wil
gaan na 'n ander bladsy -
Nog 'n siening.
Wat ek gaan doen is, kan ek oog kontroleerder, reg?
Nou sal ek op my knoppie, en dan, die belangrikste ding is, ek gaan
kliek - of -
Ja, die pers beheer op my klawerbord.
Beheer.
Klik op die knoppie, en dan sleep.
>> So, onthou die beheer sleutel om vas te hou.
Kom ons doen dit weer.
So, hou beheer, kliek, en sleep na wat jy wil doen.
OK.
>> En nou, ek het 'n paar opsies hier.
Ek kan óf druk, of ek kan doen om 'n modal, of ek kan 'n persoonlike doen.
Druk is net as jy 'n navigasie kontroleerder.
Op die oomblik is, is ons heel eerste oog kontroles is nie in enige
navigasie kontroleerder.
So, die navigasie kontroles is die een wat gee jou die terug knoppie op
die IOS app waar jy het, jy weet, dat die top, soort van dik bar -
waar jy kan terug gaan, of vorentoe, ensovoorts.
Op die oomblik, ek het dit nie.
En so, dis hoekom ek nie kan doen nie 'n stoot.
>> So, Ek het op druk per ongeluk hier.
En eintlik, laat loop die kode, en dit moet crash op my.
Net as ek die knoppie druk al is, so -
reg.
So, is dit sleg.
>> En, soos jy kan sien, hier, ons het die fout boodskap.
So, "Push segues kan slegs gebruik word wanneer bron kontroles word bestuur deur 'n
geval van UI navigasie kontroleerder. " So nie, want dit was nie die binnekant van 'n
navigasie kontroleerder, Ek kon dit nie doen nie.
>> So, op die oomblik, gaan ek terug na die gids, gaan terug na storielyn.
>> Publiek: Wat is die navigasie kontroleerder, weer?
>> RHED SHI: So, nou het ek sal jou wys.
Kom ons kyk.
So, ek gaan om te klik op die oog kontroleerder, en dan gaan ek om te gaan
tot produk -
Eintlik, nee, jammer - redakteur.
En ek gaan om te gaan in -
Eintlik, het ek op dit?
No
Daar gaan ons.
Ek gaan om te gaan in die editor, gaan af in te sluit in, en dan navigasie
kontroleerder.
>> OK.
En, my werkplek lyk regtig slordig, so laat ons skoon te maak van hierdie up.
So, al is dit storielyn.
En op hierdie manier -
OK, stop -
Ek kan vinnig iets te bou soos hierdie.
En dan, nou kan ek terug te gaan, jy weet?
>> Maar dit is soort van saai, reg?
So, wat ek wil doen, is, wil ek nie te maak, net eenvoudig, 'n oog
kontroleerder.
Kom ons sê ek wou eintlik 'n Table View kontroleerder, sodat ek kan sit in
'n paar mooi kleure, in die tabel.
>> So, nou dat ek in my Table View kontroleerder, ek het dit nodig om terug te koppel
van hierdie knoppie om die oog kontroleerder.
So ek moet my beheer te doen, kliek, sleep ding weer.
En nou kan ek druk doen, want ek sluit dit binne 'n navigasie kontroleerder.
>> Publiek: navigasie kontroleerder net kan jy om te gaan van plek tot plek?
>> RHED SHI: Ja.
So, meer tegnies, dit is 'n voorwerp waar -
so, binnekant van die navigasie kontroleerder voorwerp, is dit
hou van 'n skikking.
En dat skikking hou al die daaropvolgende sien beheerders.
Dit is hoekom wanneer jy terug druk, is dit gaan terug na die vorige bladsy.
Omdat die navigasie kontroleerder voorwerp, of die kode wat sorg vir
hierdie voorwerp, het 'n skikking wat hou spoor van hierdie siening leiers, en
dan kan jy weet, DQ die oog kontroles en gee jou terug
vorige een.
>> So, dit is tegniese dinge, maar -
en ek sal jou later in die show kode, as ons tyd het.
Ek is soort van loop uit op tyd, maar -
>> So, met die Table View, wat ons kan doen is -
Dit is gewoonlik outomaties Dynamic Prototype -
ons gaan dit statiese selle te maak, anders gaan ons
loop in 'n paar probleme.
>> En dan, kom ons sê ek gaan een afdeling te hê.
So, afdelings is soos -
As jy nog ooit gesien het die musiek artikels, wanneer jy het kunstenaars, afdelings sou
wees om die A's deur Z's -
die letters -
En dan, jy weet, die individu rye sou wees om die kunstenaar name.
En so, wat is koel hier, is dat ek kan toegang tot al die voorwerpe binne
van my storielyn deur hierdie drop-down menu, ook.
>> So, ek gaan om te klik op my artikel, en ek wil hê, jy weet, miskien vyf rye.
En dan, binnekant van elke ry, Ek wil 'n etiket te sit.
En ek gaan dit Blue te bel.
En dan, ek wil 'n UI oog te sit, moet jy weet, miskien vir, soos 'n klein doos.
>> Sodat ek mense kan wys 'n voorskou van die kleur.
En ek sal terug na die eiendom gaan verander dat kleur te, o, ek doen nie
weet, hierdie een.
>> En dan, sien ook hier, en as ek ' die bykomstighede, kan ek baie het
van die verskillende toebehore dat jy gewoonlik sien.
Die bekendmaking aanwyser, die detail, of check merk, of eenvoudig net detail.
So, miskien kan ons doen, soos 'n bekendmaking aanwyser, byvoorbeeld.
>> En dan, waarom nie ons neem hierdie, kopie plak, en sit hulle in die
volgende ry in die tabel.
So, kan ons hierdie Yellow noem.
En ek mag hê dit uit te brei.
Kom ons maak dit geel.
En op hierdie manier, kan ons kopieer Plak ons ​​pad af.
Wat was dit?
Pers.
>> So, dit is al die tipiese CS50 kleure wat jy gesien het in die klas -
Eintlik is jammer -
of op die webwerf.
Hopelik sal jy ouens kan sien wat ek hier doen.
OK.
Laaste een.
>> Publiek: Hoe het jy voeg die ry aanvanklik?
>> RHED SHI: So, die vraag is, hoe het ek die ry aanvanklik?
Ek het in hierdie tabel artikel - of hoe ek kan
Kies die tabel artikel -
En dan, hier, ek opgedateer die aantal rye.
>> En, laat my hoop dat hierdie werk.
OK.
Kom ons kyk of dit werk.
O ja, volmaak, awesome.
OK.
Terwyl ek die opbou van my demo, sommige dinge is nie in lyn, so, dankie vir
die applous.
>> Ja.
So, laat ons sien.
Ons sal maak van hierdie nege net te maak alles - of eintlik, laat ons net
draai al hierdie in die bekendmaking aanwysers.
En dan, wat ek wil om te wys, te, was hoe ek elke van hulle kan neem
tafel rye en het hulle interaksie -
O.
No
>> Oh.
Ook, ek wil om te wys -
hier is, kan ek die titel van sit my navigasie kontroleerder, reg?
So eintlik, sal jy sien, so gou as ek ingeboude hierdie siening kontroleerder binnekant
van die navigasie kontroleerder, sien ons hierdie navigasie bar aan die bokant van ons
storyboard verteenwoordiging van 'n oog kontroleerder.
En so, dit gee ons, soos, 'n visuele, soort, lei na ons sigbare skerm.
Dit is natuurlik gaan wees om die navigasie bar.
>> En wat ek wil om vinnig te doen, nou, is sit in 'n ander -
so hierdie Table View kontroleerder Ek het deur neem een ​​van hierdie en dit te sleep
hier, en dit is wat my toegelaat om te vinnig, regtig, skep 'n Table View
kontroleerder.
As ons dit doen het die tyd al, sal jy sien dat programmaties, dit is 'n
bietjie meer moeilik om 'n tafel te skep oog kontroleerder, omdat daar
is 'n paar van die metodes wat wat nodig is vir jou om, soort van, skryf
in orde vir die Table View kontroleerder om korrek te vertoon.
>> Maar ek wil net om te wys, nou, 'n voorbeeld van waar, as ek hierdie,
byvoorbeeld -
Ek het sit in 'n ander oog kontroleerder.
En nou, kom ons sê ek wil om te beheer alt my heel eerste blou
ry in die tabel tot hier.
En ek wil dit Blue te bel.
En dan -
Kom ons kyk.
Ek is op die oog, en ek kan verander die agtergrond blou.
>> En so, kennisgewing, hier, hierdie drop-down menu gee jou ook 'n hiërargie van alle
van hierdie voorwerpe.
So 'n belangrike ding om daarop te let, hier, is dat al hierdie dinge hier -
hierdie Table View kontroleerder, die tafel View, Table View, artikel, Table View
sel - almal van hulle is voorwerpe, in die kode.
So, jy weet, 'n etiket is nou onder Die inhoud oog, ensovoorts.
So aan en so voort.
>> So, as ons loop hierdie kode, ons moet iets sien -
Kom ons kyk of dit - ja.
So, daar gaan ons.
Maar, as ons dit nie doen nie, geen van hierdie ander dinge werk.
Reg?
So net hierdie een werk.
En, ter wille van die tyd, sal ek nie gaan, jy weet, om
teen die ander kinders.
En dit is die einde van, soort, storielyn -
wat ek wou wys jy storielyn.
>> En ek het 'n uitgewerkte voorbeeld, eintlik, net hier.
So, dit is die storielyn wat ek gemaak het voorheen.
So, as jy kan sien, dit was my navigasie kontroleerder.
Toe het ek my eerste oog kontroleerder, dan het ek my Table View kontroleerder,
en dan het ek al hierdie -
sodat voorheen, was ek doen iets heel anders.
So, verskoon daardie dinge.
Ek sal waarskynlik dit skoon te maak voordat later Ek stuur dit af tot produksie.
>> Maar, as ons loop, sal ons sien dat al die opsies is
tot ons beskikking.
Behalwe ek het nie die agtergrond maak daardie kleure.
So, mooi eenvoudige toepassing.
>> Nou, laat ons probeer om aan te pak hierdie programmaties.
OK.
So, om dit te doen, ons is maar net gaan 'n nuwe Xcode projek te begin.
Ons sal dit 'n leë aansoek doen nou, omdat ons nie wil hê die
storielyn.
So, ek is net beperk myself nie die gebruik van enige van die storielyn, en 'n
leë aansoek nie gee my 'n storielyn.
Dit is net om te verhoed dat myself van bedrog.
Kom ons kyk.
Wag nie.
Het ek -
ja.
OK.
>> Right.
So, hier is ons gelaat met niks anders kode.
So, laat my skuif die venster effens oor.
Right.
As jy hier kan sien, is die enigste lêers ons gegee is AppDelegate.h en dot
m, en ons het nie 'n storielyn nie.
>> So as ons hardloop dit, ons is nog steeds gaan kry om die wit skerm, dank God.
OK - wit skerm, maar niks anders nie.
En hier is die belangrike deel.
Dit is waar die aksie plaasvind.
In die vorige weergawes, is daar gewoonlik nie die kode hier, maar die
storyboard wesenlik die kode vir hierdie deel.
Ek sal nie in detail oor hoe.
>> En wat ons nou wil doen, is om ons wil om te gaan in hier, en hierdie klein ruimte
begin die skep van ons jeug weer.
So -
ja?
>> Publiek: Zoom?
>> RHED SHI: Zoom.
Ja, seker nie.
OK.
Ek sal tik word, so moet dit nie aangeleentheid te veel.
OK.
>> So, in die eerste, onthou ons wou te skep 'n navigasie kontroleerder, reg?
En ook, as jy hier kan sien, Xcode doen 'n baie groot taak van die
self-vul.
So, as jy sien die name van alles is 'n baie langer as
gewoonlik, maar Xcode vul dit in vir jou.
So ek kan net druk enter.
>> So, ek wil 'n UI navigasie te skep kontroleerder wyser, en ek kan dit noem
navigationController.
Nou, wat doen ek nou?
Na hierdie gelyke teken, moet ek, in die eerste, skep dit binnekant van die geheue.
So, ek gaan NavigationController te doen alloc -
So, dit is soortgelyk aan malloc, dat jy ouens gebruik in C -
En dan, ek gaan om dit te init.
>> So, dit is werklik belangrik dat enige voorwerp wat jy maak, jy wil
alloc en init dit.
Dit gaan om dit te skep en instantialize dit binnekant van die geheue, en
nou kan jy dit gebruik.
Alle reg?
As jy dit nie doen nie, jou doel nie nie bestaan ​​nie, en jy sal loop in 'n klomp
probleme.
>> En dan, ek wil skep oog kontroleerder, reg?
So, ek wil 'n UIViewController te skep ster -
so, alles is 'n wyser in Objective-C, en ek gaan om te doen
iets soortgelyks, hier -
alloc, init.
OK.
>> En dan wat ek gaan doen is, ek is gaan - so, onthou wanneer ons gedoen het
die embed in navigasie beheerder?
Dit is hoe jy dit doen in die kode.
Jy gaan navigationController te doen
pushViewController -
>> Publiek: [onhoorbaar].
Sal dit gebeur vir ons nie, of -?
>> RHED SHI: O, ja.
No
Dit hou my beter.
Nee, sal dit werk vir jou ook.
So, dit is al die metodes.
So pushViewController is 'n metode en Ook, meer spesifiek, dit is 'n
byvoorbeeld metode van die UI navigasie kontroleerder.
Want ek het my UI navigasie te skep kontroleerder ster, en dan het ek
kan hierdie pushViewController 'n beroep op my spesifieke geval van 'n UI navigasie
kontroleerder.
>> Publiek: Het ons die presiese te doen woord, of is dit reeds, want dit bestaan ​​nie?
>> RHED SHI: Ja, want dit is 'n metode.
Dit is soos 'n funksie.
Dit is soos printf.
Dit is soos scanf.
Dit is soos strcompare.
Behalwe dit weet wat jy dalk wil tik, en let op dat dit sal altyd
kom met dinge wat wettig toegelaat vir jou.
So, as daar niks wys hier, dan is daar iets verkeerd is.
>> So, pushViewController.
So, nou, ek wil stoot my nuutgeskepte
UIViewController, en dan, geanimeerde -
miskien nie.
Omdat dit gaan wees die eerste oog kontroleerder.
Ek bedoel, selfs al het ek geanimeerde maak, dit sal waarskynlik nie opdaag nie, want
dit is die eerste skerm.
>> En onthou die hakies.
So, onthou hoe ons die hakies?
En die hakies, die voorwerp 'n beroep op 'n metode -
sodat ons doel is om die navigasie kontroleerder, en die metode is 'n druk
oog kontroleerder geanimeerde.
En kyk hoe dit neem in twee argumente, en hulle is geskei deur die, soort van,
woorde, en 'n kolon.
So, Objective-C probeer om dit mooi te maak en maklik vir jou hardop te lees -
jou kode - en dit semi, soort, maak sin.
>> Maar doen net hierdie is nie genoeg nie.
Laat my zoom nou uit.
Doen net dit is nie genoeg om te kry wat ons het aan voorheen.
So hier is, sal jy sien dat daar eintlik nie van plan om enige soort van te wees
bar, hier, reg?
Daar is geen navigasie bar, wat beteken dat ons nog steeds nie gekry het nie.
>> En ons kan toets wat ook deur, miskien, die verandering van die agtergrond van
ViewController, reg?
ViewController.background--
ah.
So, sien hoe ViewController het nie 'n agtergrond kleur, selfs al het ek
wou dit om toegang te verkry?
En dit is omdat ViewController is 'n houer vir die oog.
So, dit het 'n oog eiendom, wat dan het 'n agtergrond kleur.
>> En, kan ek dit stel, soort van tediously, deur die roeping van die kleur
op die UIColor voorwerp.
So, kennis hier, redColor is 'n metode.
Dit is 'n klas metode van UIcolor.
Want ek het nie 'n te skep werklike geval van 'n UIColor in orde
die metode om 'n beroep op dit.
Ek het net eenvoudig, noem dit van die tipe-agtige naam.
Ek, soos, noem dit op int, as int het, soos 'n metode om dit, byvoorbeeld.
>> En so, as ons loop hierdie kode, ons sal sien dat die agtergrond is
eintlik nie rooi nie.
Dit is nog steeds wit.
En hoe ons kan kry om dit is, sien hoe daar die self.window.
Dit is, soos die uiteindelike houer vir jou aansoek.
Dit is die uiteindelike ding wat bevat alles op die skerm, vir 'n
iPhone of iPad aansoek.
>> En, gerieflik, self.window het hierdie eiendom genoem
rootViewController.
En wat gaan die wyser te wees die heel eerste oog kontroleerder binnekant
van jou jeug.
So, wat ons hier wil doen, nou, is wat gelyk is aan ons navigasie te stel
kontroleerder.
Reg?
Omdat, tegnies, navigasie kontroles is ons heel eerste oog
kontroleerder.
Dit hou van 'n verskeidenheid van ander oog leiers, en ons gestoot hierdie
oog kontroleerder in daardie skikking in die navigasie kontroleerder.
>> So, jy wil nie om dit te doen.
Dit sou werklik nie help nie.
Jy wil om dit te doen, as jy wou doen 'n navigasie-beheerder, wat die meeste
van julle sal waarskynlik omdat jy wil te, soort van, 'n soort van,
soos, menu terug te gaan na of 'n tuisblad om terug te gaan, eerder as 'n
leë skerm.
Ja?
>> Publiek: Is dit ongemaklik vir jou om te zoom in op die -
>> RHED SHI: Ja.
So, ja.
Dit is die kode, en nou Kom ons toets dit uit.
>> So, daar gaan ons.
Magic.
So, OK.
Dankie.
OK.
So nou, wat ons wil doen, is - so, ons soort van beperk, hier, reg?
Ons kan potensieel alles skryf binnekant van die een funksie.
Maar dit is nie hoe IOS-ontwikkeling werk gewoonlik.
>> Dus, wat ons gaan doen, is om ons gaan 'n paar nuwe lêers te skep.
Maar, meer spesifiek, gaan ons skep Nog 'n doelwit-C-klas, of
'n ander voorwerp -
klas en voorwerpe is verwissel hier.
En hier is hoe ek kon, potensieel, skep 'n ander klas van U beheerders.
>> So, dit is 'n sub-klas, as jy sien, hier, dit is 'n sub-klas van die
UI oog kontroleerder, maar ek kan noem dit 'n ander naam hier.
Ek kon dit CS50 noem, kan ek noem hierdie siening kontroleerder, kon ek roep
hierdie blah oog kontroleerder -
iets wat ek wil hê.
Dit is net die naam vir die klas.
Maar dit gaan belangrik wees omdat, in wese, wat ek doen
hier is, ek moet skep 'n ander klas se naam.
So, dit gaan wees, soos sommige soort van tipe of 'n voorwerp.
So, moet dit 'n bietjie generiese.
Dit gaan nie om te wees baie spesifiek.
>> En ook, wil ek wys uit hierdie twee opsies.
Omdat ons doen alles wat binne kode, soms is dit 'n baie makliker
te bring in 'n koppelvlak lêer, sodanig dat Ek kan letterlik sleep en, as
Ons het vroeër met storielyn -
jy weet, 'n etiket, of 'n knoppie, of wat ook al anders.
En so, xibs is lêers wat u toelaat om doen nie, en jy het om dit te haak
hierdie siening kontroleerder lêer.
>> So, ek gaan om doelbewus nie seker nie.
Gewoonlik sou ek check dit en as ek net het dit vir iPhone of iPad, ek
sou check dit en net een Want jy weet, die iPhone of die iPad.
Maar sedert ek doen universele, ek gaan twee van daardie te skep later.
So, ek gaan om doelbewus afskakel.
>> Dit is ook baie belangrik.
Daar is baie keer, ek het foute waar dit is nie nagegaan.
En so, natuurlik, hierdie lêer is nie, soort van, soos, ingesluit of ingevoer
binnekant van die toets gids.
En so nie, my kode het absoluut geen idee van die bestaan ​​van hierdie lêer, en
wat veroorsaak dat 'n baie pyn en ure van debugging.
Maar, maak net seker dit is so nagegaan dat, jy weet, is die teiken van hierdie
lêer is vir hierdie program.
>> OK.
So, nou het ons twee nuwe lêers geskep.
En hierdie lêers mooi kyk leeg.
En eintlik, laat ons ook voortgaan deur die skep van die XIB lêers.
So, voorheen, was ek in die Kakao Touch drop-down.
Nou, ek gaan om te gaan in die gebruiker Interface raak, en soos jy kan sien, het ek
kan 'n storielyn skep.
>> So, selfs ek begin met 'n leë aansoek, kan ek nog steeds gebruik om 'n
storielyn.
Alhoewel, dit raak moeilik in terme van hoe jy wil om aan te sluit
wat aan jou kode.
So, ek sal nie daar gaan nie.
>> Maar, wat ons wil doen nou is die skep van 'n oog.
En jy kan kies vir 'n iPhone of 'n iPad.
En tipies, om aan te dui die verskil - as jy doen 'n
universele toepassing -
jy óf sit 'n underscore iPhone, of jy kan doen 'n Twiddly.
Dit maak nie regtig saak nie.
Dit is net vir jou om te onderskei wat die oog is vir wat toestel.
>> En so, kyk nou.
Ek het 'n skerm wat ek kan werk.
En so, byvoorbeeld, kan ek 'n etiket sit hier, jy weet, en ek kan ook '
'n ander knoppie hier.
Ek sal nie die moeite te verander die waardes hier.
>> Maar wat belangrik is hier is dat die lêer se eienaar -
So, ek is binnekant van die iPhone oog, iPhone XIB lêer.
En in hierdie navigasie gebied of drop-down menu, ek wil om te gaan na die
lêer se eienaar.
En dit is die regtig belangrike stap hier.
Ek wil die klas siening te maak kontroleerder, sodat hierdie XIB lêer
gaan wees wat verband hou met my oog kontroleerder.
En enigiets wat ek doen in my oog kontroleerder programmaties is
gaan verskyn op hier.
>> So, egter agterkom dat -
eintlik, laat ons hierdie siening agtergrond blou, byvoorbeeld.
Of groen.
En dan, so as jy sien, terug in hierdie kode, dit is waar dat ons aan ons
navigasie kontroleerder.
>> Selfs al het ons die stap, is dit nog aan die gang rooi, nie groen te wees.
En daar is 'n rede waarom.
Dit is omdat, wanneer ons inited Ons is van mening kontroleerder, hier -
Jammer, dit is 'n bietjie mal -
wanneer ons inited ons mening kontroleerder hier, ons inited dit van die algemene tipe
UIViewController.
OK?
So ons het nie eens doen dit met die klas.
>> So Onthou, dit is soos 'n klas nou.
Dit kan beskou word as 'n tipe, net as UIViewController is 'n tipe.
En om dit te gebruik, wat ons nodig het om te doen is om die invoer van dit -
invoer ViewController -
en, soos jy kan sien, is dit autofills dit vir my.
So, ViewController -
En nou, hier, ek kan dit verander UIViewController te ViewController.
En nou, hier, kan ek verander om dit te ViewController.
>> Kom ons loop dit weer.
Dit is nog rooi.
En die rede waarom dit is nog rooi is omdat -
Woah, wat daar gebeur het?
Ons wou dit XIB te assosieer 'n lêer met die oog kontroleerder.
Maar, ten einde om werklik te doen dat ons nodig het om te gaan in hierdie.
En wanneer ons die init, ons wil doen initWithNibName, en dan wil ons
doen die by string View_iPhone, byvoorbeeld.
Jy kan die bundel hier ignoreer.
>> En dit gaan toelaat ons, eintlik -
uh O, daar is 'n probleem.
Right.
>> En so is daar 'n probleem, want in Ons is van mening XIB lêer, ons het 'n etiket en
ons het 'n knoppie.
Maar selfs al het ons verbind hierdie twee, daar is niks binnekant van
ViewController.h of ViewController.m wat weerspieël die
knoppies of daardie etikette.
So, moet ons mense in te skryf eienskappe van die oog kontroleerder.
>> So, dit is hoe jy verklaar 'n eiendom.
Dit neem in, gewoonlik, hierdie twee opsies.
Vir die doel van ons en hierdie seminaar Ek sou sê dat, in die algemeen,
die meeste eienskappe is nonatomic en te behou.
Jy kan lees deur Google soek, jy weet, die verskil tussen
nonatomic en te behou, mag jy weet, Google of iets.
En Ek sal jou neem na, soos, stapel Oorloop, waar mense sal
antwoorde vir die verskille tussen diegene.
Maar vir nou, dit is wat ons wil betrokke word.
>> En ons wil 'n UI etiket, ster te maak, en ons kan dit noem wat ons wil hê.
Ons kan noem dit, jy weet, etiket.
En, sal ons skep 'n ander een vir die knoppie.
En onthou die asterisk te sluit, omdat ons te doen het met wysers
pretty much orals binne van doelstelling-C.
>> Maar dit sal nog steeds nie opgelos Die probleem, soos jy hier kan sien.
En die rede hiervoor is omdat, wanneer ons wil 'n XIB lêer etiket of 'n aan te sluit
knoppie aan die program, of die kop en implementering lêer, wil ons
voeg hierdie stukkie van die kode -
uitlaat.
Let daarop dat dit 'n sleutel woord.
>> En, so gou as ek klaar tik wat uit is, moet dit dié het
twee sirkels, hier.
Gewoonlik is dit nie ingevul
Ek is nie seker hoekom hulle is.
Maar gewoonlik is, sal jy met die hand te hê verbind hulle deur te gaan na hierdie kant van
die utilities gebied.
>> En ja, reg nou, ek het my etiket gekies, en ek wil hierdie nuwe te sleep
verwysing uitlaat na my lêer se eienaar, en klik op Label.
So nou, uiteindelik, hierdie etiket word verbonde aan hierdie etiket.
En hierdie etiket is wat ons gaan programmaties gebruik om te verander sy
teks, die lettertipe, die agtergrond kleur, ensovoorts.
>> So, hoekom nie ons doen om die Dieselfde geld vir die knoppie?
En as jy sien, vir die knoppie, dit is 'n bietjie meer ingewikkeld.
Omdat, ek bedoel, jy veronderstel is om te druk op 'n knoppie, so dit is 'n baie
opsies vir hoe gebruikers kan druk op 'n knoppie.
En dan, sal ons later sien op dieselfde ons dit kan koppel aan ons
kode te maak dit werk.
>> So, vir nou al, wil ons aan te sluit dit is aan die werklike knoppie
binnekant van ons kode.
So gaan ons na die nuwe verwysings uitlaat, en doen dan die knoppie.
Nou, laat ons loop dit weer.
Uh oh.
OK.
Ek weet nie wat hier aangaan nie nou.
Whoa.
Net 'n oomblik, hier.
>> Eintlik, waarom nie ons neem 'n kyk na nog 'n voorbeeld in
die belang van die tyd.
OK.
So, hier is die meer geredelik bereid voorbeeld vir ViewController.
As jy hier kan sien, het ek 'n die eienskappe vir die
etiket en die knoppie.
En dan, hierdie stuk van die kode hier -
hierdie IBaction -
was 'n verbinding met die knoppie hier.
So as jy hier kan sien, Touch Up Binne is verbind tot die selector
genoem knoppie gedruk.
>> Dus, kan ons eintlik gaan deur die beweging weer hier, deur die neem van Touch Up
Binne en dit te sleep na File se eienaar, en dan
Klik op die knoppie gedruk word.
Nou, laat ons loop ons kode.
So nou, hierdie knoppie werk nou en sal ons na die volgende bladsy.
>> En, in terme van ons oog kontroleerder, dit is die stuk van die kode wat plaasgevind
versorging van die knoppie gedruk.
En dit is belangrik om daarop te let dat Ek het 'n ander tipe van die oog
kontroleerder genoem 'n tafel oog kontroleerder.
So, dit was soortgelyk aan terug in storielyn, toe ek gesleep een van
hierdie Table View controllers in die storielyn.
Ek is die skep van 'n ander
>> Wyser na die Table View kontroleerder, alloc en init-ing, en dan doen
self dot navigasie kontroleerder, stoot ViewController, hierdie nuwe
viewController.
En ek het vasgestel die animasie te ja, want nou binnekant van my jeug, en Ek
wil eintlik sien die animasie gaan van die tuisblad na die tafel
oog kontroleerder.
>> Publiek: Het jy nog bekommerd oor vullisverwydering?
>> RHED SHI: Wat is dit?
No
So, die vraag is, het jy om te werk met vullisverwydering?
So, Xcode 4 het soos ARC, wat outomatiese verwysing tel.
En so, gewoonlik wanneer jy begin om 'n nuwe projek, sal jy seker maak dat, omdat
niemand regtig wil om te gaan met bevry geheue en dinge.
Maar ek dink in Xcode 5, daar is selfs nie dat die opsie op die nuwe projek.
So, is dit outomaties doen dit vir jou.
Ja?
>> Publiek: Kan jy uitvoer van 'n PDF in jou storielyn?
>> RHED SHI: Ja, beslis.
So, al hierdie sal ingesluit word in bron-kode, sodat julle kan sien
die werklike Xcode projek vir dit.
Ja?
>> Publiek: Maar, ek bedoel, wil, kan ek druk 'n PDF met my storielyn?
As ek wil net die uitvoer van die beelde om iemand te wys.
>> RHED SHI: O ja.
Ek dink, miskien, kan jy net neem 'n kiekie.
Ja, en stuur hulle 'n skerm geskiet of iets.
Ja.
>> So, laat ons sien.
In die belang van tyd, dink ek dit is al l kan vandag dek.
Maar, ek weet dit is eintlik net skaars raak die oppervlak van IOS
ontwikkeling.
So, voel asseblief vry om my te kontak indien u enige vrae oor IOS
ontwikkeling.
En, hopelik, sal ek in staat wees om skoon te maak 'n paar van die kode vir die bron
kode lêers, sodat jy het 'n paar baie mooi voorbeelde te werk.
>> Anders as dit, as jy ouens gaan die CS50 Hackathon, mag ek of mag
nie daar wees nie, en ek kan jou help om uit met 'n paar IOS-ontwikkeling, ook.
So, baie dankie, ouens.