>> RHED SHI: Bonvenon vidi CS50 seminario -
Enkonduko al IOS.
Dankon ĉiuj por veni.
Mi esperas ke vi estas justa tiel ekscitita kiel mi pri IOS.
Lasta jaro, mi prenis CS50 kiel sophomore, kaj mi esence lernis IOS por mia
fina projekto.
Kaj gxi estis bela -
bone, tio ne estis facila, sed estas multan subtenon lernilojn rete.
Kaj mi vere esperas, ke kun tiu seminario, mi donos al vi uloj kapo
komencu IOS evoluo
>> Do, en terminoj de IOS disvolviĝo, ekzistas du ĉefaj aferoj ni
volas kovri hodiaŭ.
Unue, la lingvo -
la lingvo tuj estos en Objective-C. Ni efektive aŭdi
io vere ekscita.
Do, vi povas aliĝi al la tuta Apple komunumo de programistoj kaj konstrui iun
vere awesome apps.
>> Ankaŭ, IOS 7 estas bela, espereble, al iuj el vi.
Sed estas polemika, mi scias.
Kaj ĉefe, kion mi volas fari, estas gvidilo vi per Objective-C, kaj ankaŭ
Xcode, kiu estas la integrita evoluo medio kiu vi estos
laborante en por IOS.
>> Kaj do, ĝuste unu vorton pri Objective-C. Esence, ĝi estas la ĝusta sama kiel C,
sed kun multaj aliaj aferoj.
Kaj do, pli strikte, ĝi estas reale super-aro de C. Do, frazoj, kiujn vi
povas fari en C ĝuste nun, kio estas esence like pset 0 tra 6, vi
povas fari en Objective-C.
>> Do, ne sentas timon pri tiu nova lingvo kiun vi tuj lerni.
Vi jam kovris multe de ĝi, ĉar vi ĉiuj faris C tiu pasinteco
semestro, krom nun vi iras havi multe pli labori.
Kaj mi simple tuj kondukos vin tra kelkaj ekzemploj por reliefigi iun
el la ŝlosilaj diferencoj kiuj mi trovis estis vere grava kiam mi lernis
Objective-C pasintjare.
>> Nu fakte, tial, la alia punkto Estas, Objective-C estas, evidente,
object-oriented.
Kaj ni vidos diskuti iomete pri kio tio signifas, poste.
Esence, ĝi estas kvazaŭ kiel vi laboris kun structs en tiu pasinteco pset, kun
nodojn kaj similaj aliaj aferojn tiel.
Escepte, en Objective-C, ĉiu estas objekto, kaj vi tuj estos
pasante ĉirkaŭ montriloj al objektoj anstataŭ la valoroj sin.
Do, estas nur io grava teni en la menso.
>> Do, kial ni ne komencu per kelkaj diferencoj en sintakso inter C kaj
Objective-C?
Mi volas reliefigi la # include, vi scias, norma io.h en C kaj C + +, kun
la Objective-C versio de tiu, kiu estas # importadon, kaj tiam ian
kaplinio dosiero.
En ĉi tiu kazo, estus UIKit, vi scias, oblikvo UIKit.h.
Ĝi povus ankaŭ esti, vi scias, MKMapview al vi oblikvo MKMapview.h se vi volas
fari, kiel, mapo ene de via app.
Similaj aferoj tiel.
>> Do, la grava afero estas inkluzivi nun ŝanĝis por importi.
Sed la ideo ankoraŭ restas.
Vi tuj estos importante ian de kaplinio de dosiero en vian programon.
>> Mi ankaŭ volas rimarki la diferencon inter printf kaj NSLog.
Tamen, kiel ni diris antaŭe, Objective-C estas strikta super-aro de
C, kio signifas, ke printf ekzistas en Objective-C, tro.
Sed, la plej multaj homoj ne uzas tion.
Plej multaj homoj uzi tiun NSLog ĉar ĝi donas al vi tempon sigelilo, kaj ni vidos
ĝin en ago poste.
Sed, estas ĝenerale pli utila maniero por presi variabloj.
>> Kaj mi ankaux volas substreki ke NSLog prenas en ĝuste la sama
lokokupilo valorojn kiel printf faras -
tiom% d estas por int, % F estas por kaleŝego.
Tamen, mi volas reliefigi ĉi lasta oni -
NSLog% ĉe-signo -
ke estas lokokupilo por objekto.
Kaj kiel mi diris antaŭe, Objective-C traktas pretty much plejparte en celoj,
kaj tiel tiu venos en uzo, kiam vi deziras printi, eble, eble oni
NSArray aux NSDictionary, aŭ NSString.
>> Do, ankaŭ, rimarki ke, en nia NSLog deklaro, ni havi ĉe-signo antaŭ
de la citaĵo -
kiu estas por signifi ke kordoj, nun, en Objective-C estas objektoj.
Ili ne plu estas simple char steloj.
Ili estas objektoj, kaj estas traktataj kiel tiaj.
>> Do, ĝi estas vere grava, ke kiam vi uzas NSLog prenas en NS
kordo, kio signifas, ke vi devos inkludi en antaŭ viaj
citiloj.
Kaj tio estas kial vi vidas, ĉi tie, en ĉiuj mia funkcio vokas al ĉi NSLog, mi
havi je antaŭ la citaĵoj, eĉ Kvankam la% d kaj la% f informojn estas
Tutegale de C.
>> Demandojn ĝis nun?
Mi provos iri tra tiu rapide tiel ke ni povas havi pli da tempo por labori
kun Xcode kaj Objective-C, tiel ke vi uloj povas akiri pli
familiara kun ĝi.
>> Tuj poste, mi volas substreki ion koncepte grava.
Do, en C, plej aferoj estas funkcioj.
Ni faru funkcio nomita.
Ni deklaras funkcioj ĉi maniero, kun la reveno tajpi unue, tiam la
funkcio nomo, krampoj, kaj poste kion ajn argumentoj kaj la tipo de
tiuj argumentoj ni volas pasi in
Kaj Objective-C, ĉar ĉiu estas objekto aŭ klaso -
tiel klaso kaj objekto estas du terminojn kiuj estas plejparte sinonimo ĉiu alia,
tial mi povas uzi ilin interŝanĝebla tra la seminario.
>> Sed, vi vidos, ke ni havas metodojn en Objective-C anstataŭ funkcioj.
Kaj metodoj aparteni al objektoj.
Do same, eble preni ekzemple, nodo -
nia tipo [inaudibles]
nodo de pset 6 aŭ 5 -
ni havas la vorton, proprieto, aŭ la sekva nodo montrilo.
Metodoj estas simple funkcioj ene de iu speco de strukturo.
>> Do, en tiu kazo, la strukturo estus la objekton, kaj poste la metodo estas
ion, kio apartenas al objekto.
Kaj jen kiel vi deklarus, ia, metodo.
Vi devus starti kun, denove, la reveno tipo - do, mi provis koloro
Kodo la ŝlosilaj vortoj ĉi tie por ke vi uloj povas vidi la, almenaŭ, formatado
similecoj inter funkcio deklarojn kaj metodo deklaroj.
Do, vi komencas kun, vi scias, reveno tipo - en tiu kazo, estas tabelo, aŭ
an NSArray montrilo -
kaj tiam vi havos tiun metodon.
Kaj tiam, kio estas interesa ĉi tie estas ke anstataŭ havi krampoj, ni
havas tiujn dupunktojn.
Kaj tiam, antaŭ niaj argumentoj, ni meti, denove, en parentezoj la tipo
de nia argumento.
>> Do, nun mi provas fari la komparo inter, vi scias, n kaj
nombro, ĉar ili estas ambaŭ kiel ints.
Kaj poste, la alia unu Estas NSUInteger tipo.
Kaj tiam, kun Objective-C, kiam vi volas havi plurajn argumentojn en
via metodo klaŭzo, vi, ia, apartigi ilin el ia kiel tiu -
Mi ne estas tute certa kiel priskribi ĝin, sed ĉi tiu estas bona ekzemplo de kiel vi
povas havi plurajn argumentojn en tie.
>> Vi povus, kompreneble, nur tute ignori la andArray dupunkto NSArray
tabelo, se vi volas nur metodo kiu portas en unu argumento.
Jes, demando.
>> Spektantaro: Ĉu ambaŭ NSUInteger kaj NSArray argumentoj kiuj povas preni en
ene de la NSArray?
>> RHED SHI: Jes.
Do, lasu min klarigi.
Do, jes.
Do, la demando estis estas NSUInteger kaj NSArray * tipoj de la argumentoj,
kaj tio estas korekta.
Do, vi ĉiam volas specifi kion la tipon de via argumento estas.
Kaj tie, mi provas prezenti vin al kelkaj el la sintakso kaj vocab de
Objective-C, do tiuj estas realaj tipoj ke vi estos kontraktanta kun.
>> Kaj kiel vi rimarkos, arrays ne plu estas, speco de,
simpla krampo aferojn.
Ili estas objektoj.
Kvankam, se ni iros al la venonta glito, ni povas vidi, ke ni povas
hard-kodo oni NSArray en Objective-C kun simple ĉe simbolon antaŭ
la krampoj.
Mi ne estas, reale, tute certas ĉu Mi sintakse hard-coded tabelo
ĝuste por la C versio, sed tio estas supozitaj esti en C tabelo.
>> Do, jen kiel vi estus, vi scias, eble uzu la funkciojn aŭ la
metodoj kiujn ni kreis pli frue.
Ĝuste?
Do, ĉi tiu estas kie ni deklaras nian funkcio kaj nia metodo.
Kaj nun ni volas uzi ilin en nia programo, kaj tio estas
kiel ni farus gxin.
Do, en C, oni havus, vi scias, eble, bool b, kaj vi metos tion al
egali la funkcio, kaj poste vi pasas en la argumentojn.
>> En Objective-C, ĝi estas bela tre la sama afero.
Vi havas NSArray * my_array, kaj ĝi estas irante egali - nun, la sola
malsamojn tie estas cxi objekto aferon, kiun mi reliefigis en flava, kaj
kiel vi povas vidi, en C, estas neniu alia flava vorto.
Kaj ĝi estas ĉar metodoj aparteni kun iu objekto.
Tial estas kial mi devas havi objekton ke, ia, nomas tiun metodon en
la nombro nulo, kaj poste la NSArray a, b, c, d.
Demandojn pri tio?
>> Ni vidos tiujn konceptojn en agado baldaux, kiam ni iros en demo.
OK.
Nun, mi volas paroli iom mallonge pri Xcode 5, kiu estas la
integrita evoluo medio ke vi laboros kun.
Mi scias multon pri vi, nek iu el vi, ne havas Mac, kiu estas problemo
ĉar Xcode ne haveblas por Vindozo kaj PC.
Ne demandu al mi kial, sed verŝajne -
yeah, korporacia.
Kion ajn.
Sed ĉiukaze, do, mi pardonpetas se kelkaj el vi devas elŝuti ian
virtuala maŝino por Mac en Por kuri Xcode 5.
Sed ĝi estas bela nifty softvaron por uzi.
>> Kaj do, antaŭ ol ni plonĝi en ajnan specon de demo, mi nur volas montri al vi
bildo de kio Xcode aspektas same kiel en via fenestron, kaj tiam ankaŭ paroli pri
kio estas tiu tuta spaco estas.
Do, ĝi estas speco de kiel lerni kiel uzi Microsoft Word, krom vi volas
get familiarizada kun ĉiuj malsamaj aferoj
iras sur ĉi tie.
>> Do unue, mi volas atentigi vin al la ilobreto ĉe la supro.
Vi vidos ke, ĉe la supro, vi havas la dosiero nomo -
aŭ, fakte, via projekto nomo kaj tiam via dosiero nomon.
Prenu noto de la teatraĵo kaj skalon butonoj.
Tiuj estas kiuj vi estos uzante kuri via app en la
simulilo -
la IOS simulilo.
Ĉi aŭtomate venas kun Xcode 5, tial vi ne devas zorgi pri
elŝutante ian simulilo.
Vi nur premi ludita kaj tiam kuras vian programon.
Kaj vi povas ludi ĉirkaŭe kun vi, kaj vi vidos kiel funkcias poste.
>> Kaj tiam, en la centro, kompreneble, estas kie ĉiuj viajn belajn kodo
tuj iros.
Kaj poste, je la maldekstra flanko, vi havas tiun, ia, dosierujo -
navigado -
kaj tiam, vi ankaux vidos, ke, kune kun la dosierujon ikono, estas
faskon da aliaj ikonoj tie Estos utila poste.
>> Kaj poste, je la dekstra flanko estas ilo areo kie vi povas labori kun
kelkaj el la celoj kaj specifi, vi scias, kio estas la koloro devas esti, kion
la teksto tiparo devus esti, kaj tiel plu.
Kvankam, ĉiun ke vi faru en la utilecon areo, vi povas
fari en kodo tiel.
Kaj do, mi povas iri per du ekzemploj de la uzo, simple, ne kodon ĉe
ĉiuj - aŭ tre minimumaj kodo -
versoj ĉiu kodo, nur por ke vi uloj scias kion vi povas kaj ne povas fari en
Xcode kaj Objective-C.
>> Kaj poste, fine, sube ĉe la malsupro, vi havas la erarserĉilo areo.
Do, vi ne plu devas kuri GDB, kaj tiel plu, sur viajn programojn.
Ĝi aŭtomate faras ĝin por vi.
Kaj vi povas ankaŭ printi uzatajxojn, por tiu zono.
Do efektive, poste, ni iros tra mario.c, se vi uloj ankoraŭ memoras
ke, en Xcode.
Por ke devus esti amuza.
>> Kaj tiam, nur por porti ĝin al Objective-C, mi volas reliefigi kia
vi povas fari kun se deklaroj.
Do, vi scias, ĉar Objective-C estas superaro de C, ĉion kion vi faras estas,
laŭvorte, la sama kiel C. Vi nur havas malpezajn diferencoj.
Do, vi rimarkos la formon por se deklaro estas ankoraŭ la sama - oni havas
se, kaj tiam vi havos parentezoj kun kondiĉo ene de, kaj poste
krispa krampoj por kiaj vi ĉu por fari interne de tie.
>> Tamen, mi volis meti ĉi glito supren tien, simple por ilustri ke,
ĉar ni pritraktas objektojn nun, ni devos uzi tiujn aferojn
nomata kiel, estas egala al ŝnuro, kiun Estas, hazarde, metodo de
ŝnuro aŭ NSString objekto.
Do, vorto, en ĉi tiu kazo, estas NSString kontesti, kaj ĝi havas metodon nomitan estas
egala al ŝnuro, kaj poste ni pasis en hard-coded kordo vidi
cxu tiuj estas egalaj unu al alian.
>> Demandojn ĝis nun?
OK.
Kaj, mi volas iri super a por komunikaĵo ankaŭ.
>> Do, ekzemple, se ni volis buklo super la longeco de kordo en C, tiu
devus esti konata al vi.
Kaj, Objective-C, mi ne volas por reliefigi tion, ia,
metodo nomata grafo.
Nu, fakte, lasu min nur prenu ke dorso.
Grafo estas metodo de tabelo.
Tamen, ĝi estas pli specife posedaĵo de tabelo, kiu estas kial vi
povas uzi la skalara skribmaniero.
Sed mi ne volas eniri en la tro multa de tiu koncepta stuff, mi volas nur
por montri al vi kiel tio aspektus kiel en Objective-C kontre C.
>> Kaj ankaŭ, mi volas atentigi ke eĉ se mi estis uzante NSUInteger
fronte al ĉiuj miaj i estas en Objective-C, vi povas uzi ankaŭ int, ĉar int estas
plene valida en Objective-C, ankaux.
Jes?
>> Spektantaro: Ĉu nur stila, aŭ estas -
>> RHED SHI: Jes.
Do, kiel vi vidos -
do, la demando estis estas, ke nur stila demando.
Kiel vi vidos, mi havas, ia, stelo asterisko afero malsupren ĉe la malsupro, kaj
ke ligilo prenas vin al Stack Overflow formi, kie iu klarigas
la diferenco inter int en NSInteger kaj NSUInteger.
Kaj do, vi povas legi pri tio poste.
Ĉi tiuj diapozitivoj Estos, kompreneble, disponebla por vi.
>> Ni vidu.
OK, awesome.
Do, ĉi tiu estas ankaŭ inkluzivita en la tobogano ĉar mi pensis, tio estis granda
retejo kiu enkondukas vin al Objective-C sintakso.
Do, fakte, kial ni ne movi Chrome kaj kontrolu ĉi paĝo?
>> Ĝuste.
Do, kion mi volas montri al vi infanoj tie estas jena bildo.
Do, tiu estas, speco de, tuj estos kio Vi tuj vidos interne de iu ajn
Xcode dosiero.
Fakte, kial ni ne simple prenu momenton por iel, prenu tiun in
>> Do, ĉi tiu libro -
tio estas la objekto, kiun ni pritraktas.
Kaj tiam, ĝi estas evidente tuj estos hereditaj el kelkaj aliaj objekto, sed
vi ne devas zorgi pri tio.
Kaj tiam, ĝi eble havas iu membro variabloj.
>> La grava afero mi volas montri al vi estas la petskribo metodoj, ĉi tie.
Do, ekzemple la metodoj estas signitaj per tiu minuso.
Kaj tiam, kiel vi rimarkos, ke ni estas jam ekvidas la paradigmo
por metodo deklaro, ĉu ne?
La reveno tipo, la metodo nomo,, kaj tiam la tipo de la argumento, kaj
tiam la nomo de la argumento.
Kaj tiu minuso signifas ke ĝi estas Ekzemple metodo, kio signifas, ke
ĉi tiuj metodoj estas nur disponebla por celojn kiuj estis instantiated.
>> Por kontrastigi tion, metodoj kun alpago subskribi antaŭ ili estas klaso
metodoj, kio signifas ke vi povas nomi tiujn metodojn, eĉ se vi ne havas
objekto kreas ankoraŭ.
Do, por klara ekzemplo, NSString estas klaso.
Kaj vi povas nomi, ekzemple, klaso metodojn sur NSString -
la realaj, kiel, vorto NSString.
>> Tamen, por uzi ĉi tiuj metodoj, vi vere
bezonas krei ĉenon.
Ekzemple, NSString stelo kordo egalas ĉe citilo, saluton mondo.
Kaj tiam, vi povas uzi tiujn metodojn -
Ekzemple metodoj -
sur tiu saluton mondo kordo.
Do, tiu estas la diferenco inter Ekzemple metodoj kaj klaso metodojn.
>> Kaj, ni simple kovris tiun parton.
Ecoj estas alia afero, ke estas ene de objektoj, esence.
Kaj vi sciigu ilin kun la ĉe propraĵo ŝlosilvorto.
Vi havas tiuj ebloj, ĉi tie, ke mi klarigos poste kiam
Ni iru en demo.
Jes?
Saluton.
>> Spektantaro: Ĉu vi povas zomi, bonvolu?
>> RHED SHI: Ho jes.
Pardonon.
>> Spektantaro: Dankon.
>> RHED SHI: Tio devus esti multe pli bona.
>> Spektantaro: Jes.
Dankon.
>> RHED SHI: Jes, bonvolu memorigi min se Mi forgesis zomi aŭ malzomi.
Do, ĉi tiu estas kion mi volis montri al vi por -
whoa, ke estas multe -
por tiu ĉi paĝo.
Do, ni reiru al nia diapozitivoj.
>> Efektive, nun ni preni momenton plonĝi en demo.
Do, ni devos komenci kun nova Xcode projekto.
Do, se vi malfermas Xcode je ĉiuj viaj maŝinoj, ĝi devus preni al vi iom
paĝo kie diras, kiel, ĉu malfermita supren ekzistantan projekton aŭ nova
projekto, kaj vi devus klaku al nova projekto.
Kaj tiam, ĝi devus preni vin al tiu ekrano.
Jes?
>> Spektantaro: Se ni ne havas Mac, cxu ni simple speco de chill?
>> RHED SHI: Aŭ rigardu kun iu, yeah.
Jes.
Vi povas chill, tro.
OK.
>> Do, kion ni faros unua, nun, Estas, fakte, ni tuj faros
sola vido apliko.
Do, se vi rimarkos, kio estas granda pri Xcode kaj Apple subteno por
programistoj estas ke vi havas multe da ŝablonoj por labori kun jam.
Vi povus, ekzemple, fari majstromasonisto detale apliko.
Vi povas fari ludon -
kaj fakte, mi ne volas iri en ludoj, ĉar ludoj estas alia rakonto
por IOS evoluo.
Kaj ili estas speco de apartaj, tiel mi ne iros en tiun.
>> Tiam, vi pagxo-bazita aplikoj.
Vi havas langeto apliko -
tiom ŝatas, ekzemple, la Banko de Ameriko probable havas, kiel, a pestañas programon.
Estas tiuj kie vi havas la butonojn ĉe la malsupro.
Kaj tiam, vi havas Sprite garnituro ludon.
>> Aŭ vi povas labori el nenio, kion estas, kion ni faros poste.
Sed ni, unue, komencu per sola vido apliko.
Tiam, ĝi petos por produkto nomo, kaj ni povas nur fari provon.
Organizo nomo -
tiel, organizo nomo, kompanio ensalutilo -
tiuj estas gravaj se vi iras meti vian app en la App Store.
Escepte ke via kodo estas tuj kuri absolute bone sen tio.
>> Ĉi tuj estos grava se vi volas - do, per, kiel, metu vian app
sur via telefono aŭ io, kaj provo ĝin, vi scias, en reala vivo -
tio estos grava.
Ĉi inklinas kutime esti asociita kun ia developer konton
kun Apple.
>> Kaj do, mi scias, probable, multon pri vi ne havos neniun developer kontojn.
Mi scias la universitato havas unu.
Mi kredas CS havas unu.
Sed, vi rajtas retmesaĝi al mi kaj mi provos ekkompreni ke por vi.
Sed nun, mi ĵus metis en iuj lokokupilo aferoj ĉi tie.
>> Kaj vi povas, kompreneble, ĉi tie, elekti ĉu vi volas ke ĝi estu nur en
iPhone, en iPad, aŭ ambaŭ -
universala aplikaĵo.
Do, nuntempe, ni faru universala, same vidi ambaux flankojn de la kajo.
>> Ni vidu.
Do, nun, mi iros por savi ĝin en ia speco de dosierujo.
Ne gravas kie - vi povas ĉiam movi ĝin poste.
Kaj, nun, ni alportis al nia Xcode projekto.
Mi ne maltrankviliĝas pri ĉio ĉi.
Mi sugestus ne tuŝi iun el ĉi, krom se vi scias ekzakte kion
vi faras.
Do, ĉio ĉi, simple ignori plejparte.
Vi ne bezonas tuŝi ĝin, kaj se vi ĉu vi salaton ĉe iuj aĵoj ĉi tie,
gets iom komplika.
>> Do, kial ni ne rigardi en la dosierojn en la
maldekstra flanko en nia naviganto.
Tie, ni havas AppDelegate.h.
Ni havas AppDelegate.m Do, kiel vi avizo, ni header dosieroj, kiujn
finiĝas per punkto h, kaj ni havas efektivigo -
fakte, lasu min zomi in
OK.
Lasu min zomi in
>> Ĝuste tiel vi header dosierojn kaj vi havas efektivigo dosierojn.
Reale -
OK.
Tiu estas iom bizara, sed pacience min toleras.
Poste, ĉar ni jam elektis sola vido apliko, ni tuj estos
laborante kun storyboard.
>> Do, storyboard estas iu kiu de Apple venis supren kun vere helpas
programistoj rapide prototipo iliaj aplikoj.
Do, ĉi tie vi povas krei app sen skribi
sola linio de kodo.
Tamen, en nia sola vido apliko, ni, kompreneble, havas
dosiero por nia vido, kiun Estas view regilo.
Do, ni havas la ĉapon kaj la efektivigo dosiero, tie ĉi.
>> Kaj, mi tuj malzomi nun ĉar Ni bezonos labori en la storyboard.
Do, jen nia vido.
Se ni, simple, kuras la app ĝuste nun, tie ne estas multe interesa okazas.
Do, vi vidos ĉi tiun blankan ekranon.
OK?
>> Kaj, en nia utilecoj areo, ni povos aldoni faskon da malsamaj aĵoj al ĝi.
Do, kiam vi estas kontraktanta kun ekranoj en IOS, vido regiloj estas la
celoj kiuj encapsulan, ia, viaj opinioj.
Do, vidpunkto regilo ĉiam estas propraĵo nomata vido.
Kaj tiu vido, tipe, enhavas, vi scias, kion vi
ĉu vi vidas sur ekrano.
>> Do, nu, ni komencu per meto, eble, eble etiketo.
Do, ni metis etiketo sur tie -
trae en la mezo.
Do, nun kiam mi klakis sur la etikedo, mi povas iri en la propraĵoj inspektisto
kaj komencos ŝanĝi ĝian valoron.
Ni nomas ĝin CS50 Koloroj.
>> Kaj, mi ankaŭ povas ŝanĝi la tiparon.
Do, anstataŭ fari sistemon, kiu estas la defaŭlta, ni povas fari kutimo tiu.
Ni povas ŝanĝi -
vi scias, ultraligeros, igi ĝin 32.
Kaj poste, ni povos fari nian skatolon granda.
>> Spektantaro: Cxu vi opinias ke vi povas zomi en nur iom pli, eble?
>> RHED SHI: Jes?
OK.
>> Spektantaro: Just frapeti ĝin?
>> RHED SHI: Ni vidu.
Ĉu ĉi tiu laboro?
>> Spektantaro: Just pasas la Xcode?
>> RHED SHI: Certe.
OK.
Awesome.
>> Spektantaro: La etiketo sub?
La etiketo?
>> RHED SHI: Kio estas tio?
>> Spektantaro: Kio falmenuo Estis la etikedon sub?
>> RHED SHI: Do, la demando estis, kion Versxigxos-malsupren estis la etikedon sub?
Ĝi devus, simple, esti sub tie.
Mi supozas ke ĝi estas kubo afero.
Sed kutime, ĉi tiu estas la defaŭlta -
Mi simple mallevigxo tien ĝis mi trovos etiketo.
Jes.
>> Do nun, ni havas niajn etiketon.
Ni centri ĝin.
Kaj Xcode donas ni gvidlinioj por cimbra celoj.
Do, nun ni kuras nia kodo denove.
>> Tie ni iru.
Do, ni havas CS50 Koloroj.
Kaj nun, ni metis butono en tie, ĉu ne?
Ĉar ni volas fari ĉi interaktiva.
Do, ni metis butono tie.
Kaj ni vokos tiun butonon "krano tien daŭrigi. "Ni centri ĝin, ankaŭ
Efektive, ĝi estas jam centrita.
Jes.
>> Do, nun ni havas butonon.
Kaj se ni kuros ĉi denove, ni iras havi belan butono tie.
Kaj mi povas alklaki ĝin, sed ne fari ion ajn, ĉar ni ne faris
, frazoj kun la butono ankoraŭ.
>> Do, ni kreos alian vidpunkton, right?
Do, ni diru mi volas tushi ke butonon kaj mi volas
iri al alia paĝo -
alian vidpunkton.
Kion mi faros estas, mi povas krei cele adaptilo, ĉu ne?
Nun mi devos klaki sur mian butonon, kaj tiam, la grava afero estas, ke mi tuj
klaki - aŭ -
jes, gazetaro kontrolon sur mia klavaro.
Kontrolo.
Alklaku sur la butono, kaj poste treni.
>> Do, memoru por teni la kontrolon ŝlosilo.
Ni faru tion denove.
Do, teni kontrolo, klaku, kaj trenu kion vi volas fari.
OK.
>> Kaj nun, mi havas plurajn eblojn tie.
Mi povas aŭ puŝi, aŭ mi povos fari modales, aŭ mi povos fari kutimo.
Puŝo estas nur se vi havas navigado regilo.
Ĝuste nun, nia unua vido regilo estas ne ene de ajna
navigado regilo.
Do, la navigado regilo estas kiu donas al vi la dorson butonon sur
la IOS app kie vi havas, vi scias, ke supron, speco de dika stango -
kie vi povas iri reen, aŭ antaŭen, kaj tiel plu.
Ĝuste nun, mi ne havas tion.
Kaj do, jen kial mi ne povas fari la sakon.
>> Do, mi klakis sur puŝo hazarde, tie ĉi.
Kaj efektive, ni kuras la kodon, kaj ĝi devas frakasi min.
Nur se mi premu la butonon kvankam, do -
dekstra.
Do, tio estas malbona.
>> Kaj, kiel vi povas vidi, ĉi tie, ni havi la erarmesaĝon.
Do, "Push segues nur povas esti uzata kiam fonto regilo estas administrata de la
petskribo de UI navigado regilo. " Do, ĉar tio ne estis interne de
navigado adaptilo, Mi ne povus fari tion.
>> Do, nun, mi reiros al la dosierujo, irante reen al storyboard.
>> Spektantaro: Kio estas la navigado adaptilo, denove?
>> RHED SHI: Do, nun mi montros al vi.
Ni vidu.
Do, mi tuj alklaki ĉi vido adaptilo, kaj tiam mi tuj iros
ĝis produkto -
efektive, neniu, sorry - redaktilo.
Kaj mi tuj iri en -
Fakte, ĉu mi klakas sur ĝin?
N-ro
Tie ni iru.
Mi tuj iros en redaktilo, iru malsupren por enkorpigi en, kaj tiam navigado
regilo.
>> OK.
Kaj, mia laborspaca aspektas vere senorda, do ni purigi ĉi supre.
Do, ĉio ĉi estas storyboard.
Kaj en ĉi tiu maniero -
OK, halti -
Mi povas rapide konstrui ion kiel ĉi tio.
Kaj poste, nun mi povas iri returne, vi scias?
>> Sed tio estas speco de enuiga, ĉu ne?
Do, kion mi volas fari estas, mi ne volas fari, tutsimple, vidpunkto
regilo.
Diru Mi vere volis fari tablo view regilo, tiel mi povas meti en
iuj belaj koloroj, sur la tablo.
>> Do, nun ke mi metu en mian tablon vido adaptilo, mi bezonas por konekti ĝin
el tiu ĉi butono por la vidpunkto regilo.
Do mi bezonas fari mia kontrolo, klako, treni afero denove.
Kaj nun mi povas fari puŝo, ĉar mi embed ĝi ene de navigado regilo.
>> Spektantaro: Navigado regilo nur permesas iri de loko al loko?
>> RHED SHI: Jes.
Do, pli teknike, ĝi estas objekto kie -
tiel, interne de la navigado regilo objekto, ĝi
gardas la spuro de tabelo.
Kaj tiu tabelo validas tuta posta rigardi regiloj.
Tial, kiam vi alklakos dorson, ĝi superas la antaŭa paĝo.
Pro la navigado adaptilo objekto aux kodon kiu prizorgas
ĉi objekto, havas tabelo kiu subtenas spuri de tiuj view regiloj, kaj
povas do, sciu, dq la vido adaptilo kaj donu al vi reen la
antaŭa.
>> Do, tio estas teknika afero, sed -
kaj mi montros al vi poste en kodo, se ni havas tempon.
Mi specon de elĉerpiĝas ĝustatempe, sed -
>> Do, kun la tabela rigarda, kion ni povas fari estas -
Ĝi estas kutime aŭtomate metita al Dinamika Prototipo -
ni tuj faros gxin Statikaj Ĉelojn, alie ni tuj
kolizii iuj problemoj.
>> Kaj tiam, ni diru Mi iras havi unu sekcio.
Do, sekcioj estas kiel -
se vi iam vidis la muziko app, kiam vi havas la artistoj, sekcioj farus
esti la A tra Z's -
la literojn -
kaj tiam, vi scias, la individuaj vicoj estus la artisto nomoj.
Kaj do, kio estas malvarma tie, estas ke mi ne povas aliri ĉiom de la objektoj interne
de miaj storyboard tra tiu falmenuo, tro.
>> Do, mi tuj alklaku mia sekcio, kaj mi deziras, vi scias, eble kvin vicoj.
Kaj poste, ene de ĉiu vico, Mi deziras meti etikedon.
Kaj mi tuj vokos ĉi Blua.
Kaj poste, mi volas meti UI vidpunkto, vi scias, eble cxar, kiel, iom skatolo.
>> Por ke mi povu montri homoj antaŭrigardon de la koloro.
Kaj mi reiros al la bieno kaj ŝanĝi tiun koloron al, ho, mi ne faras
scias, tiu ĉi.
>> Kaj tiam, rimarkos ankaŭ, tie, kiam mi havas la akcesoraj, mi povas havi multajn
de la diversaj komplementoj ke vi tipe vidas.
La malkaŝo indikilo, la detaloj, aŭ kontrolu markon, aŭ simple nur detalo.
Do, eble ni povas fari, kiel, a malkaŝo indikilo, ekzemple.
>> Kaj tiam, kial ni ne prenos tiujn, kopii gluu ilin, kaj metis ilin en la
sekvanta tabelo vico.
Do, ni povas nomi ĉi Flavaj.
Kaj mi eble devos etendi ĉi.
Ni faru ĝin flava.
Kaj en ĉi tiu maniero, ni povas kopii algluota nia vojo malsupren.
Kio estis tio?
Purpura.
>> Do, tiuj estas ĉiuj tipaj CS50 kolorojn kiujn vi vidis en klaso -
reale, pardonon -
aŭ sur la paĝaro.
Espereble vi uloj povas vidi kion mi faras tie ĉi.
OK.
Lasta.
>> Spektantaro: Kiel vi aldonu la vico komence?
>> RHED SHI: Do, la demando estis, kiel ĉu mi aldonu la vico komence?
Mi eniris en tiun tablon sekcio - aŭ tamen mi povas
selektu la tablo sekcio -
kaj tiam, tie, mi ĝisdatigita la nombro de vicoj.
>> Kaj, lasu min esperi ke tiu funkcias.
OK.
Ni vidu se tio funkcias.
Ho, perfekta, awesome.
OK.
Dum mi estis konstruanta mian demo, iuj aferoj ne estis vicigitaj, do, dankon pro
la aplaŭdon.
>> Jes.
Do, ni vidu.
Ni faros ĉi naux justuloj fari ĉio - aŭ fakte, ni nur
turni ĉiuj tiuj en malkaŝo indikiloj.
Kaj tiam, kion mi volas montri al vi ankaŭ, Estis, kiel mi povas preni ĉiun el tiuj
tablo vicoj kaj havi ilin interagas -
io.
N-ro
>> Oh.
Ankaŭ, mi volas montri al vi -
ĉi tie, mi povas meti la titolo de mia navigado adaptilo, right?
Do efektive, vi rimarkos, ke kiam mi enigita ĉi vido regilo interne
de la navigado adaptilo, ni vidas ĉi navigado trinkejo je la pinto de nia
storyboard reprezento el vidpunkto regilo.
Kaj do, tio donas al ni, kiel, vida, ia, gvidi nian videbla ekrano.
Tio estas evidente tuj esti la navigado trinkejo.
>> Kaj kion mi volas fari rapide, Nun, estas metita en alia -
tial cxi tiu tablo view regilo mi faris per prenante unu el tiuj kaj trenis lin
ĉi tie, kaj tio estas kio permesis al mi rapide, vere, kreu tabelon vido
regilo.
Se ni ja havas la tempon kvankam, vi vidi ke, programmatically, ĝi estas
iomete pli malfacila por krei tabelon vidpunkto adaptilo, ĉar tie
Estas kelkaj metodoj, kiuj estas bezonata por vi, ia, skribi
en ordo por la tablo vido adaptilo por esti montrata korekte.
>> Tamen, mi nur volas montri al vi, nun, ekzemplo de kie, se mi prenos ĉi,
ekzemple -
Mi jam metis en alia vidpunkto regilo.
Kaj nun diru mi volas kontroli Alt mia unua blua
tablo vicon tie.
Kaj mi volas nomi tiun Blua.
Kaj tiam -
ni vidu.
Mi estas ĉe la vido nun, kaj mi povas ŝanĝi La fono al la bluo.
>> Kaj do, avizo, ĉi tie, ĉi falmenuo menuo ankaŭ donas vin hierarkio de ĉiuj
de tiuj celoj.
Do grava afero por noti, ĉi tie, estas, ke ĉiuj tiuj aferoj, tie -
tiun tablon view adaptilo, la tablo vido, tablo view sekcio, tablo vido
ĉelo - ĉiuj el tiuj estas celoj, en kodo.
Do, vi scias, etiketo nun estas sub La enhavo vido, kaj tiel plu.
Do pluen kaj tiel plu.
>> Do, se ni kuras tiu kodo, ni devus vidi ion -
ni vidu, se tio - jes.
Do, tie ni iru.
Sed, se ni ne faros tion, neniu de tiuj aliaj aferoj funkcias.
Ĝuste?
Do nur ĉi tiu funkcias.
Kaj, por la bono de la tempo: Mi ne volas iru en, sciu, metante
malsupren la aliaj aĵoj.
Kaj tio estas la fino de, ia, storyboard -
kion mi volis montri vin pro storyboard.
>> Kaj, mi ja havas laborita ekster ekzemplo, Fakte, ĝuste ĉi tie.
Do, ĉi tiu estas la storyboard ke mi faris antaŭe.
Do, kiel vi povas vidi, tio estis miaj navigado regilo.
Tiam mi havis mian unuan vidon adaptilo, tiam mi havis mian tablon view adaptilo,
kaj tiam mi havis ĉiuj el tiuj -
tiel antaŭe, mi estis faranta io tre malsama.
Do, pardonu tiujn aferojn.
Mi verŝajne purigi ĝin ĝis poste antaŭ Mi sendas ĝin al produktado.
>> Sed, se ni kuros ĉi, ni vidos ke ĉiuj el la ebloj estas
disponebla al ni.
Se mi ne faras la fonoj tiuj koloroj.
Do, bela simpla apliko.
>> Nun, ni provu pritrakti ĉi programmatically.
OK.
Do, por fari tion, ni simple irante komenci novan Xcode projekto.
Ni faros gxin malplena apliko nun, ĉar ni ne volas havi la
storyboard.
Do, mi simple restrikti min ne uzi iun el la storyboard, kaj
malplena apliko ne volas doni al mi storyboard.
Ĉi tio estas nur por malhelpi min ne trompas.
Ni vidu.
Atendu.
Ĉu mi -
jes.
OK.
>> Ĝuste.
Do, cxi tie, ni restas kun nenio alia ol kodo.
Do, lasu min movi tiun fenestron iomete pli.
Ĝuste.
Kiel vi povas vidi ĉi tie, la nuraj dosieroj ni donita estas AppDelegate.h kaj skalara
m, kaj ni ne havas storyboard plu.
>> Do, se ni kuros ĉi, ni estas ankoraŭ tuj atingi la blanka ekrano, mi dankas Dion.
OK - blanka ekrano, sed nenion alian.
Kaj, jen la grava parto.
Tie estas kie la ago okazas.
En la antaŭaj versioj, ekzistas kutime neniu kodo tie, sed la
storyboard esence proponas La kodo por tiu parto.
Mi ne eniros en detalojn pri kiel.
>> Kaj kion ni volas fari nun estas, ni volas iri tie ĉi, kaj tio iom spaco
startas krei nian app denove.
Do -
jes?
>> Spektantaro: Zoom?
>> RHED SHI: Zoom.
Yeah, sure.
OK.
Mi povas tajpi, do tiu ne devus afero tro multe.
OK.
>> Do, unue, rememoru ni volis krei navigan adaptilo, ĉu ne?
Kaj same, kiel vi povas vidi ĉi tie, Xcode faras vere granda laboro de
mem-kompletigo.
Do, kiel vi rimarkos, la nomojn de ĉio estas multe pli longa ol
kutima, sed Xcode plenigas ĝin por vi.
Do mi povas simple premi Eniru.
>> Do, mi volas krei UI navigado regilo montrilo, kaj mi povas nomi ŝin
navigationController.
Nu, kion mi faru nun?
Post ĉi egalsigno, mi bezonas, unue, krei ĝin interne de memoro.
Do, mi tuj faros NavigationController alloc -
do, tiu estas simila al malloc, ke vi uloj uzata en C -
kaj tiam, mi tuj init ĝin.
>> Do, ĝi estas vere gravaj, ke iu objekto, kiun vi kreas, ke vi volas
alloc kaj init ĝin.
Tio okazas por krei ĝin kaj instantialize gxin interne de la memoro, kaj
nun vi povas uzi ĝin.
Enorde?
Se vi ne faras tion, vian celon faras ne ekzistas, kaj vi kuros en faskon
de problemoj.
>> Kaj poste, mi volas krei cele adaptilo, ĉu ne?
Do, mi volas krei UIViewController stelo -
tiel, ĉio estas montrilo en Objective-C, kaj Mi faros
io simila, tie -
alloc, init.
OK.
>> Kaj tiam kion mi tuj faros estas, mi estas tuj - do, memoru, kiam ni faris
la embed en navigado regilo?
Jen kiel vi faru ĝin en kodo.
Vi faros navigationController
pushViewController -
>> Spektantaro: [inaudibles].
Ĉu ĉi tio okazos pri ni, aŭ -?
>> RHED SHI: Ho, jes.
N-ro
Ĝi ŝatas al mi bona.
Ne, ĝi devos labori por vi, ankaŭ.
Do, tiuj estas ĉiuj manieroj.
Do pushViewController estas metodo, kaj ankaŭ, pli specife, ĝi estas
Ekzemple metodo de la UI navigado regilo.
Ĉar mi devis krei mian UI navigado regilo stelo, kaj tiam mi
povas nomi ĉi pushViewController sur mia specifan kazon de UI navigado
regilo.
>> Spektantaro: Ĉu ni havas por fari la ĝustan vorto, aux ne gxi jam ekzistas por tio?
>> RHED SHI: Jes, ĉar ĝi estas metodo.
Estas kiel funkcio.
Estas kiel printf.
Estas kiel scanf.
Estas kiel strcompare.
Krom tio scias kion vi povus deziri tajpi, kaj rimarki ke ĝi estos ĉiam
veni supren kun aĵoj, kiuj estas jure permesitaj por vi.
Do, se nenio aperas ĉi tie, tiam io estas malĝusta.
>> Do, pushViewController.
Do, nun, mi volas puŝi mia nove kreita
UIViewController, kaj tiam, vigla -
eble ne.
Ĉar ĉi tiu tuj estos la unua vido regilo.
Mi volas diri, eĉ se mi faras viglan, eble tio ke ĝi ne aperos, ĉar
ĝi estas la unua ekrano.
>> Kaj memoru la krampoj.
Do memoru, kiamaniere ni uzis la krampoj?
Kaj ene de la krampoj, la objekto alvokas metodo -
tial nia celo estas la navigado adaptilo, kaj la metodo estas puŝo
vidpunkto regilo vigla.
Kaj vidi kiel ŝi prenas en du argumentoj, kaj ili estas apartigitaj per la, ia,
vortojn, kaj dupunkto.
Do, Objective-C provas fari belan kaj facile por vi legis laŭte -
via kodo - kaj havas ĝin semi, ia, sencon.
>> Tamen, farante nur tiu ne estas sufiĉa.
Lasu min malzomi nun.
Faranta nur tio ne sufiĉas por ricevi kion ni akiris al antaŭe.
Do jen, vi rimarkos ke ekzistas fakte ne tuj estos omnaspeca
bari, ĉi tie, ĉu ne?
Mankas navigado stango, kiu signifas ke ni ankoraŭ ne alvenis ŝin.
>> Kaj ni povas provi tion diveni, ankaŭ, por, eble, ŝanĝante la fono de
ViewController, right?
ViewController.background--
ah.
Do, vidi kiel ViewController ne havis fona koloro, kvankam mi
volis konsenti li?
Kaj tio estas pro ViewController estas ujo por la vido.
Do, ĝi havas vidpunkton posedaĵo, kiun tiam havas fonan koloron.
>> Kaj, mi povas agordi gxin, ia tede, nomante la koloro
sur la UIColor objekto.
Do, avizo tie, redColor estas metodo.
Ĝi estas klaso metodo de UIcolor.
Ĉar mi ne devas krei efektiva okazo, kiam UIColor en ordon
nomi la metodon en ĝi.
Mi nur, simple, nomis ĝin sur la tipo-simila nomo.
Mi, kiel, nomis ĝin je int, se int havis, kiel, metodo por gxi, ekzemple.
>> Kaj do, se ni kuras tiu kodo, ni rimarki, ke la fono estas
efektive ne ruĝa.
Ĝi estas ankoraŭ blankaj.
Kaj kiel ni povas preni ĉirkaŭ ĉi tio estas, Rimarku kiel ekzistas la self.window.
Tio estas, kiel, la finfina ujo por via kandidatiĝo.
Ĝi estas la finfina afero kiu enhavas ĉiu sur la ekrano, por
iPhone aŭ iPad apliko.
>> Kaj, oportune, self.window havas tiun econ nomata
rootViewController.
Kaj tiu tuj estos la montrilon al la tre unua vido regilo interne
de via app.
Do, kion ni volas fari ĉi tie, nun, estas fiksi, ke egalas al niaj navigado
regilo.
Ĝuste?
Ĉar, teknike, navigado regilo estas nia unua vido
regilo.
Ĝi gardas spuro de tabelo de aliaj vido regiloj, kaj ni puŝis ĉi
vidpunkto regilo en tiun tabelo en la navigado regilo.
>> Do, vi ne volas fari ĉi tion.
Tio ne vere helpos al vi.
Vi volas fari tion, se vi volas fari navigan adaptilo, kiu plej
de vi probable havos ĉar vi volas al, speco de, havas ian,
kiel, menuo reiri al aux iun hejmpaĝo reiri al, anstataŭ
malplena ekrano.
Jes?
>> Spektantaro: Ĉu estas malkomforta por vi zomi en la -
>> RHED SHI: Jes.
Do, jes.
Tiu estas la kodo, kaj jam ni testi gxin.
>> Do, tie ni iru.
Magio.
Do, en ordo.
Dankon.
OK.
Do nun, kion ni volas fari, estas - tiel, ni ia limigita, ĉi tie, ĉu ne?
Ni povus potenciale skribi ĉiun ene de ĉi tiu funkcio.
Sed, tio ne estas kiel IOS evoluo kutime funkcias.
>> Do, kion ni faros estas, ni estas tuj krei novajn dosierojn.
Sed, pli specife, ni iras al krei alian Objective-C klaso, aŭ
alia celo -
klaso kaj celoj estas interŝanĝeblaj tie.
Kaj, jen kiel mi povis, potenciale, krei alian klason de U regiloj.
>> Do, ĝi estas sub-kategorio, kiel vi rimarkos, ĉi tie, ĝi estas sub-kategorio de la
UI view adaptilo, sed mi povas nomas ĝin iu alia nomo tie.
Mi povus voki ĉi CS50, mi povus voki tiu vidpunkto adaptilo, mi povus voki
ĉi bla view adaptilo -
kion ajn mi volas.
Tio estas nur la nomo por la klaso.
Tamen, ĝi tuj estos grava ĉar, esence, kion mi faras
ĉi tie estas, ke mi kreas alia klaso nomo.
Do, ĝi tuj estos, kiel, iom speco de tipo aŭ objekto.
Do, ĝi devus esti iomete ĝenerala.
Oni ne tuj estos tre specifa.
>> Kaj ankaŭ, mi volas atentigi el tiuj du ebloj.
Ĉar ni faras ĉiu ene de kodo, foje ĝi estas multe pli facile
venigi al interfacon dosiero, tia ke Mi povas laŭvorte treni kaj faligi, kiel
ni faris antaŭe kun storyboard -
vi scias, etiketo, nek butono, aŭ kio ajn alia.
Kaj do, xibs estas dosierojn kiujn vi permesas do tio, kaj vi devas hoko ĝin
tiu vidpunkto regilo dosiero.
>> Do, mi tuj intence Ne kontrolu ĉi.
Kutime mi devus kontroli tion, kaj se mi nur faris tion por iPhone aŭ iPad, mi
devus kontroli tion kaj simple havas unu cxar vi scias, la iPhone aŭ la iPad.
Sed ĉar mi faras universala, mi tuj krei du el tiuj poste.
Do, mi tuj intence malmarku ĉi.
>> Tio estas ankaŭ vere grave.
Multaj fojoj, mi havis cimojn kie tio ne kontrolis.
Kaj do, evidente, tiu dosiero ne estas, speco de, kiel, inkludis aŭ importitaj
ene de tiu testo dosierujo.
Kaj do, mia kodo havas absolute nenian ideon de la ekzisto de ĉi tiu dosiero, kaj
kiu kaŭzas multan doloron kaj horoj de debugging.
Sed, ĝuste certigi ĉi estas markita, tiel ke, vi scias, la celo de ĉi tiu
dosiero estas por tiu aplikaĵo.
>> OK.
Do, nun ni jam kreis du novajn dosierojn.
Kaj tiujn dosierojn aspektas bela malplena.
Kaj, fakte, ni ankaŭ daŭrigi pri kreante la xib dosierojn.
Do, antaŭe, mi estis en la Cocoa Touch falmenuo.
Nu, mi tuj iros en la Uzanto Interfaco takto, kaj kiel vi povas vidi, mi
povas krei storyboard.
>> Do, eĉ mi komencis kun malplena apliko, mi povas ankoraŭ uzi
storyboard.
Kvankam, ĝi ricevas malfacila en terminoj el kiom vi deziras konekti
ke via kodo.
Do, mi ne iros tien.
>> Sed, kion ni volas fari nun estas krei vido.
Kaj vi povas elekti por iPhone aŭ iPad.
Kaj tipe, por signifi la diferenco - se vi faras
universala apliko -
vi, aux enmetu substreko iPhone, aux vi povas fari Twiddly.
Ĝi vere ne gravas.
Ĝi estas simple por vi diferenci kiu vidpunkto estas por kiu mekanismo.
>> Kaj do, nun aspektas.
Mi havas ekrano ke mi povas labori.
Kaj do, ekzemple, mi povas meti etikedon en ĉi tie, vi scias, kaj mi povas ankaŭ meti
alia butono tie.
Mi ne tedos ŝanĝanta la valoroj tie.
>> Sed, kio estas grava tie estas ke la dosiero estas posedanto -
do, mi estas ene de la iPhone vido, iPhone xib dosiero.
Kaj malsupre en ĉi navigado areo aŭ falmenuo, mi volas iri al la
dosiero mastro.
Kaj jen estas la vere grava paŝo tie.
Mi volas fari la klaso vido regilo, tiel ke ĉi xib dosiero
tuj estos asociitaj kun miaopinie regilo.
Kaj ion, kion mi faru interne de mia vidpunkto regilo programmatically estas
tuj estos reflektitaj en ĉi tie.
>> Do, tamen rimarkos, ke -
fakte, ni faru ĉi vido fono blua, ekzemple.
Aŭ verda.
Kaj tiam, do se vi rimarkos, reen en tiun kodon, tio estas kie ni alvenis al nia
navigado regilo.
>> Eĉ kvankam ni faris tiun paŝon, ĝi estas ankoraŭ tuj esti ruĝaj, ne verda.
Kaj tie estas tial.
Ĝi estas pro tio, kiam ni inited nia opinio adaptilo, tie -
bedaŭras, ĝi estas iom freneza -
kiam ni inited nian vidon regilo ĉi tie, ni inited ĝin de la ĝenerala tipo
UIViewController.
OK?
Do ni eĉ ne fari kun tiu klaso.
>> Do memoru, tiu estas kiel klaso nun.
Ĝi povas esti penso de kiel tipo, simple kiel UIViewController estas tipo.
Kaj por uzi tiun, kion Ni bezonas fari estas importi ĝin -
importado ViewController -
kaj, kiel vi povas vidi, ĝi autofills ĝin por mi.
Do, ViewController -
kaj nun, tie ĉi, mi povas ŝanĝi ĉi UIViewController al ViewController.
Kaj nun, jen, mi povas ŝanĝi tio al ViewController.
>> Ni kuros ĉi denove.
Ĝi estas ankoraŭ red.
Kaj tial ĝi estas ankoraŭ ruĝan estas ĉar -
woah, kio okazis tie?
Ni volis asocii ĉi xib dosieron kun la vido regilo.
Tamen, por povi reale faras ke ni devas iri en ĉi tio.
Kaj kiam ni faros la init, ni volas fari initWithNibName, kaj poste ni volas
fari la ĉe ŝnuro View_iPhone, ekzemple.
Vi povas ignori la pakaĵo tie.
>> Kaj tio estas iri permesi ni, fakte -
uh oh, estas problemo.
Ĝuste.
>> Kaj do, tie estas problemo pro tio, en nia opinio xib dosiero, ni havas etiketon kaj
ni havos butonon.
Tamen, eĉ se ni konektita tiuj du, tie estas nenio interne de
ViewController.h aŭ ViewController.m kiuj reflektas tiujn
butonoj aŭ tiuj etiketoj.
Do, ni bezonas por skribi tiujn en tiom ecoj de la vido regilo.
>> Do, jen kiel vi rakontu propraĵo.
Ĝi portas en, kutime, tiuj du ebloj.
Por la celoj de ni, kaj ĉi seminario, Mi dirus ke, ĝenerale,
plej propraĵoj estas nonatomic kaj reteni.
Vi povas legi per Google serĉado, vi scias, la diferenco inter
nonatomic kaj reteni plu, vi scias, Google aŭ io.
Kaj Mi prenos vin, kiel, Stack Overflow, kie homoj havos
respondojn por la diferencoj inter tiuj.
Sed nuntempe, tio estas kion ni volas esti koncernitaj kun.
>> Kaj ni volas fari UI label, stelo, kaj ni povas nomi ĝin, kion ajn ni volas.
Ni povas nomi tion, vi scias, etiketo.
Kaj, ni devos krei alian unu por la butonon.
Kaj memoru, por inkludi la asteriskon, ĉar ni estas kontraktanta kun montriloj
preskaux cxie interne de Objective-C.
>> Tamen, tio estos ankoraux ne solvos la problemo, kiel vi povas vidi ĉi tie.
Kaj la kialo estas ĉar, krom se ni deziras konekti xib dosieron stampo aŭ
butono por la programo, aŭ la kaplinio kaj efektivigo dosiero, ni volas
aldoni tiun koderon -
elirejo.
Rimarku, ke ĝi estas fundamenta vorto.
>> Kaj, tuj kiam mi finas tajpadon kiuj eliris, ĝi devus havi tiujn
du rondoj, ĉi tie.
Kutime, ili ne plenigis in
Mi ne certas kial ili estas.
Sed kutime, vi devos permane konekti ilin irante al cxi tiu flanko de
la utilecoj areo.
>> Kaj do, ĝuste nun, mi havas mian etikedon elektita, kaj mi volas ŝovi ĉi tiun novan
referenco elirejo al mia dosiero mastro, kaj tiam alklaku Eldonejo.
Do nun, fine, tiu etiketo estas konektita al ĉi etikedo.
Kaj tiu etiketo estas kion ni tuj uzi programmatically ŝanĝi lian
teksto, lia tiparo, ĝia fono koloro, ktp.
>> Do, kial ni ne faru la same por la butonon?
Kaj kiel vi rimarkos, cxar la butono, ĝi estas iom pli komplika.
Ĉar, mi volas diri, ke vi supozas ke gazetaro sur butono, do ĝi havas jam multon
de ebloj por kiel uzantoj povas premi sur la butono.
Kaj tiam ni vidos poste sur tiu ni povas konekti ĉi tion al nia
kodo por fari ĝin funkcii.
>> Do, nuntempe se ni volas konekti ĝin al la efektiva butono
ene de nia kodo.
Do ni iru al la nova REFERENCIGO elirejo, kaj tiam fari la butono.
Nun, ni kuros ĉi denove.
Uh io.
OK.
Mi ne scias kio okazas ĉi tie nun.
Whoa.
Nur unu momenton, ĉi tie.
>> Fakte, kial ni ne prenos rigardi alian ekzemplon en
La intereso de la tempo.
OK.
Do, jen la plej facile preparita Ekzemplo por ViewController.
Kiel vi povas vidi ĉi tie, mi inkludis la ecoj por la
etiketo kaj al la butono.
Kaj tiam, ĉi koderon tie -
ĉi IBaction -
estis ligo al tiu butono tie.
Do kiel vi povas vidi ĉi tie, Touch Supren Interne estas konektita al la selector
nomata Buton Premata.
>> Do, ni povas reale iru tra la movado denove, cxi tie, per prenante Touch Supren
Ene kaj trenis ĝin al Dosiero la mastro, kaj tiam
klaki sur Buton Premata.
Nun, ni kuros nia kodo.
Do nun, tiun butonon nun funkcias kaj nin portos al la sekva paĝo.
>> Kaj, koncerne nian vidon adaptilo, tio estas la koderon kiu prenis
Zorgi pri la Buton Premata.
Kaj ĝi estas grave noti tie, ke Mi jam kreis alian tipon de vido
regilo nomata tablo vidpunkto regilo.
Do, tio estis simila al dorso en storyboard, kiam mi trenis unu el
tiuj tablo view regiloj en la storyboard.
Mi kreas alian
>> Montrilon al la tablo view adaptilo, alloc kaj init-ing ĝin, kaj tiam fari
mem dot navigado adaptilo, puŝi ViewController, tiu nova
viewController.
Kaj mi starigis la kuraĝigo al jes, ĉar nun interne de mia app, kaj mi
ĉu vi vere vidas la kuraĝigo irante el la hejmpaĝo de la tabelo
vidpunkto regilo.
>> Spektantaro: Ĉu vi ankoraŭ maltrankviliĝas pri rubo kolekton?
>> RHED SHI: Kio estas tio?
N-ro
Do, la demando estis, cxu vi havas labori kun rubo kolekton?
Do, Xcode 4 havis kiel ARKO, kiu estas aŭtomata referenco rakontante.
Kaj do, kutime, kiam oni komencas novan projekto, vi devus kontroli tion, ĉar
neniu vere volas pritrakti liberigi memoron kaj vazojn.
Sed mi kredas en Xcode 5, ekzistas eĉ ne ke opcion en la nova projekto.
Do, ĝi aŭtomate faras tion por vi.
Jes?
>> Spektantaro: Cxu vi povas eksporti PDF-en via storyboard?
>> RHED SHI: Jes, certe.
Do, ĉiuj ĉi tiuj estos inkluzivita en fonta kodo, do vi uloj povas kontroli
la efektiva Xcode projekton por ĝi.
Jes?
>> Spektantaro: Sed, mi volas diri, kiel, mi povos printi PDF kun mia storyboard?
Se mi simple volas eksporti la bildojn por montri al iu.
>> RHED SHI: Oh yeah.
Mi opinias, eble, vi povas simple preni ekrankopio.
Jes, kaj sendos ilin al ekrano ŝoto aŭ io.
Jes.
>> Do, ni vidu.
En la intereso de tempo, mi pensas jen ĉio l povas kovri hodiaŭ.
Sed mi scias, tio estas, reale, nur apenaŭ tuŝinte la surfaco de IOS
evoluo.
Do, bonvolu senti vin libera kontakti min se vi havas iujn demandojn pri IOS
evoluo.
Kaj, espereble, mi povos purigi kelkaj el la kodon por la fonto
kodo dosierojn, tiel ke vi havos iujn vere belaj ekzemploj labori.
>> Alia ol tio, se vi uloj iras al la CS50 Hackathon, mi povas aŭ
Ne estos tie, kaj mi povas helpi kun iuj IOS disvolviĝo, ankaŭ.
Do, dankon multe, knaboj.