[Powered by Google Translate] [Семинар] [иОС: Писање Аппс Као Босс]
[Томми МацВиллиам] [Универзитет Харвард]
[Ово је ЦС50.] [ЦС50.ТВ]
>> У реду, сви, добродошли на иОС: Писање Аппс као Босс.
Овај семинар ће се фокусирати на писање апликација за иПхоне
а заузврат писање апликација за иПад, па смо у суштини ћемо проћи кроз
неколико различитих примера како да направи апликацију, једноставна игра као Тиц Тац Тое,
или ако сте више заинтересовани за израду апликацију као неки читач вести
или нешто што комуницира са Интернетом ћу говорити о томе, као добро.
Ево наш кратак програм.
>> ИОС апликације пишу на језику зове Објецтиве-Ц,
па ово је мало сличан Ц, али не баш на све,
па ћемо да причамо мало о самом језику
и како онда да се изгради иПхоне апликације користећи ову апликацију програм под називом Ксцоде,
који ако нисте преузели још слободно сада почети са преузимањем.
То је неколико гигабајта.
То би требало да буде бесплатно на Апп Сторе, тако да ћете морати да имате Мац
идеално користите најновију верзију ОС Кс.
Ако нисте, нема проблема.
Имамо Мац у науци центру на располагању за коришћење
са Ксцоде инсталирана, па слободно користите оне за развој.
Ако желите да направите апликацију, али немају Мац, не брините.
Има доста кампуса ресурса за то.
И тако онда ћемо да покрије 2 веће примере различитих апликација можете направити.
Објецтиве-Ц је технички оно што се зове супер скуп Ц.
То значи да је сваки Ц код важи Објецтиве-Ц код.
То значи да смо врста канала снима на неким додатним функцијама до Ц.
Неке од ових функција укључују немају икада писати маллоц опет, хвала Богу,
нема потребе да бринете о тим глупим тројке и ослобађање их и све те ствари
мрзиш о Ц, а то је некако нестао у Објецтиве-Ц.
>> Сада, Објецтиве-Ц такође има много већу стандардну библиотеку,
тако да је много више функционалности сте добили бесплатно унутрашњости Објецтиве-Ц.
Сећаш се кад смо писали ПХП приметили смо да смо ишли од
ово најмањи језик на гиганта библиотеку свих ових лудих ствари које можете да урадите.
Иста ствар се дешава у иОС.
Има објеката за ствари попут будистичког календара, и заиста ништа
што евентуално могу да се сетим вероватно већ постоји у имплементацији Објецтиве-Ц је.
Циљ део Објецтиве-Ц је референцирање нешто
зове Објектно оријентисано програмирање.
То је нека врста новог концепта, али ми смо у ствари највише научили
Многи од ових концепата већ.
Идеја Објектно-оријентисано програмирање је да идеш да се структурира
много кода око тих ствари називају класе,
и ове класе су заиста прославио Структуре.
Унутар једног струцт ми у суштини рекли овде је ствар,
и ово може имати чланове.
На пример, чвор у повезаној листи може имати и друге ствари
као вредност, показивач на следећи чвор у листи,
и заједно да показивач и да вредност чине ову једну инстанцу у струцт.
Часови су веома слични, осим
класе такође могу да имају функције унутар њих.
Када смо прогласио струцт, можемо само рећи инт н или чвор * Следећа.
>> Сада са Објецтиве-Ц ми заправо можемо ставити функције
унутар тих ствари.
Још једна ствар коју можете да урадите је настава могу наследити податке из других одељења.
На пример, ми ћемо се гледа у гомилу уграђених Објецтиве-Ц класе.
Један од њих могао би да буде класа која представља приказ за екран,
па рекавши Желим да спроведе свој поглед
Ми смо у основи реци некоме преко Аппле-у, вероватно заиста фини људи,
написао ову класу за мене, и то решава ствари као приказ Дугмад
или пружање екран, а ми би стварно Болан
да спроведе све то сами функционалност, па тако једноставно
наследе података можемо рећи све што сте урадили у тој класи
Такође желим унутар мог разреда, а онда ћу да урадим неке друге ствари,
односно спроведе апликацију.
То је оно што та реч значи наследство. Видећемо више конкретан пример.
>> И на крају, кључ са Објектно-оријентисано програмирање је да
то доводи до енкапсулација података.
У неким од наших проблема поставља могли имати ове велике, глобалне променљиве
Глобална и свуда, а то је како ћемо пратити стање.
Са часовима можемо почети енкапсулира податке унутар неког објекта.
Ако имамо један екран на нашој апликацији, ми заиста не треба да имају било какве податке из
један екран у нашој апликацији унутар тога,
па тако енцапсулатинг ствари унутар класе то заправо води
много боље код дизајна, а то је могуће са неким додатним функцијама
од Објецтиве-Ц.
Упозорење, синтакса за Објецтиве-Ц је банане.
То је као да се ништа што смо видели раније,
тако да је мало крива учења навикавање
Шта се сад ово значи?
Али када прођеш да почетно крива учења је стварно глатка
да започнете писање апликација.
>> Да прогласи класу, овде кажу да је мој разред, она постоји,
а можда и овде су неке ствари које ћу касније дефинисати,
Ја ћу да кажем @ интерфејс.
Ја ћу да кажем @ интерфејс. Ја ћу да дам мојој класи име.
А касније негде другде ћу да кажем @ крај,
и све измедју @ @ интерфејса и крај
ће бити моја класа.
То ће бити оно што је унутар наших х фајлова..
Баш као у Ц наши х филес. Основи рекао овде су неке ствари које ће постојати.
Нећу нужно вам кажем шта још раде,
али компајлер треба да знају да постоје.
Касније унутар наше М. Фајлови-зато сам за Објецтиве-Ц
је место где смо заиста ћемо дефинисати шта раде ове класе.
Слично као наши ц фајлове., Обезбедили смо за имплементацију функција.
Унутар нашег м. Фајлу ћемо овде да кажем шта све функције
Унутрашњост мој разред-шта сви они раде.
И коначно, унутар једне струцт можемо рећи унутар тих заграда
инт н или чвор * следећа,
и Објецтиве-Ц ћемо користити ту кључну реч @ имовину,
и то је оно што ће се дефинисати својства,
или не-функције које су део моје часове.
>> Позивање функције у Објецтиве-Ц је такође банане.
Када смо прогласили функције у Ц ми је рекао нешто слично инт фоо
и отворена заграда, а затим га је дао листу аргумената.
То је оно што проглашења методе или функције изгледа у Објецтиве-Ц.
Ако желим да прогласе неку функцију или метод
где ја кажем метода је заиста само функција која је члан класе,
тако некако замењиви, али не баш,
па унутар моје методе Желим да направим нови метод.
То ће да се врати ниста, тако да ће то бити од типа празнину.
То је повратак мојој тип функције.
Сада имамо паренс овде јер-не знам.
Следећи ће бити име моје функције,
и онда коначно имамо зарез баш као што смо имали у Ц.
Шта је ново овде је овај момак овде.
Ова цртица је заправо потребно, а шта је ово каже је да је
овај метод овде мора да се позове на пример класе.
>> Након што је изјавио наше Структуре ми вероватно рекао нешто слично
струцт ноде н, и да заправо створили
или инстанце један од оних Структуре, тако да сам стварно могао почети са радом
са оним што је унутар њега, тако да је ово црта значи да морамо да
инстанцира класу баш као што смо инстанце које струцт
пре него што можемо назвати ову методу на њему.
Ако желим да почнете са додавањем аргументе мојим методама
добија још више банана.
Ево моје име метод.
Онда ћу имати дебело црево, и након тог дебелог пише овде у питању неке аргументе.
Овај метод има један аргумент.
Тип свог аргумента инт, а име тог аргумента
или променљива која ћу да почнете да користите унутрашњост метода је да сам звао.
Опет, ово је метод. То траје један аргумент.
>> Ако желите да почнете са додавањем више аргумената постаје још банане
у томе смо то дебело да каже ево моје листе аргумената.
Овај први аргумент је цео број.
Сада, овај други аргумент је интересантно.
Променљива да ћу бити у коришћењу мог функције
се зове ф, тако да унутар моје функције могу да кажем
ф + = 1, или тако нешто.
Ова ствар овде је у основи кључ за тај аргумент или параметар.
Баш као што смо имали кључне вредности парове и нешто попут ЈСОН или асоцијативним низови
Објецтиве-Ц је донео одлуку да кажем, у реду, само да је то заиста јасно
када позовете метод оно што сви ови параметри су
Ја стварно ћу да их именују све.
Када позовете метод, заправо ћете рећи андФлоат,
и онда ћете га проћи за
>> Занимљиво, ово није именована, али су сви остали параметри су,
па ако смо имали 3. аргумент могао бих рећи андФлоат
и још пловак и тако даље.
Када зовем те методе је, наравно, банане,
па ако имам неки објекат, а ја сам дефинисао метод зове фоо,
и желим да га позовете, уместо рекавши фоо отворено / затворено паренс
Идем да отворим конзолу.
Ево име моје методе.
Идем да затворите носач, и то је предмет зовем га.
Запамтите, све ове методе постоје у класама
јер класе могу имати методе дефинисане унутар њих.
>> Овде сам самовољно сам створио објекат неке класе,
и ово је синтакса за то.
Постоје 2 корака у стварању објекат.
Први корак је да кажем да желим да издвоји простор.
То је еквивалент маллоц. Ми не треба да кажем маллоц више.
Ми испустио м, направио га аллоц, и заменио ц. Са м..
Након што смо аллоц нешто онда треба да га покрене.
У суштини када креирате објекте можда ћете желети да имају неку логику
да извршава када они створили, тако да можете проћи у неким подразумеване вредности
или нешто слично, па ово прва метода је оно што заправо ствара објекат.
Прво смо доделити простор, баш као што смо урадили у Ц,
и онда смо га покрене, који може или не може да уради много.
Онда смо враћа ову ствар у један објекат о.
Ту је звезда овде, јер је ово технички показивач,
али не брините, показивачи нису то више велика ствар у Објецтиве-Ц.
>> Сада смо инстанце ову класу НСОбјецт,
и ово је само случајни класа да Аппле има.
Смо инстанце смо ово, и сада имам инстанцу ове класе
У овом објекту О, тако да значи да ако сам дефинисао
ове методе могу да их зовем овако.
Слично томе, ако сам хтео да позове метод са једним аргументом,
тако да је ово бар метод, који траје један аргумент,
и овде је баз: кук метод, тако да ово траје 2 аргументе.
Овај зове једну функцију на овом објекту О.
Смисла?
Синтакса треба смисла, али некако навићи на то.
>> Ок, хајде да разговарамо о неким стварима које су уграђене у Објецтиве-Ц
који нису нужно уграђена у Ц.
У Ц смо некако морали да се носе са жицама, као ових глупих карактерне матрице,
и то сам стварно нервира.
Објецтиве-Ц има оних насталих у за нас, и то је изграђен у
Коришћењем овог класу НССтринг.
Када желим да створи НССтринг имамо више Арцане синтаксу.
Уместо рекавши "цс50" Ми кажемо @ "цс50"
а ово је само синтакса за декларисање конце у Објецтиве-Ц.
Ово је изузетно лако заборавити, тако да то не чине.
Сада, када имам ово, ово је ниска, али је приметио
то је заиста само објекат.
Рекао сам НССтринг, што значи да инстанце класе
зове НССтринг, који је неко други написао за мене,
и они су били веома лепо о томе, па се сада
Могу почети позивом методе о томе.
Ако позовем метод дужину на овај објекат с
да ће да се врати са мном дужину стринга.
То је исто као стрлен у Ц
Ово би вратили 4.
>> Слично томе, други метод могао бих желео да брине о ово цхарацтерАтИндек.
То је метод који пише на овај стринг И
Желим да добијете Нулта карактер,
па ово би се вратили на мени карактер ц,
а ту је и гомила више од ових метода које можете да Гоогле заиста лако.
Апплеов документација је велики, а ми ћемо да погледамо да је у мало.
То су низови.
Такође смо променљива величина низови уграђен
Запамтите у Ц када смо прогласили низ
морали смо да кажемо да имамо 5 елемената, крај приче.
Када смо стигли у ЈаваСцрипт и ПХП можемо почети
радите ствари као што додајући елементе или премештање елемената.
Можемо да урадимо исто у Објецтиве-Ц.
Уместо створи низ у нормалном Ц путу
поново имати још једну класу НСМутаблеАрраи.
Ту је НСАрраи,
и ово се дешава у основи ухвати неки низ.
Ово каже прва ствар коју желим да урадим је да сам желео да издвоји
Простор за нови низ, и после сам га издвојити
Онда треба да га покрене.
Опет, само називајући ове 2 методе.
Сада то значи да унутар овог објекта је
Ја сам празан низ седи тамо.
Ако желим да додам нешто овој низа, могу позвати аддОбјецт метод.
Желим да додате објекат низа а, а ја желим да додате ниску ЦС50.
Ако сам хтео да уклони обрнуто да могу да кажем да желим да
уклонити објекат на првом месту на низу или приговор.
>> Смисла?
Ок, некако навићи на овом тргу ствар конзоле.
Узгред, унутар много Апплеовим библиотека видећете ову НС.
У НС заправо скраћеница за следећи корак, који је био један од првих компанија Стив Џобс,
а то је где је он заиста почео да пише доста кода
као врста основа за Мац ОС Кс и све друге ствари,
па ово НС је врста овог лепог легата навијали једном од ранијих предузећа
назад када је Аппле први пут почиње оут.
То је свуда.
Хајде да погледамо на више холистички Објецтиве-Ц пример.
Овде сам унутар Ксцоде.
Да овде сам први пут преузели Ксцоде из Апп Сторе,
отворио га, а затим сам отишао до овде да фајл,
овде новом, а затим пројекта.
После ја да имам све те опције шта желим да креира,
па ћемо касније да погледамо ове опције,
али само за овај пример, јер ми не иде у ствари још да има апликацију,
Дошао сам овде доле, и ја сам рекао Командна линија алата,
и ово је апликација која би могла да покрене на командној линији
баш као што смо били бежи од Ц.
Тако сам створио овај пројекат, и сада сам овде,
па хајде да прво погледамо овај фајл, и то би требало да изгледају прилично познато.
Имам инт име. Ту је мој пријатељ аргц, мој други другар аргв.
И тако видимо да је ово полазна тачка за мој први Објецтиве-Ц апликације.
Овде можемо да игноришемо ово за сада.
Ово је у основи нека управљање меморијом ствари које ћете заиста не
икада морате да бринете о томе.
>> Хајде да погледамо овај први блок овде.
Овај први ред, ако кажем Студентски * Алице = [[Студентски аллоц] инит] шта је то радите?
Овај први студент овде, ово је вероватно класа.
Ово није класа да Аппле написао, али то је класа која сам написао.
Прва ствар коју желим да урадим је да сам желео да издвоји простор за новог ученика,
и онда желим да га покрене, тако да ме ово враћа
овај нови ученик објекат, а ја складиштење то у променљивој под називом Алис.
Одакле та класа долазе?
Па, овде на левој страни су све различите фајлове унутар мог пројекта.
Овде се види да имам Студент.х и Студент.м.
Х фајл., Сетите се, где сам изнети све ствари
да ће постојати у оквиру класе.
>> Хајде да погледамо то.
Добро, овде имамо ову @ интерфејс, а то говори да долази овде
изјаве о свему што ће постојати у мом разреду.
Онда ја имам дебело црево. Онда имам овај НСОбјецт ствар.
То значи да је дебело наследство мало смо разговарали мало раније.
То говори све НСОбјецт може да уради
где НСОбјецт је ова класа написао неко други,
Све ово може да уради НСОбјецт Желим да будем у стању да то урадите.
Говорећи: НСОбјецт то значи да сам ја у суштини
наследио све функционалности друге класе.
То стварно ми је дао гомилу различитих метода и својстава које могу да користе.
Овде доле Правим 2 својства.
То значи да сам студент, ако је ово струцт, то би биле 2 ствари
унутар мог струцт, тако да сваки ученик има име
то је ниска, а студент има оцену,
која је инт.
>> Коначно, овде доле ћу створити метод за мој студент.
Позвао сам мој метод, инитВитхНаме, и то траје један аргумент,
а тај аргумент је ниска, и позвао сам га именовати.
Сада ћемо да погледамо како смо заправо спроводи ову класу.
Ево, сада сам у свог м фајла.,
м за имплементацију, претпостављам.
Имам имплементацију, мој крај, а овде где сам ја у ствари дефинисање
шта инитВитхНаме ради.
Имам инитВитхНаме, име мог параметра, и тај
Овде сам заправо Правим студента,
па ово је мало криптично, али ово је некако општенаменским
које желите да укључите у својим градитељима.
Ова функција иницијализација овде инитВитхНаме је тип конструктора.
Ви сте у суштини изградњу новог студентског објекат
а можда и слање неке податке унутар ње.
Прва ствар коју желим да урадим је да желим да зовем инит на овом супер ствар.
>> Запамтите да када сам рекао овде у датотеци х.
да све НСОбјецт има ученик има.
То значи да када направим студента шта такође треба да урадите је
уверите се да НСОбјецт да сам наследила све те податке из
Такође иницијализована правилно.
Оно што треба да кажем је ово супер је заправо ће да се односи на матичној класи
да сам наследила од, тако да желим да будем сигуран да покрене
све што сам у зависности пре него што почнемо да покушавамо да га користите.
Онда ако је покренут правилно ово је исто као да ако маллоц
нису вратили ништавним онда можете почети постављање неке особине.
>> У ЈаваСцрипт и ПХП смо ова кључна зове ово,
и то се односило на текуће инстанце класе.
У Објецтиве-Ц ми називамо себе.
Када кажем селф.наме, то значи да објекат
Управо сам направио када сам рекао студент аллоц инит,
који ће ме вратити објекат.
То значи да желите да поставите име тог објекта
шта год сам прошао унутра
Баш као у Цу, ми смо приступили чланови са овом тачком,
па селф.наме каже име студентског објекта
сада ће бити све што сте управо прошли унутра
И тако на крају, може да га врати, па сам заиста добити назад нешто.
>> Питања?
Ок, тако да је ово само = супер инит,
ако не потпуно разумем ствари наслеђивања не брините.
Само знам да ако сте икада желели да направите сопствену инит метод само
урадим, а ви ћете бити добро да иде.
Да >> [Студентски]. Шта ради ако само значи?
То значи да, када смо маллоц нешто што ми увек провери да ли је једнака нула,
и ако је нула, онда смо изашли.
То је иста ствар, јер ако се то враћа нулл, онда ћемо вероватно ћемо сегменту грешке
ако почнемо покушава да манипулише.
То је наша студенткиња класа.
То значи да можемо да покрене наше студенте на један од два начина.
Ако кажем ученик аллоц инит ја не користим тај метод који сам написао,
и уместо тога ја једноставно могу да кажем алице.наме,
и сад ћу поставити то име имовине.
>> Слично томе, ако желите да користите тај метод инитВитхНаме
Ја једноставно могу да кажем аллоц, а онда уместо да кажу инит
Ја ћу да позовем тај метод који сам створио, и ја ћу да прође у Бобану.
У овом тренутку, овај објекат Боб има име једнак Бобану.
Ок, овде ја користим тај НСМутаблеАрраи који смо гледали раније.
Ја доделу спаце.Тхен сам иницијализацију нови низ.
Ја ћу додати 2 ствари на њега.
Овај низ сада има студентске објекте.
Приметите да нигде није морам да кажем да је ово низ студената.
Ја сам рекао да је то низ, тачка.
Онда могу ставити год унутар томе да ја желим.
Овде имам 2 предмета.
>> Коначно, имам овде још један објекат, овај ТФ.
Овамо у ТФ.х основи иста ствар.
Ја наследити од НСОбјецт, и успут,
када креирате класе то је све учинио за тебе,
ова врста интерфејса општенаменским.
Она има својство ученика.
Имам пар методама овде да стварно не уради много,
па то значи да након што сам направио овај објекат ТФ
Ја могу да позовем ову оцену метода на њему овако.
Сва питања о Објецтиве-Ц синтакси, пре него што почнете да померате у неке више
Занимљиво апликације развој ствари?
>> Ок, хајде да заправо чине иПхоне апликацију.
Основне класе које ћете бити у коришћењу вашег иПхоне апликацију зову виев контролери,
и поглед контролер основи представља једну екран
унутар апликацију, па ако сам на музичкој апликацији, на пример,
један поглед контролер може представљати став у којем сам приказали све песме на мом иПхоне.
Још један поглед контролер може да буде када кликнете на песму и заиграти га
или као ја бушење доле у ​​уметника.
Сваки од тих различитих екрана може бити представљен као други поглед контролер,
и поглед контролер је заиста само класа која каже како овај екран ради.
Ствари унутрашњост погледом контролера, ми ћемо имати својства,
тако ствари попут дугмета ће бити власништво нашег гледишта контролер.
>> Такође ћемо имати методе, а то су у основи догађаја Руковаоци.
Овај метод каже када притиснете ово дугме
Желим да урадим нешто, и на крају, опет,
ћемо користити ову кључну реч само за приступ тренутну инстанцу.
За изградњу интерфејса у иОС је заправо стварно лако.
Они имају овај леп драг анд дроп интерфејс назван Интерфејс Градитељ,
и 2 основне концепте који жица уп иоур Објецтиве-Ц до интерфејса Буилдер
су ИБОутлет и ИБАцтион.
ИБОутлет једноставно каже да ако прогласи имовину која је дугме,
и желите да га повежете са нечим у свом стварном УИ,
ћеш рећи да је то излаз.
Слично томе, ако желите да представљају руковаоца догађајем
онда ћеш рећи да је то акција.
>> Да заиста жице ову графички приказ
и ваш код је стварно једноставно.
Ако желите да приложите ИБОутлет, све што треба да урадите је да контролишете клик
па ћемо видети пример ово стварно брзо.
Ви контролишете кликните тамо где пише Погледај контролер.
Идеш да превучете у интерфејсу, или обрнуто,
ако желите да прикачите један руковалац догађајем ћете да превучете из интерфејса
у другом правцу.
Хајде да погледамо заиста једноставан иОС пример.
>> Хајде да креирамо нови пројекат.
Ја ћу доћи овде да примене,
и ја ћу да кликнете једне пријаве Приказ.
Идем да кликнете следећи. Ја ћу дати мој пројекат име.
Ја ћу га звати Здраво.
Занимљиво, Аппле претпоставља правите производ
тако да можете да га прода и они могу зарадити.
Овде доле ћу да кажем да је ово иПхоне апликација.
Можете да креирате иПад апликације, или ако желите да направите једну од тих апликација
који подржава оба уређаја можете да урадите то.
То је оно што желите да ваши цхецкмаркс да изгледа.
>> Ви желите да користите сторибордови, што ћемо видети касније,
а ви дефинитивно желите да користите аутоматско бројање референтни,
што је лепо функција која вас спречава да кажем да маллоц и бесплатно.
Уколико не желите да позовете маллоц и фрее, ја бих напустити овај Цхецкед.
Ја ћу кликните нект, и коначно, ово ће ме питати где желим да га сачувате.
Ја ћу погодити креирате и идемо.
Креирао сам нови пројекат.
Овде са леве стране се налазе сви фајлови који су унутар мог пројекта,
и приметио да сам добио гомилу, а ја нисам ни урадио.
ИОС је супер.
>> На пример, овде то ВиевЦонтроллер.х,
ово ће представљати своју прву контролер приказа,
па првом екрану унутар моје апликације.
Сада знамо шта овај говори.
Ми говориш зовем ову класу ВиевЦонтроллер,
и ВиевЦонтроллер чини све да УИВиевЦонтроллер ради,
и то, опет, нека класа да Аппле је написао да ради много ствари згодан за нас
свиђа приказао екран.
Овде је место где ја заправо може почети дефинисањем шта је мој контролер поглед чини,
и испада да ја заиста не треба ништа од тога.
Ово је општенаменским код које је Аппле ми даје бесплатно.
Ја сам потребан тај први ред, или ја немам класу,
тако да можемо да се ослободимо и да се отараси тога.
Ок, ово је мој празан екран.
>> Сада идемо кликните на овај МаинСторибоард.сторибоард,
и то је место где она почиње да интересантно.
Ово представља први екран на мом апликације.
Ако желим да додате дугме у ХТМЛ сам морао да створи ознаку дугмета.
У Андроид морате да креирате ознаку дугмета
али у иОС ако сам дошао овде да у доњем десном углу
и ако сам кликните на овај 3. један овде где пише Објецтс,
и ја се помицати доле, или могу почети у потрази за дугме.
И види, дугме, тако да сам заиста превуците и отпустите тамо ово право,
Управо сам додао дугме на овај екран на мом апликације.
Ако желим да променим текст, ја двапут да кликнете на њу,
рећи нешто мами као "Ме Пресс".
Ок, сада када сам покренути ову апликацију, па смо га састављају,
па да га покренете кликнем на дугме плаи у горњем левом углу, а ту је и мој цца.
Нисам урадио ништа, а ја имам слатко изгледа иПхоне апликацију.
Ако желим да га заустави, можете да кликнете на дугме стоп
јер је много забавније.
>> Рецимо да сам ја заправо желим нешто да се деси када притиснете ово дугме.
Да би то урадили оно што треба да урадите је да сам треба да створе
нови догађај руковалац или акција.
То значи да треба да створе неку методу коју желим да се зове
када сам притисните дугме, па хајде да креирамо нову методу.
Ја сам унутар ВиевЦонтроллер.х.
Морам да кажем да метод постоји.
Треба цртицу први, јер ћу звати ово на приказу контролера.
Морам да дам ово тип.
Тип ће ово бити да ИБАцтион ствар коју смо видели раније.
Ово је догађај за претовар, тако да ће то вратити ИБАцтион,
и ово је подсетник да би Ксцоде да кажем да
ово је нешто што желим да пошаљем нешто.
Могу да дам име, као буттонПрессед, зарезом.
>> Сада сам прогласио нову методу унутар моје класе.
Рекао сам овај метод мора да постоји.
Сада идемо долазе у ВиевЦонтроллер.м,
и рецимо шта овај метод може да уради.
Ако почнем да куцате, на пример, (воид) буттонПрессед
Обавештење Ксцоде је стварно лепо и аутоцомплетес за мене.
То је заиста дивно.
Приметимо да унутар м. Датотеке могу рећи празнину,
а то је зато што ИБАцтион заправо није тип.
То је заправо хасхтаг негде дефинисано да се празнина,
и опет, ово је само подсетник да би Ксцоде да каже
Желим да ово буде догађај за претовар, па ћемо видети зашто у само секунд.
Када се ово дугме притисне ћу да урадим нешто досадне
свиђа приказују искачући.
>> Да бисте то урадили да могу да створе нову инстанцу ове класе зове УИАлертВиев,
и то је класа која Аппле је написао да ће се приказати досадне искачуће прозоре.
Ми ћемо позвати овај попуп упозорење, и имам 2 корака, не заборавите, да створим овај објекат.
Прва ствар коју треба да урадите је да издвоји простор.
Желим УИАлертВиев.
Желим да издвоји простор. То је мој први метод.
Мој следећи метод је желим да га покрене,
па имам велику, дугачку метод назван инитВитхТитле.
То практично ће да контролише шта овај попуп каже.
Наслов мог попуп може бити здраво.
Порука овог попуп може бити "Ово је иОС".
Делегат ствар, ја не знам шта је то.
Рецимо да је то ништа.
Сада дугме које ће се појавити може рећи нешто попут "Наравно да јесте",
а ја стварно не желим било какве друге Дугмад, па хајде да избришете и затворите носач.
>> Ок, ја сам створио додатни један. Ту смо.
Ово је како ја могу створити нову попуп.
Ако желим да заправо показују искачући желим да позовем метод шоу.
Да би то урадили могу да кажем упозорење и показати,
и опет, аутоцомплете било супер лепо.
Ако сам заборавио шта је то било, ако сам откуцао на-с,
Могу крећете овде да схватим шта је то било,
и то лепо филтрира.
Сада сам створио овај нови попуп.
Ми ћемо се вратити на оно што делегат значи касније,
а сада желим да кажем да желим овај метод да се отказ
када сам притисните дугме, па ћу да се вратим у моју сториборд,
и желим да сада приложите овај ИБАцтион.
Прва ствар коју желите да урадите је да кликнете на дугме.
Када притиснем ово дугме желим нешто да се деси.
Нећу да држите контролу.
Идем да кликнете и превучете из дугмета
до овде где пише Виев Цонтроллер.
Можемо видети да се лепо светли.
>> Ако сам пустио са мојим миша сада имам ово искачући овде где имам неке опције.
Један од њих је догађаја који могу да се региструју.
То су све оне методе сам декларисаним у мом х датотеци као ИБАцтионс.
Овако Ксцоде зна шта треба да се појави у овој малој листи,
тако да је то само наговештај.
Ако сам кликните на дугме притисне, сада сам регистровао догађај руковалац.
У ЈаваСцрипт смо имали да кажемо да имамо неку шифру која регистрована догађаја руковалац.
У Објецтиве-Ц је заиста било тако лако.
Ако сам покренути ово поново
сада када сам притисните дугме мој претовар догађај ће се отпустити,
и ја ћу да се овај попуп.
Супер, супер једноставно тамо.
>> Ако сте икада желите да видите све догађаје који се дешавају да се региструју
на компоненте ако кликнете на ово дугме
и ја сам дошао овде на десној страни
Прво што можете видети овде могу да урадим ствари као типа дугмета,
па ако желите један од оних које сам-а или на дугме Адд Цонтацт
или шта год.
Ако желим да видим све догађаје који су на овај тастер
ако дођем скроз овамо на десној страни
овде можемо да видимо на догађајима које имам све ове различите догађаје.
Ја могу притиснути дугме, када сам пустио на дугме, када сам двапут славину или шта год,
а један сам регистрован је ово манифестација под називом Тоуцх унутра,
и то каже да чим је мој прст спадне на дугме
тај догађај ће ватром, а то је управо оно што се управо догодило.
То је врста подразумеваном притиснуто дугме догађаја.
>> Сва питања до сада?
Ок, то је како можемо почети да се жице ствари у нашем коду
у ствари унутар нашег интерфејса.
Запамтите прва ствар коју смо имали да уради је да пронађе код,
а онда смо се жичани да интерфејс кода,
а ту је и наша прва апликација.
Ок, то је било стварно супер, и ми смо створили ово дугме.
Шта ако ми не желимо да се створи гомила својстава
представљајући ову дугмад?
На пример, у Тиц Тац Тое имам 9 тастера,
и то би било супер, супер досадне морати да превучете и отпустите 9 пута
или ако сам морао да Тиц Тац Тое са 81 уместо 9
и морао сам да превучете и отпустите 81 пута, а то је јадно.
Оно што можемо да урадимо је да уместо попут ХТМЛ
када смо имали такве ствари ИД и имена и можемо тражити ствари
њихов ИД, постоји слична идеја у иОС назива ознаке.
>> Таг је једноставно јединствен нумерички идентификатор за компоненту.
Ако ја кажем ово има ознаку 0, на пример,
ако креирате дугме и дајте му ознаку 0, а ми ћемо видети како да се то уради за само секунд,
ако желим да се то дугме Ја једноставно могу да кажем да желим да позовем
виевВитхТаг метод на објекат овамо,
тхе селф.виев, који представља тренутни екран, на пример.
Ако сам зовем виевВитхТаг метод, ја ћу да повуче на дугме са ознаком 0.
Хајде да погледамо ово зграда Тиц Тац Тое.
Прво, ово је мој сториборд.
Направио сам ове 10 УИ дугмад.
Обратите пажњу да су сви исте величине.
Ако сам кликните на једну од њих и да се вратим овде на овој десној страни
видећете да подешава фонт овде, тако да сам направио фонт мало већи,
али оно што сам урадио је да поставим ову ознаку.
Ја сам рекао да ово има ознаку 1, и то је горњи леви.
>> Сада, ако кликнете друго дугме, као што је овај други овде,
Сада ћете видети да је мој таг 2.
Сваки од ових тастера има само јединствену ознаку,
па ово је касније како ћу почети интеракцију
са мојим апликације.
То је све унутар једне приказа контролера,
али овде је оно што ми имамо.
Ми овде имамо 3 својства.
Први и последњи ће да заступа државу мог одбора.
У суштини ово прва је низ представља где КСС и Ос су.
Овај други нас овде говори чији је ред.
Приметићете да сам и ја овде имам те ствари.
Пре него када смо прогласили својства смо им дали име и тип.
Ми такође можемо да им дам неке додатне информације.
Овај први каже нонатомиц, и шта то говори
је у основи само једна ствар никада неће покушати да приступите ову променљиву на време.
Могли сте то урадити сложеније апликације које су мулти-тхреадед,
па назад у Огреби смо имали различите теме,
и различите спрајтови могао радити различите ствари у исто време.
>> Ако то није случај, који није ни у чему да ћемо гледаш,
ако кажемо нонатомиц заправо ће учинити ствари мало брже.
Такође имамо и ову ствар зове доделите, јак или слаб.
Ово доделити само каже да је ово стандардни тип.
Ово није предмет или показивач, јер ово је само боол,
па боол је уграђена у Објецтиве-Ц.
Овај каже да не покушавају да ураде нешто фенси са тројке овде.
То је редовна стара скалер.
Јака и слаба, ова слаба каже да заправо
Желим да се ово указује на нешто у приказу контролера.
Нећу да заправо доделе или инит ово лично.
Интерфејс градитељ, када сам покренете апликацију, ће да обради сву ту иницијализацију.
Ако кажем слаб, да каже неко други ће бити креирање ово.
Ако кажем јак, то говори да ћу бити један
то је стварање овог Одбора објекат,
па овде имам овде још неке методе,
На пример, акција када нова игра се притисне дугме,
акција за када неко од осталих тастера се притисне,
и тако даље.
>> Нећемо ући у превише логике Тиц Тац Тое,
иако је веома узбудљиво, али хајде да погледамо
неке од ствари које можемо урадити унутар иОС.
Ова нова игра метод ће бити отпуштен
кад сам притисните дугме нову игру.
Спојити да се сам једноставно дошао до мене сториборд.
Ја кликнуо на новој игри.
Ако сам дошао овде са десне стране видим да
Тоуцх Уп Унутар жични на невГаме метод.
Зато ће ово да добије отказ.
Тхе невГаме метод је да уради нешто сет уп.
То ће рећи Желим да обришете стање одбора.
То је леп начин на променљивих низова.
То ће рећи да је сада Кс ред,
а сада ћу искористити ову виевВитхТаг ствари.
>> Знам да моји тастери имају ознаке 1-9,
и то је нешто што сам произвољно изабрала.
Ако желим да подесите текст сваког дугмета буде празна
јер сам тек почео нову игру и не желим било
КСС или Ос да претекне ја могу да урадим ово.
Ја могу да кажем да желим поглед са ознаком, 1, 2, 3, 4 и тако даље.
То ће повући дифферент дугме сваки пут.
Ево ја ћу да га баце на УИБуттон.
Као што смо могли бацити Интс да сплавова и обратно
ово говори да желим да се баци ово на УИБуттон.
То значи тип ће бити УИБуттон *
због показивача, али не брините, нису страшно више.
>> Једном сам ово дугме ћу да позове метод на њему.
Овај метод се назива сетТитле форСтате, па то каже
Желим да поставите текст дугмета да буде празан стринг
и желим да то буде празан стринг када није притиснут.
Ако ја користим овај метод, могу променити текст дугмета
чим га неко удари, али ми желимо да кажемо када дугме је само седи тамо
Желим текст да буде празна.
Коначно, ми ћемо да покрене свој одбор,
и ја ћу да кажем да је све тренутно на 0,
тако да овај одбор чланови непроменљив је променљив арраи
што значи да могу да позовем аддОбјецт начин и само 0 унутар њих.
То је оно што се дешава када направим нову игру.
>> Хајде да погледамо другу.
Овај метод је овде ИБАцтион да ће се притисне
сваки пут један од тих тргова притисне.
Сада имамо овде неке Тиц Тац Тое логику.
Ми схватим чији је ред,
и на основу тога смо или подесити Кс или О,
али смо приметили да смо поновним исту догађај руковаоца
за сваку једну од тих дугмади.
То значи да ја немам метод горњем левом дугмета
другачији метод за дугме доле десно, мада сам могао то да урадим.
То не би стварно бити добар дизајн.
Оно што радим овде је да сам заправо ћу одредити
шта ознаку дугмета која је пресованог је.
Ако приметите да је ова представа метод узима један аргумент.
То се зове пошиљалац, а шта пошиљалац је пошиљалац ће се
представљају управо оно што је предузела мере по.
Ако сам притисните дугме, ово пошиљалац ће бити да УИБуттон
да сам заправо притисне, тако да знаци да УИБуттон
има ознаку јер сам направио ознаку.
>> Ако желим да се на ознаци сам једноставно да кажем
Желим ознаку пошиљаоца,
и опет, управо сам га ливени на УИБуттон.
Случајно знам да ће пошиљалац бити УИБуттон.
То не мора увек да буде УИБуттон.
Могао бих, на пример, региструје исти хендлер догађаја
за један за дугме, један за клизача.
У овом случају, знам да су сви тастери, па ћу да кажем
Желим да ово буде дугме, а онда могу добити ознаку,
и из ознаке сада знам где сам унутар одбора.
Онда сам једноставно могу поставити било на Кс или О, да окренете заокрет,
проверите ко је победио, и тако даље.
>> Сва питања о овоме до сада?
Ок, сви смо послали код онлине-не желим да улазим у превише
од Тиц Тац Тое логике, али сада можете да видите да стварно
Све што ми радимо је да смо петље у овом низу,
тако да имамо неколико петљи за овде, а ми ћемо само у односу видети
ми имамо меч у свим редовима, меч у колони или нешто слично томе.
Да заиста покренули ову апликацију, ако сам додирните на једном од ових тастера
да игра метод је отпуштен, па то значи да сам само сет
дугме да буде Кс, тако да сада овај тастер ће бити О, и тако даље,
па то је како смо почели да комуницирају са овим једне странице апликације.
>> Ми ћемо објавити код, тако да слободно прочитати да је,
али хајде да сада разговарамо о неким апликацијама које су више него само једној страници.
Као узбудљиво као Тиц Тац Тое био много апликација унутар иОС
су врста ових вежби доле ствари са вишеструким екранима.
Први концепт који ћемо морати да разговарамо о су протоколи,
и протокол је једноставно скуп метода
које могу да обећам да дефинишете.
Ако направим овај нови протокол са 2 методе, овај први један,
ако повратни тип је ништаван, позвао сам га ФОО.
То нема аргумената. Имам још једну методу.
Она враћа инт. Звала сам га забранили, а траје један аргумент.
Све ово је протокол који се зове СомеПротоцол овде,
ово је скуп ствари које неко може испунити.
Нисам унутар овог протокола рекао оно трла ради.
Уместо тога, ја само кажем да би могла да дефинише фоо ако желите.
Ако сам креирање приказа контролер или стварање класе
Ушао сам унутра да те класе обећање да спроведе
неки од ових метода, тако да на пример, ако кажете <СомеПротоцол>
то сада каже да снимам обећање да ти да унутар
ове класе поглед контролора ћу имати дефиниције за оба фоо и бар.
>> Зашто је то корисно?
Много компоненти унутар иОС искористе ово
Дизајн образац позвао делегацију, а шта каже делегација
је да је, на пример, ако имам оквир за текст
а ту су и неки догађаји који би могли бити регистровани у мој текст,
него стварање одвојене догађаје шта ја могу да урадим је да могу да кажем
делегат ове текст ће бити неки објекат.
Када кажем да је ово сада делегат, то значи да
кад год би неки догађај бити испаљена у поље
уместо да га региструјете или нешто слично
само ће да позове метод на делегата.
На пример, унутар мог текст имам метод када притиснете
да уради дугме у доњем десном углу,
па уместо да региструју догађај хендлер што могу да кажем је
текст, овде је објекат који желим да позове метод на
Сваки пут кад неко притисне дугме Доне,
а то значи да тај објекат мора да спроведе неке протокол
која каже Обећавам да дефинишу ту уради акцију дугмета
јер ако се не дефинише тај метод и притисните Урађено,
онда ће то бити збуњујуће.
>> Хајде да погледамо један пример.
Овде сам само један текст бокс,
и један је од карактеристика овог текст овде на овој десној страни је делегат.
То је имовина класе.
Оно што сам урадио је да сам овде контролисати кликнуо, и ја сам вукао из овог места овде
да поглед контролер, а да сада каже делегат ове текст
ће бити приказ контролер.
То значи да када се деси неки поступци, уместо регистрације
одвојена догађаја Руковаоци желим да их пошаљете делегата.
Сада ћемо да погледамо на мој поглед контролер.
Унутар х фајла. Направио сам обећање.
Сам обећао сам да спроведу неке од метода унутар овог протокола
позвао УИТектФиелдДелегате, и опет,
ово је само неки списак неких ствари које могу да одлуче да спроведу.
>> Ако сам овде у мом м. Фајла, сам спроводи једну такву методу.
Звао сам га тектФиелдСхоулдРетурн
јер то је оно што је назвао унутар протокола.
И сад кад сам притисните дугме Доне унутрашњост тог поља
то је оно што се дешава да се зове, па нисам региструјете хендлер догађаја.
Повезао сам делегат, па кад овај догађај је отпуштен
ово је метод који ће се звао, тако да ако сам дошао овамо да ми сториборд и покренути га-
док се то учитава видимо шта то ради.
На мом екрану имам 2 ствари.
Имам овај текст поље, а ја имам ову ознаку.
Ја једноставно кажем да желим текст ове етикете
да буде једнака без обзира корисник откуцао у унутрашњости поље.
Овај следећи ред овде је једноставно метод који ја зовем
на поље које каже желим да сакријете тастатуру.
Ово је само произвољан начин да Аппле изабрао.
>> Опет, пре него што сам урадио нешто сам морао да пошаљем све горе, па сам први пут дошла овде.
Из приказа контролора сам превуците преко оквира за текст.
Сам пустио, а ја могу да видим овде да направим ову имовину текст поље
јер овде у приказу контролеру сам дефинисао имовину
који је ИБОутлет текстуалног поља.
Овај каже да могу да пошаљем ову некретнину горе
у текстуалном пољу у мом УИ.
Сада када кликнем ово могу почети да куцате.
Сада ако кликнем на дугме урадио ово иде на ватру
догађај који сада могу да одговоре.
Нема догађаја Руковаоци.
Тако сам само одговорила на тај урадио дугме.
Смисла?
>> Ово није дизајн образац који-не би никад нађеш
креирање сопственог протокола, али само знам да су неки
различите компоненте иОС региструјете догађаје на различите начине.
Тастери на пример, користити те ИБАцтионс.
Текст поља, с друге стране, ће користити делегате.
Можемо видети и можете погледати све те унутра документације.
Узгред, у ствари постоји гомила ствари УИ уграђен у иОС за тебе,
тако, на пример, начин на који сам направио да кажем урађено у доњем десном углу
је сам изабрао овај текст поље.
Дошао сам овамо.
Ја помера на доле мало да се врати кључ,
и ја заиста могу да ово гомила ствари, као да желим да кажем да
хитни позив, уместо да могу да урадим, који је потпуно случајна,
а ја не знам зашто постоји уграђени хитан позив дугме,
али ту се каже хитног позива у заиста малим словима.
Изволи.
>> Дефинитивно истраже све ове различите опције у иОС.
Сва питања о делегатима?
Опет, само интересантно дизајн образац који би требало да буду свесни.
Ок, хајде да погледамо следећи столом погледа.
Табела поглед је у основи тај списак ставки које је свуда у иОС.
Када сте листају све своје контакте, гледаш
постављање страница, а та врста списка ствари назива табеле поглед.
Имплементација табеле приказ у иОС је прилично једноставна.
Уместо да правите класу која силази са тог УИВиевЦонтроллер
као што смо урадили пре него што једноставно треба рећи него
све УИВиевЦонтроллер не желим да урадим,
Кажем све УИТаблеВиевЦонтроллер не желим да урадим,
тако да једноставно додаје неке додатне ствари које су потпуно учинио за нас.
Морамо да урадимо врло мало основи попуне празнине унутар стола.
>> Да би приказали табелу морам да одговорим на нека питања.
Прво питање морам да одговорим је колико секције су у табели?
Када сте листају апликацију контаката приметићете да је врста
организовали као, онда имате БС, а имате тај мали под заглавље.
Сваки од њих се зове секција.
Ви може или не може требати ово.
Прва ствар коју треба да урадите је да спроведе метод
позвао таблеВиев: нумберОфСецтионсИнТаблеВиев.
То једноставно враћа колико секције имате,
па ово би могло рећи врати један ако имате једну велику табелу поглед.
Следеће питање које треба иОС да знате је колико редова имате?
На пример, ти летимични поглед табеле.
Имате фиксни број песама гледаш или фиксни број контаката.
Ако мене си, наравно, то није много,
па то је како иОС зна колико ћелије за приказ.
>> Опет, ово би могло рећи нешто попут повратка 3.
Мој поглед сто има 3 реда.
Коначно, иОС мора да зна шта свака ћелија изгледа,
па ста је то заправо ће учинити је назвати ову методу овде доле,
ово таблеВиев: целлФорРовАтИндекПатх.
То ће позвати овај метод на свакој ћелији унутар вашег стола.
Како она зна колико пута да га зовем?
Па, ви то рекли у броја редова у одељку.
Ми ћемо позвати овај на свакој од наших ћелија,
и унутар ово је место где заиста можете да урадите ствари као што је
поставите текст или да вам кажем шта је то мало плаво дугме на десној страни чини.
Образац за добијање ових ћелија, ми ћемо користити ову методу
зове декуеуеРеусаблеЦеллВитхИдентифиер.
>> Објецтиве-Ц је заправо веома добро познат по смешном дужину њихових метода имена,
и ово је заиста леп случај у тачки пример.
Шта је овај метод ради је то само каже да желим да ми даш ћелију.
Само иОС ствар.
Ако имате нешто слично 100.000 песама на вашем иПод
шта иОС не желим да урадите је да издвоји 100.000 ћелија,
јер ако си на врху листе, да ли стварно треба да издвоји меморију
за ћелију која је 99.000 редова доле?
Не, јер као што сте померањем можете некако издваја као идете заједно.
То је учинио за вас.
Не морате да бринете о свим тим глупим учинка ствари.
Све што кажем је да позовете овај метод декуеуеРеусаблеЦеллВитхИдентифиер,
и то каже, ок, ако треба да идем да креирате нову ћелију за вас.
>> Али, ако сте на дну табеле, а већ сте издвојила неке ћелије
на врху табеле да заиста нећемо морати ускоро
Ја ћу да вам дам једну од оних назад уместо доделе нову,
па ово је лепо перформанс забринутост.
Не морате да издвоји ћелија себе.
То ће вам вратити ћелију.
То ће да се врате на вама објекат ћелије.
Када имате мобилни објекат можете да урадите ствари на њега.
Можете да поставите текст ћелије са овом имовином зове текст налепница.
Можете додати да стрелицу на десно или неке друге случајне ствари
са овим другим имовином зове аццессориТипе, и тако даље и тако даље.
>> Хајде да погледамо ствари спровођење сада табеле поглед.
Када сам направио овај пројекат
уместо рекавши једном приказу апликације сам заправо дошао овамо
на мастер-детаљно апликације, па у основи то одговара на маил апликације
на иПад са табеле погледом на лево и онда садржаја на десној страни.
На иПод или иПхоне ће ово да одговара једном приказу табеле.
То је место где сам добио стартер код.
>> Хајде прво да погледамо сториборда.
Све ово је урадио за мене, у суштини створио.
Ова трака за навигацију ми је показао шта пример ћелија може да изгледа,
и ја двапут да кликнете ово, промените наслов.
Било који други УИ бриге могу да поднесем ту.
Заглавље датотеке заиста изгледа једноставно.
Уместо рекавши да је ово УИВиевЦонтроллер сада кажете да је ово
ТаблеВиевЦонтроллер, тако да знамо да желимо да позовем све оне методе табеле.
Следеће Желим да направим имовину која се дешава да представљају
ствари унутар мог стола.
Ова табела ће се произвољно приказивање
Списак воћа, па морам да створе неку низ
у којој могу убацити воће.
Унутар мог имплементације датотеке прва ствар коју желим да радим
је да сам желео да будем сигуран да покрене овај низ.
>> Рекао сам аллоц прва, створио моју воће низ,
а ја сам додао 4 ствари са њим, од којих је много више од друге контроверзне 3.
И сада имамо низ величине 4.
Ми смо га тресе у ЦС50.
Сада имамо низ величине 4.
Сада ћу почети одговоре на ова питања, и заправо,
када сам створио ову апликацију све ово је већ учињено за мене.
Ја не морам да откуцати број секција у стоном приказу.
То је већ био тамо, а ја сам попуњавања празнине.
Колико секције имам?
Један. Све урађено.
Колико редова имам?
Па, имам један ред за сваки плод, тако да је ово тачка
је имовина сваког низа који каже колики је?
То је колико редова имам.
Коначно, морам да кажем шта свака ћелија изгледа?
Ја ћу да кажем декуеуеРеусаблеЦеллВитхИдентифиер.
>> Опет, ово је већ написан за мене.
Ја не морам да урадим ово сам и ја желим да се вратим
Ова ћелија на овој локацији.
Запамтите да зовемо тај исти метод на свакој ћелији,
И овај аргумент овде, индекПатх аргумент
каже шта ред ја сам за
Ако кажем индекПатх.ров доле
ово ће бити 0, онда ће бити 1, онда ће бити 2, а то је да знам
оно ћелија Ја тренутно приказује.
Желим да поставите текст ћелије користећи ову некретнину тектЛабел
да иде у мојој воћа низу и добити
објекат одговара сваком реду.
Ако је ово ниска, ја сам сада постављање
Текст имовина ниске.
Ја могу да урадим још једну ствар.
Ја могу регистровати руковалац догађајем на свакој од ћелија,
тако да када сам додирните сваки од ових ћелија
ово дидСелецтРовАтИндекПатх, ово ће да се зове за мене,
тако једноставно дефинисати то сада могу да поднесем шта се дешава
када тапнете ћелију, и опет, ми пролази у којима је прислушкују мобилни
тако да можемо поново ту исту руковалац догађајем за све наше ћелије.
>> Опет, ово је нешто иОС ради за мене.
Да прикажете другу досадне попуп
да једноставно каже да си изабрао нешто где је нешто
ће бити ред објекат.
Када сам покренути ово, ја ћу да се овај леп поглед табеле
са једним редом за сваки од ових плодова, и ако додирнете неки
то ми говори шта се десило.
Смисла?
Хајде да направимо мало сложенији од неку апликацију,
колико сте одабрали кликнете парадајз је.
Лепо део о сторибоардинг
зар не то само иде да појединачно помогну нам екране дизајна,
такође ће нам помоћи да заједно везати целу нашу апликацију,
па коначно апликација бићемо Зграда је ово лепо спортске вести читач,
па то ће имати вишеструке екране, па ја заправо могу да представљају
сваки од ових вишеструких екрана на сториборд,
и ја могу да умањите и види своју апликацију са високог нивоа.
>> У циљу стварања новог елемента унутар мог сториборда
стварно је једноставно унутар интерфејса Буилдер.
Ако желим да додам још један екран на ово, на пример,
Први пут сам се умањили са потисног зумом да Аппле воли толико,
а овде пре него што сам тражити дугме
и ја превуците и отпустите дугме
ако желите да направите нови екран ја заправо могу само да превучете и отпустите
Цео поглед контролер, тако да ако сам изабрати ово, повуци овамо,
хеј, ту је још један екран, па сада користе исту датотеку сториборд
Ја могу да имају све на екранима унутар моје око, и ја могу да умањите
и видети како они комуницирају.
Они још не интеракцију.
Начин на који су ове 2 екрана интеракцију је да дефинише односе.
Ви у суштини може се рећи овај екран, када притиснете ово дугме,
Желим да клизи преко овог новог екрана.
То значи да је ова врста односа између
Први екран и други екран.
Ви ћете у основи имају стрелу из тог дугмета на другом екрану
рекавши да када притиснете ово дугме то је место где желим да идем.
Као што смо кликнули контролишу и вукао за дефинисање тих локала
ћемо урадити исту ствар дефинисати ове сегуес.
>> Видећемо пример за то, и пре него што смо транзиција
из једног екрана на други иОС је довољно добар да позове ову методу
позвао препареФорСегуе, а то је место где можемо да почнемо
слање података из једне апликације на другу.
У примеру ћемо ускоро гледати на то ће практично омогућити нам
бисте филтрирали тимова бејзбол лиге по и поделе.
Када сам изаберете лигу, на пример, желим да транзиција
на мој следећи екран где може да прикаже све поделе
у тој лиги или свих различитих тимова.
Морам да пошаље том екрану шта тимови треба да прикаже.
Да бисте то урадили да ћу да искористе ову методу овде.
>> Коначно, само случајни тачка на иОС.
Ако желите да сачувате податке постоји та ствар зове цоре подаци,
која је заправо врста компликовано да ради са.
Такође можете да користите за складиштење података СКЛ,
која, опет, лепо, али некако на компликованију стране да раде са,
али иОС такође подржава ове стварно цоол ствари зване проперти листе,
и имовина листа је само фајл који представља кључне вредности парова.
Ви дефинишете листу тастера, а ви кажете овај кључ ће бити низ.
Овај кључ ће бити ниска, а у суштини све што можете да урадите
у ЈСОН можете урадити унутар имовинске листе,
па ово је стварно лепо нам омогућава да радимо са неким подацима.
На пример, имам ову Теамс.плист које сам створио.
Створио сам нову плист фајл, и могу бушити доле.
То је речник, то је речник, то су жице,
па ово је леп графички приказ једног ЈСОН документа
или само скуп кључних вредности парова,
па ово је податак да ћу радити са унутрашње стране моје апликације.
>> Хајде да прво дођу овамо. Сада имамо много више датотека.
Али хајде да прво дођу овамо на сториборд.
Сторибоард овде-ако могу да умањите-
сада можемо да видимо да је ово ток мог апликације.
Прво ћу почети на овом екрану.
Идем да стигните до овог екрана,
и ја ћу да стигните до овог екрана, и овде можемо да видимо да ако некако
преместите неки од ових око нас су ове стрелице иде одавде до овде,
и начин на који сам дефинише ту стрелицу је ако сам увећали мало,
и ако сам дошао на ову приказ контролер,
и овде је ћелија, а ја желим да кажем да када куцнете ћелију
Желим да клизи преко другом екрану.
Ја једноставно не могу држите контролу,
помицати по мало, држите контролу, превуците ову ћелију више и пусти.
>> А овде ми кажу шта је транзиција који желите да користите?
Да ли желите да користите ту ствар која се зове слајд пусх?
Да ли желите да клизи од дна?
То се зове модални.
А када сам кликните на једну од њих, то ће извући ову стрелицу за мене,
а то значи да сам заиста рукује оно што се дешава када притиснете графички ово дугме.
Ја нисам написао било који код да заправо слајд из једног екрана на следећу.
Ја дефинисао ово визуелно унутар интерфејса Буилдер.
Ако кликнем на ову стрелицу, можемо видети да сам дао ову ствар име.
Ја сам то назвао сховДивисионс, а то је да ја могу да знам
шта је транзиција треба да дође, па ћемо видети зашто у само секунду.
Тако сам се жицама различите екране у мојој апликацији.
Ако је ово дугме, на пример, уместо сто изнутра,
Могао контролу кликните на дугме, превуците преко на следећем екрану
и то је како ја могу да урадим за навигацију на тај начин.
>> Стварно брзо, ако дођемо у МастерВиевЦонтроллер,
опет, ми једноставно ћемо дефинисати листу ствари
који ће бити приказан у табели приказу.
Овде говорим да желим да тај плист фајл,
и желим да га напуни у речнику,
и када имате тај речник, ја ћу поново да одговорите на та иста питања.
Овде је број преграда.
Један, постоји један ред за сваку лигу, а текст сваке ћелије
треба да буде или први, први лига, друга лига, и тако даље.
Коначно, ја ћу користити овај метод који смо управо видели зове препареФорСегуе,
и то је метод који ће бити отпуштен када кликнем
на једном од тих редова и зато активирање да је транзиција
да подесите са стрелицама.
То говори да имам више
Односи са једног екрана на други.
Ако имам 2 дугмета, а свако дугме вас води на другачији екран
Ја ћу имати 2 сегуес, 1 за сваки тастер.
Али ово препареФорСегуе је, опет, иде се поново користити
за сваки од различитих односа, тако да значи да сам потребан начин
идентификовања ако притиснете први тастер или притисните други тастер.
>> Сећате се када сам дао тај Сегуе име, то сховДивисионс,
Тако сам ја сада знам да је ово Сегуе која је активирана.
Све што желим да урадим је да сам хтео да кажем
Желим да схватим шта сам погодио,
па да се то, ја могу да кажем да желим индекПатх за изабрани ред,
Сећам се само каже индекПатх где сам кликнуо,
а онда хоћу да кажем да желим да схватим где идем.
Ово дестинатионВиевЦонтроллер, то је имовина Сегуе.
То је екран ћу,
па знам да екран ћу се зове ДивисионсВиевЦонтроллер
јер сам створио ту класу,
па сад, ако кажем д.дивисионс
Сада сам постављању имовину приказа контролора ћу отићи.
То је како сам слања података из једног екрана на други екран.
>> Само гледа овај ДивисионсВиевЦонтроллер
Овде можете видети да је у датотеци х.
ту је та имовина поделе, а то је оно што сам ја у суштини насељавања,
тако да је то како ја знам да сам приказивање поделе одговарају
лига да сам кликнуо, и опет,
стварни приказ табеле изгледа прилично исти, само одговор онима
3 једноставна питања, као и идентификовање
шта се дешава када пређете на следећи екран.
Само пар других ствари овде.
Ви приметили на врху овде да уместо рекавши # инцлуде
Сада говорим # увоз.
Ово је само Објецтиве-Ц ствар.
Увоз је у основи лепша верзија укључују,
и, на пример, морамо да знамо шта је ова класа је,
тако да не могу само да кажем ДивисионсВиевЦонтроллер.
Ако нисмо хасхтаг стандардио.ц унутрашњост нашег ц фајла.
компајлер није имао појма шта принтф био.
Слично томе, ако ја не увози ДивисионсВиевЦонтроллер
компајлер стварно нема појма шта је ДивисионсВиевЦонтроллер.
Само будите сигурни да унутар својих различитих. М фајловима се уверите да увезете
одговарајуће. х датотеке, тако да компајлер зна шта се дешава.
>> Коначно, оно што Аппле коначно не се прикаже неке податке користећи Веб поглед,
и тако веб став је објекат у коме можете да уградите
Мало веб претраживач унутар апликацију.
Све што треба да урадите је да обезбедите УРЛ адресу вашег веб претраживача,
тако да желим да идем у млб.млб.цом,
и ово је како ја могу приступити страницу за сваки тим,
па проласком у овом УРЛ
Веб поглед може да прикаже ово за мене, а ја могу около претраживати,
и симулатор је у употреби до тог једног.
Сада је дошло из моје плист.
Ако сам кликните овај то такође долази из моје плист, а то је клизна руковати
дефинисањем тих сегуес.
Кликнем ово и још један,
и сада овде је мој УИВебВиев, па само тако
ево сајт за УРЛ који сам управо уграђен,
а ја нисам имао ништа за руковање луд.
То је начин да прикаже веб страницу.
Ствари попут овог задњег дугме овде су дати за мене
потпуно бесплатно јер сам дефинисао ове односе користећи сегуес.
>> Има ли питања? Да.
[Студентски] Дакле, када користите аллоц, никада нећете морати да слободно нешто?
Тачно, када позовете аллоц а прва не морате да га ослободе.
ИОС ће да обради све то за тебе.
То је дивно, а ти не прекида било каква правила. Да.
[Студентски] Ако сте били да садржи више тимова који би могао да стане на екрану,
би аутоматски имати померање опција, или је то нешто што треба да додате?
Тачно, ако сам имао више тимова, на пример, аутоматски би се бавио
померање за мене, и све перформансе забринутост
са огромним столом су такође обрађују потпуно за мене.
>> Остала питања?
Све ове кода ће бити објављени.
Врста напоменуто смо преко мало од више мањих детаља,
али ствари као што су постављање неке особине на веб приказ
су само ствари које можете добити прегледањем Апплеову документацију,
што је стварно, стварно лепо изнео.
Они имају много узорака апликација и обичајима примјер
различитог АПИ, тако да дефинитивно прочитати они, ако можеш.
Само неке корисне линкове можда ћете желети да погледате.
Ово су неки згодан документацију водичи.
На адресе су масивни, па су скратили.
Ово прво је читава библиотека документације.
Има мало сеарцх бара, па ако почнете да куцате дугме
он ће почети да вам све информације о свим стварима које можете да урадите са дугметом.
Такође сам укључен у Табле Виев Программинг Гуиде.
Она управља табеле ставове у много више детаља,
како да раде ствари као динамички додају ћелије или уређивање ћелије или их уклонити.
>> Има много примера апликација из Аппле-а који ће вам показати како да то урадите,
и коначно, овај последњи је за Хуман Интерфаце Гуиделинес,
и то је у основи нека расправа о интерфејса компоненти,
ствари као што не чине дугме које је 4 пиксела по 4 пиксела.
То је лоша идеја, и друге ствари које је Аппле жели да урадите
да подстакне добар дизајн.
>> Било последња питања пре него што завршим?
Добро, дефинитивно слободно-Ми ћемо имати посебне ознаке на дискутовати.
Ми ћемо имати иОС један, па дефинитивно слободно да користе то.
Ако желите да радите са својим друговима на пројектима
или да помогне да схватим неке ствари случајно иОС
Слободно ми е-маил, и дефинитивно прегледати све мрежи кода јер
само у интересу време смо некако забашурује више
финије детаље граинед ствари.
Али, ако не, онда срећно на вашим иОС пројекте, и надам се да ћемо имати
велики прилив апликација у Апп Сторе.
[ЦС50.ТВ]