>> RHED SHI: Добре дошли в виж CS50 семинар -
Въведение в IOS.
Благодаря на всички ви, че дойдохте.
Надявам се, че вие ​​сте също толкова развълнувани тъй като аз съм за IOS.
Миналата година взех CS50 като второкурсник, и аз основно се научили IOS за моя
окончателен проект.
И това беше доста -
добре, че не беше лесно, но има много уроци за подкрепа онлайн.
И аз наистина се надявам, че с тази семинар, аз ще ви дам момчета за глава
начало на развитие IOS
>> Така че, от гледна точка на развитието на IOS, има две основни неща, които ние
Искам да обхване днес.
Първо, на езика -
езикът ще бъде в Objective-C. Ние всъщност ще чуете
нещо наистина вълнуващо.
Така че, можете да се присъедините цялата ябълка общност от разработчици и изграждане на някои
наистина страхотни приложения.
>> Също така, IOS 7 е красива, да се надяваме, за някои от вас.
Но това е спорно, знам.
И най-вече, това, което искам да направя е водач вас чрез Objective-C, а също и
Xcode, който е интегриран развитие на околната среда, която ще бъде
работи в за IOS.
>> И така, само една дума на Objective-C. По принцип, това е точно същото като C,
но с много други неща.
И така, по-строго, това всъщност е супер-комплект от C. Така че всичко, което ви
може да се направи в C точно сега, което е основно като PSET от 0 до 6, вие
може да се направи в Objective-C.
>> Така че, не се страхуват за тази нова език, че започваш да се учи.
Вече сме обхванати голяма част от нея, защото всичко, което съм правил C това минало
семестър, с изключение на сега започваш да има още много да се работи.
И аз съм просто ще ви отведе чрез няколко примера, за да подчертае някои
от основните разлики, които намерих бяха Наистина е важно, когато научих,
Objective-C миналата година.
>> И действително, така, друга точка е, Objective-C е, очевидно,
обектно-ориентиран.
И ние ще обсъдим малко за това, което означава, че по-късно.
По принцип, това е като как сте работили с structs в това минало PSET, с
възли и други подобни такива неща.
С изключение, в Objective-C, всичко е обект, и ти започваш да бъде
минаваща около указатели към обекти отколкото самите стойности.
Така че, това е просто нещо важно да се има предвид.
>> Така че, защо да не започнем с няколко разлики в синтаксис между С и
Objective-C?
Искам да подчертая # включват, вие знам, стандартна io.h в C и C + +, с
на Objective-C версия на това, което # е внос, и след това някакъв вид
заглавния файл.
В този случай, би било UIKit, Знаете ли, наклонена черта UIKit.h.
Тя също може да бъде, вие знаете, MKMapview да ви намали MKMapview.h ако искате
да се направи, като, карта вътре на вашия апартамент.
Подобни неща като това.
>> Така че, най-важното е да включва вече е променена, за да импортирате.
Но идеята все още остава.
Ще бъде вносител някаква на заглавния файл във вашата програма.
>> Аз също искам да се подчертае разликата между ФОРМАТ и NSLog.
Въпреки това, както казахме по-рано, Objective-C е строго супер-комплект
С, което означава, че съществува ФОРМАТ в Objective-C, също.
Но повечето хора не използват това.
Повечето хора използват този NSLog защото тя дава щемпел на времето, и ще видим
го в действие по-късно.
Но, това е като цяло по-полезен начин да разпечатате променливи.
>> И аз също искам да подчертая, че NSLog отнема по същия
контейнерите ценности като ФОРМАТ прави -
така% г е за едно цяло число, % F е за оборотни средства.
Въпреки това, аз искам да се подчертае този последният -
NSLog% в знак -
че е контейнер за даден обект.
И както казах по-рано, Objective-C сделки до голяма степен най-вече в обекти,
и така това ще дойде в употреба, когато сте искате да отпечатате, може би, може би един
NSArray, или NSDictionary, или NSString.
>> Така че, също така, забележете, че в нашия NSLog изявление, ние имаме най-знак пред
на цитата -
че трябва да означава, че струни, сега в Objective-C са обекти.
Те вече не са просто Чар звезди.
Те са обекти и са третирани като такива.
>> Така че, това е наистина важно, че когато използвате NSLog отнема в NS
низ, което означава, че вие ​​ще имате да се включи в в предната част на
кавички.
И това е защо вие виждате, тук, във всички моята функция призовава към това NSLog, I
имат най-отпред на котировките, дори макар% D и% F-те на са
все пак от С.
>> Всякакви въпроси досега?
Ще се опитам да мина през това бързо, така че че можем да имаме повече време, за да работят
с Xcode и Objective-C, така че че вие ​​може да получите повече
запознат с него.
>> На следващо място, искам да подчертая нещо концептуално важно.
Така че, в C, повечето неща са функции.
Ние правим извикване на функция.
Ние заявяваме функции по този начин, с връщането тип, а след това на
име на функция, скоби, а след това каквито и да било аргументи, както и вида на
тези аргументи, които искаме да преминават инча
И Objective-C, защото всичко е обект или клас -
така клас и обект са две понятия, които са предимно синоним с всеки друг,
така че могат да ги използват взаимозаменяемо целия семинар.
>> Но, вие ще видите, че ние имаме методи в Цел-C, отколкото функции.
И методи принадлежат към обекти.
Така че, точно както, може би да се например, възел -
нашия тип [недоловим]
възел от PSET 6 или 5 -
имаме думата, собствеността, или на следващия показалеца възел.
Методи са просто функции вътре на някаква структура.
>> Така, в този случай, структурата ще бъде обекта, и след това методът е
нещо, което е обект.
И това е начина, по който ще декларира, вид, метод.
Ще започнем с това, отново, за връщане вид - така, аз се опитах да цвят
кодират ключовите думи тук, така, че вие може да видите, най-малко, форматирането
прилики между функция декларации и декларациите метод.
Така че, да започнете с, нали знаеш, за връщане тип - в този случай, това е един масив, или
на показалеца NSArray -
и тогава ще трябва този метод.
И след това, което е интересно тук е че вместо скоби, ние
имаме тези колони.
И тогава, в предната част на нашите аргументи, ние постави отново в скоби вида
на нашия аргумент.
>> Така че, сега аз се опитвам да се направи сравнение между, нали знаете, и п
номер, защото те са като двете цели числа.
И след това, друга една е тип NSUInteger.
И тогава, с Objective-C, когато искате да имате множество аргументи в
Вашата клауза метод, можете, вид, разделянето им вид като този -
Аз не съм съвсем сигурен как да го опиша, но това е един добър пример за това как
може да има множество аргументи в там.
>> Можеше, разбира се, просто напълно игнорират дебелото черво andArray NSArray
масив, ако искаш просто метод че отнема в един аргумент.
Да, въпрос.
>> ПУБЛИКАТА: Прави ли NSUInteger както и Аргументи NSArray, които могат да бъдат предприети в
в рамките на NSArray?
>> RHED SHI: Да.
Така че, нека ти обясня.
Така че, да.
Така че, въпросът е, са NSUInteger и NSArray * типа на аргументите,
и това е вярно.
Така че, вие винаги искате да се уточни какво типа на аргументите ви е.
И ето, аз се опитвам да ви запозная на някои от синтаксиса и Vocab на
Цел-C, така че тези видове са действителни че ще се занимават с теб.
>> И тъй като вие ще забележите, масиви вече не са, един вид,
прости неща скоба.
Те са обекти.
Макар че, ако се върнем към следващата слайд, можем да видим, че можем
Трудно-код за NSArray в Objective-C с просто символ на пред
скобите.
Аз не съм, всъщност, съвсем сигурен дали I синтактично трудно кодирани масив
правилно за C версия, но това е Предполага се, че в С масив.
>> Така че, това е начина, по който би знаете, може би използвате функциите или
методи, които сме създали по-рано.
Нали така?
Така че, това е мястото, където ние заявяваме нашата функция и нашия метод.
И сега искаме да ги използваме в нашата програма, и това е
как ние ще го направим.
Така че, в C, вие ще трябва, вие знаете, може би, един булев б, а вие да го настроите да
равна на функцията, и след това да премине в аргументите.
>> В Objective-C, това е доста едно и също нещо.
Имате NSArray * my_array, и това е ще се равнява - сега, единственото
Разликата тук е, този обект нещо, които съм оцветена в жълто, и
както можете да видите, в C, има Няма друг жълт дума.
И това е, защото методи принадлежат с определен обект.
Така че защо аз трябва да имате обект че, нещо, нарича този метод на
числото нула, и след това на NSArray а, б, в, г.
Всякакви въпроси, свързани с това?
>> Ще видим тези понятия в действие съвсем скоро, когато отидем в демо.
OK.
Сега, аз искам да поговоря малко за кратко за Xcode 5, което е най-
интегрирана среда за разработка , че ще се работи с.
Знам, че много от вас, или някой от вас, не разполагат с Mac-ове, което е проблем
Xcode, защото не е на разположение за Windows и PC.
Не ме питайте защо, но най-вероятно -
Да, корпоративни.
Каквото.
Но така или иначе, така че, аз се извинявам, ако някои от ви е нужно да изтеглите някаква
виртуална машина за Mac в За да се изпълни Xcode 5.
Но това е доста готин софтуер, за да използвате.
>> И така, преди да се потопите в някаква на демо, аз просто искам да ви покажа
картина на това, което изглежда като Xcode във вашата прозорец, а след това също говори за
какво цялото това пространство е.
Така че, това е един вид като да се учиш как да се използвате Microsoft Word, с изключение на който искате да
се запознае с всички различни неща, които
се случва тук.
>> Така че, на първо място, искам да ви посоча към лентата с инструменти в горната част.
Ще видите, че в горната част, ще имате името на файла -
или, всъщност, си име на проекта и след това името на вашия файл.
Обърнете внимание на пиесата и бутоните STOP.
Това са тези, които ще бъдат използвате, за да стартирате приложението ти относно
тренажор -
симулатора IOS.
Това автоматично идва с Xcode 5, така че не е нужно да се притеснявате за
изтегляне на някакъв вид симулатор.
Просто натиснете бутона за възпроизвеждане и След това той работи приложението ти.
И вие можете да си поиграете с вас, и ще видите как тя работи по-късно.
>> И след това, в центъра, разбира се, е където всички от вашата красива код е
ще отида.
И тогава, от страната на лявата ръка, вие ще имам този, нещо, папка -
навигация -
и след това, вие също така ще се види, че, заедно Заедно с иконата на папката, има
куп други икони там, че ще бъде полезно по-късно.
>> И тогава, от дясната страна е инструмент, област, в която можете да работите с
някои от обектите и уточни, вие знаем, какво трябва да бъде цвета, какво
шрифта на текста трябва да бъде, и така нататък.
Въпреки, че всичко, което правите в района на полезност, можете да
направи в код, както добре.
И така, ще се преминава през две примери за използване, просто не се изобразява код на
всички - или много минимална код -
стихове целия код, просто така, че вие, момчета, Знам какво може и какво не може да се направи в
Xcode и Objective-C.
>> И тогава, най-накрая, на дъното, имате зоната за отстраняване на грешки.
Така, че вече не трябва да стартирате GDB, и т.н., на вашите програми.
Това автоматично го прави за вас.
И вие можете също така да отпечатате неща за тази област.
Така че, всъщност, по-късно, ние ще мине през mario.c, ако вие все още помнят
че в Xcode.
Така, че трябва да бъде забавно.
>> И тогава, само за да го върне към Objective-C, искам да подчертая това, което
можете да направите, ако отчети.
Така че, знаете ли, защото Objective-C е надмножество на C, всичко, което правя е,
буквално същият като C. Ти просто има малки разлики.
Така че, вие ще забележите, че формата за ако твърдение е все същата - да имате
ако и тогава имате скоби с състояние вътре на това и след това
фигурни скоби за каквото и да искам да правя вътре от там.
>> Въпреки това, аз исках да поставя този слайд нагоре тук, просто за да се убедите, че
защото си имаме работа с обекти, сега, ние ще трябва да използвате тези неща
нарича така, е равна на низ, който е случайно, метод на
низ или NSString обект.
Така че, дума, в този случай, е NSString възразят, и тя има метод, наречен е
равна на низ и след това ние сме преминаване в трудно кодирани низ, за ​​да видите
дали тези хора са равни един към друг.
>> Всякакви въпроси досега?
OK.
И аз искам да отида а за изявлението също.
>> Така, например, ако искаме да се накъдрят по дължината на низ в С, този
трябва да бъде запознат с теб.
И, в Objective-C, аз искам за да подчертае това, нещо,
метод, наречен брой.
Ами, всъщност, нека ме просто приемете, че обратно.
Брой е метод на масив.
Въпреки това, той е по-специфично собственост на масив, което е причината да
може да се използва нотация точка.
Но аз не искам да отида в твърде много от Тази концептуална неща, аз просто искам
да ви покажа как ще изглеждат нещата като в Objective-C в сравнение с C.
>> И също така, аз искам да подчертая, че въпреки че аз бях с NSUInteger
пред всичките си аз в Objective-C, можете да използвате и ПНА, защото е Int
напълно валидно в Objective-C, също.
Да?
>> ПУБЛИКАТА: Дали тя просто стилистичен, или е -
>> RHED SHI: Да.
Така че, както ще видите -
Така че, въпросът е, че е просто стилистичен въпрос.
Както ще видите, имам, нещо, звезда звездичка нещо надолу към дъното, и
тази връзка ще ви отведе до Stack Overflow образуват, когато някой обяснява
разликата между едно цяло число в NSInteger и NSUInteger.
И това е така, можете да прочетете за това по-късно.
Тези слайдове ще бъде, разбира се, достъпни за Вас.
>> Нека да видим.
Добре, страхотно.
Така, това също е включена в слайда защото си мислех, че това е страхотна
уеб сайт, който ви запознава да Objective-C синтаксис.
Така че, всъщност, защо не се движим към Chrome и разгледате този сайт?
>> Точно така.
Така че, това, което искам да ви покажа момчета тук е този образ.
Така че, това е, един вид, ще бъде това, което ти започваш да се види вътрешността на всяко
Xcode файл.
Всъщност, защо не можем просто да се момент да, нещо, вземи това инча
>> Така че, тази книга -
това е обект, който че си имаме работа с.
И след това, тя очевидно ще бъде наследена от някакъв друг обект, но
не е нужно да се притеснявате за това.
И след това, тя, може би, има някои променливи членки.
>> Най-важното нещо, което искам да ви покажа е методите за Например, ето.
Така, например методи, са обозначени от този знак минус.
И тогава, както ще забележите, че сме Вече започваме да виждаме парадигмата
за декларация метод, нали?
Типът на връщане, името на метода, и след това вида на спора, и
след името на аргумента.
И този знак минус означава, че това е метод например, което означава, че
тези методи са достъпни само за обекти, които са били инстанция.
>> За контраст, който, методи с плюс подпише пред тях са клас
методи, което означава, че можете да се обадите тези методи, дори ако не разполагате
един обект е създаден още.
Така че, за ясен пример, NSString е клас.
И вие можете да се обадите, например, класове и методи за NSString -
действителната, така, дума NSString.
>> Все пак, за да се използват тези методи, вие всъщност
трябва да създадете низ.
Например, NSString низ звезда се равнява на в кавички, здравей свят.
И след това, можете да използвате тези методи -
методи инстанция -
по този здравей свят низ.
Така че, това е разликата между методи съд и методи на клас.
>> И ние просто покрита тази част.
Имоти са друго нещо, което са във вътрешността на обекти, основно.
И да ги декларира с най имот ключова дума.
Вие имате тези опции, тук, че аз ще обясня по-късно, когато
отиваме в демо.
Да?
Hi.
>> ПУБЛИКАТА: Може ли да увеличите, моля?
>> RHED SHI: О, да.
Извинете.
>> ПУБЛИКАТА: Благодаря ви.
>> RHED SHI: Това трябва да бъде много по-добре.
>> Публика: Да.
Благодаря.
>> RHED SHI: Да, моля те ми напомнят, ако Забравям да увеличите или намалите.
Така че, това е всичко, което исках да ви покажа за -
Уау, това е много -
за този сайт.
Така че, нека да се върнем към нашите слайдове.
>> Всъщност, сега нека да вземем един момент да се потопите в едно демо.
Така че, ние ще започнем с нов проект Xcode.
Така че, ако ще се отвори Xcode за всички Вашите машини, тя трябва да ви отнеме известно
страница, където се казва, като, било открито на съществуващ проект или нов
проект, а вие трябва да щракнете върху нов проект.
И след това, тя трябва да вземе да този екран.
Да?
>> ПУБЛИКАТА: Ако не разполагате с Mac, можем просто вид чил?
>> RHED SHI: Или изгледаха с някого, да.
Да.
Можете да се отпуснете, също.
OK.
>> Така че, това, което ние ще направим първо, сега, е, всъщност, ние отиваме да се направи
едно заявление гледка.
Така че, ако вие ще забележите, това, което е страхотно за Xcode и подкрепа за Apple
разработчиците е, че имате много шаблони, за да работят с вече.
Може, например, да направи майстор-подробно заявление.
Можете да направите една игра -
и всъщност, аз няма да отида в игри, защото игрите са друга история
за развитие на IOS.
И те са вид на отдели, така че аз няма да отида в това.
>> След това, като сте страница, базирана приложения.
Имате заявка за раздела -
Така че, както, например, банка на Америка Вероятно има, като, с раздели ап.
Това са тези, които имате бутоните в долната част.
И след това, имате Sprite Kit игра.
>> Или можете да работите от нулата, което е това, което ние ще направим по-късно.
Но нека първо място, да започне с едно заявление гледка.
След това ще помоля за име на продукта, и просто не можем да направим тест.
Име на организацията -
така, име на организацията, компания идентификатор -
тези, които са от значение, ако ти започваш да сложиш ап на хранилището на ап.
Друг отколкото този, вашия код ще тече абсолютно добре и без това.
>> Това ще бъде важно, ако искате - това е така, само по себе си, като, сложи си ап
на вашия телефон или нещо такова, и тест това, вие знаете, в реалния живот -
това ще бъде важно.
Тази тенденция да обикновено се свързва с някакъв разработчик сметка
с Apple.
>> И така, аз знам, най-вероятно, че много от вас няма да се налага всеки разработчик сметки.
Знам, че университетът има една.
Мисля, че CS е един.
Но, можете да ми пишете и аз ще се опитам да разбера, че за вас.
Но точно сега, аз съм просто пуснати в контейнерите някои неща тук.
>> И вие можете да, разбира се, тук, изберете дали искате тя да бъде единствено в
iPhone, в IPAD, или и двете -
универсално приложение.
Така че, за сега, нека да направим универсално, просто да видят двете страни на платформата.
>> Нека да видим.
Така че, точно сега, аз отивам да се спаси то в някаква папка.
Няма значение къде - вие Винаги можете да го преместите по-късно.
И сега, ние са доведени в нашия Xcode проект.
Аз не бих се притеснявал за всичко това.
Бих предложил да не докосвате някоя от това, ако не знаете точно какво
правиш.
Така че, всичко това, просто да игнорираш за по-голямата част.
Вие не ще трябва да го докосне, и ако смятате ли обърквам някои неща тук, го
става малко сложно.
>> Така че, защо да не погледнем в файловете на
лява страна в нашия навигатор.
Ето, ние имаме AppDelegate.h.
Имаме AppDelegate.m Така че, тъй като ще предизвестие, ние сме заглавни файлове, които
приключи през точка Н, и имаме изпълнение -
Всъщност, нека да я увеличите инча
OK.
Нека да я увеличите инча
>> Нали, така сте заглавни файлове и имате файлове за изпълнение.
Всъщност -
OK.
Това е малко странно, но носят с мен.
След това, тъй като сме избрали един изглед молба, ние ще бъдем
работа с сториборд.
>> Така че, сториборд е нещо, което Apple излезе с наистина да помогне
разработчиците бързо прототип техните приложения.
Така че, това е мястото, където можете да създадете един апартамент, без писане
един ред код.
Въпреки това, в нашата единна молба изглед, ние, разбира се, да има
файл за нас, които е контролер гледка.
Така че, ние имаме част и файл изпълнение, тук.
>> И аз отивам да отдалечите сега, защото ние ще трябва да работим в монтажната маса.
Така че, тук е нашето виждане.
Ако ние, просто, стартирайте приложението, точно сега, там не е много по-вълнуващо става.
Така че, ще видите този бял екран.
OK?
>> И в нашата област комунални услуги, можем да добавим куп различни неща за него.
Така че, когато имаш работа с екрани в IOS, Гледка контролери са на
обекти, които капсулират, нещо, вашите възгледи.
Така че, контролер оглед винаги е свойство гледка.
И тази гледна точка, обикновено, съдържа, Знаете ли, това, което
Искам да видя на екран.
>> Така че, добре, нека просто да започнем с поставяне, може би, може би един етикет.
Така че, нека да поставим етикет на там -
го залепете в средата.
Така че, сега, че съм кликнал върху етикет, I може да отиде в инспектор имоти
и започнат да променят стойността си.
Нека го наречем CS50 Colours.
>> А, аз също може да промените шрифта.
Така, вместо това система, която е по подразбиране, ние можем да направим един обичай.
Ние можем да променим -
нали знаеш, свръхлеки, да я направи 32.
И след това, ние можем да направим нашата кутия по-голям.
>> ПУБЛИКАТА: Смятате ли, че можете да я увеличите само малко повече, може би?
>> RHED SHI: Да?
OK.
>> ПУБЛИКАТА: Просто го докоснете?
>> RHED SHI: Да видим.
Има ли тази работа?
>> ПУБЛИКАТА: Just премине на Xcode?
>> RHED SHI: Разбира се.
OK.
Awesome.
>> ПУБЛИКАТА: Етикетът под?
Етикетът?
>> RHED SHI: Какво е това?
>> ПУБЛИКАТА: Какво падащото беше етикета под?
>> RHED SHI: Така че, въпросът е, какво падащия беше етикета под?
Тя трябва, просто, да бъде под тук.
Предполагам, че това е нещо, което един куб.
Но обикновено, това е по подразбиране -
Отивам тук докато не се намери етикет.
Да.
>> Така че сега, ние имаме нашия етикет.
Нека си го центрирате.
И Xcode ни дава насоки за центриране на обекти.
Така че, сега нека да тече нашия код отново.
>> Ето.
Така че, ние имаме CS50 Colours.
И сега, нека да поставим един бутон там, нали?
Защото ние искаме да направим този интерактивен.
Така че, нека да поставим един бутон тук.
И ние ще се обадя на този бутон чешмата "тук да продължи. "Ние ще го центрирате, също
Всъщност, това е вече в центъра.
Да.
>> Така че, сега имаме един бутон.
И ако ще свършим това отново, ще да има един хубав малък бутон тук.
И мога да щракнете върху него, но той не прави нищо, защото ние не сме направили
нещо с бутона все още.
>> Така че, нека да създадем друг поглед, нали?
Така че, нека да кажа, че искам да се включи този бутон и искам да
отидете на друга страница -
друг изглед.
Това, което аз ще направя, е, не мога да се създаде контролер гледка, нали?
Сега ще кликнете върху бутона ми, а след това, Важното е, че аз отивам да
кликнете - или -
Да, натиснете контрол върху клавиатурата ми.
Control.
Щракнете върху бутона, и след това плъзнете.
>> Така че, не забравяйте да държи контролния бутон.
Да го направим отново.
Така че, дръжте контрол, кликнете и плъзнете на това, което искате да направите.
OK.
>> И сега, имам няколко възможности тук.
Аз може или бута, или мога да направя модал, или мога да направя една поръчка.
Push е само ако имате навигация контролер.
Точно сега, много първата наша гледна контролер не е вътре в някоя
навигация контролер.
Така че, контролерът навигация е едно , която ви дава бутона за връщане на
на IOS ап, където имате, вие знаете, че в началото, нещо, с дебелина бар -
, където можете да се върнете, или напред, и така нататък.
Точно сега, аз нямам такъв.
И така, ето защо аз не мога да направя едно натискане.
>> Така че, аз кликнали върху бута случайно, тук.
И всъщност, нека да стартирате код, и тя трябва да се срине върху мен.
Само ако натиснете бутона обаче, така -
прав.
Така че, това е лошо.
>> И, както виждате, тук, ние има съобщение за грешка.
Така че, "могат да бъдат използвани само Push плавно преминава, когато източник контролер се управлява от
Например на UI навигация контролер. " Така, тъй като това не е вътре в
навигация контролер, Не можех да го направя.
>> Така че, точно сега, Връщам се към папка, връщане назад към монтажната маса.
>> Публика: Какъв е навигацията контролер, отново?
>> RHED SHI: Така че, сега аз ще ти покажа.
Нека да видим.
Така че, аз отивам да кликнете върху този възглед контролер, и след това аз ще отида
до продукта -
всъщност, не, съжалявам - редактор.
И аз ще отида в -
всъщност, съм кликнете върху него?
Не.
Ето.
Отивам да се изкачат в редактор, слез да се вгради в, и след това навигация
контролер.
>> OK.
И моето работно място изглежда наистина разхвърлян, така че нека изчистим това.
Така че, всичко това е сценария.
И по този начин -
OK, спрете -
Аз може бързо да се изгради нещо по този начин.
И тогава, сега мога да се върна, нали знаеш?
>> Но това е нещо скучно, нали?
Така че, това, което искам да направя е, аз не искам да се направи, просто, оглед
контролер.
Да кажем, че аз исках действително да се направи табличен изглед контролер, така че мога да сложа в
някои хубави цветове, в таблицата.
>> Така че, сега, че съм поставил по мое мнение маса контролер, аз трябва да го свържете обратно
от този бутон към оглед контролер.
Така че аз трябва да направя моя контрол, клик, плъзнете нещо отново.
И сега не мога да направя бута, защото аз вградите го вътре на навигация контролер.
>> ПУБЛИКАТА: Navigation контролер просто ви позволява да се премине от едно място на друго?
>> RHED SHI: Да.
Така че, по-технически, това е обект, където -
така, вътре в навигацията контролер обект, той
следи от масив.
И този масив притежава всички последователни видите контролери.
Ето защо, когато натиснете обратно, тя се връща към предишната страница.
Тъй като контролера навигация обект, или код, който се грижи за
този обект, е за масив, която поддържа следите на тези виждане контролери, и
може след това, знаете ли, DQ мнението контролер и ще ви даде обратно
предишния едно.
>> Така че, това е технически неща, но -
и аз ще ви покажа по-късно в код, ако имаме време.
Аз съм вид на изчерпване на време, но -
>> Така че, с гледката на масите, какво можем да направим, е -
Това обикновено се настройва автоматично да Dynamic Prototype -
ние ще го Статични Cells направи, в противен случай ние ще
сблъскате с някои проблеми.
>> И тогава, нека да кажа, че отивам да има един раздел.
Така че, секции е като -
ако някога сте виждали на музика ап, когато имате артисти, секции би
бъде A-те години чрез Z's -
буквите -
и след това, знаете ли, индивидът реда ще бъдат имената на художника.
И така, какво е готино тук, е, че аз мога достъп до всички обекти вътре
на моя сториборд чрез тази падащото меню, също.
>> Така че, аз отивам да кликнете върху моята секция, и аз искам, нали знаеш, може би пет реда.
И тогава, вътре на всеки ред, Искам да се сложи етикет.
И аз отивам да се обадя на този Blue.
И след това, аз искам да поставя цел UI, вие знам, може би за нещо като малка кутийка.
>> Така че мога да покажа на хората визуализация на цвят.
И аз ще се върна към имота и промените този цвят да, о, аз не правя
знаете, това едно.
>> И след това, забележете също, тук, когато имам аксесоарите, мога да имат много
на различните аксесоари което обикновено се наблюдават.
Индикаторът за разкриване на информация, подробности, или отметка, или просто само детайл.
Така че, може би можем да направим, като, разкриване индикатор, например.
>> И тогава, защо не вземем тези, копие да ги поставите, и ги поставя в
следващия ред от таблица.
Така че, можем да наречем този Yellow.
И аз може да се наложи да се разшири това.
Нека го направим по-жълт.
И по този начин, може да се копира поставите нашия път надолу.
Какво беше това?
Purple.
>> Така че, това са всички типичния CS50 цветове, които сте виждали в клас -
Всъщност, съжалявам -
или на интернет страницата.
Надяваме се, вие може да видите какво правя тук.
OK.
Последно едно.
>> ПУБЛИКАТА: Как да добавите реда първоначално?
>> RHED SHI: Така че, въпросът е, как се добавя реда първоначално?
Влязох в този раздел на маса - или все пак мога
изберете раздела на таблицата -
и след това, ето, аз осъвременяване броя на редовете.
>> И, нека се надяваме, че това работи.
OK.
Да видим дали това работи.
О, перфектен, страхотно.
OK.
Докато бях изграждане на моята демо, някои нещата не са били приведени в съответствие, така че, благодаря за
аплодисментите.
>> Да.
Така че, нека да видим.
Ние ще направим това девет, само за да направи всичко - или всъщност, нека просто
превърне всичко това в разкриването показатели.
И след това, което искам да ви покажа, твърде, е как мога да взема всяка една от тези
редове от таблицата и да ги взаимодействат -
о.
Не.
>> Oh.
Също така, аз искам да ви покажа -
тук, мога да сложа заглавието на моя навигация контролер, нали?
Така че, всъщност, вие ще забележите, веднага щом вграден тази гледна контролер вътре
на контролера навигация, виждаме тази лента за навигация в горната част на нашия
сториборд представителство на контролер гледка.
И така, това ни дава, като, визуална, вид, води към нашата видима екран.
Това очевидно ще е лентата за навигация.
>> И това, което искам да направя бързо, сега, се поставя в друга -
така че това табличен контролер направих от като един от тях и го плъзнете
тук, и това е, което ми позволи да бързо, наистина, да създадете изглед на маса
контролер.
Ако имаме време все пак, вие ще се види, че, програмно, това е
малко по-сложно да се създаде таблица оглед контролер, защото има
са няколко методи, които са необходими, за да, нещо, напиши
навън, за да изгледа на маса контролер, за да се покаже правилно.
>> Въпреки това, аз просто искам да ви покажа, сега, пример за това къде, ако аз се възползвам от тази,
например -
Сложих в друг изглед контролер.
И сега, нека да кажа, че искам да се контролира Alt първия ми син
табличен ред до тук.
И аз искам да се обадя на този Blue.
И след това -
нека да видим.
Аз съм на мнение, сега, и аз може да се промени На фона на синьо.
>> И така, забележка, тук, този падащ меню ви дава йерархия на всички
на тези обекти.
Така че важно нещо е да се отбележи, тук, е, че всички тези неща, тук -
този възглед маса контролер, таблицата изглед, изглед секция, маса, маса за оглед
клетка - всички те са обекти, в код.
Така че, знаете ли, етикет в момента е в процес на Разгледайте съдържанието, и така нататък.
Така нататък и така нататък.
>> Така че, ако ние изпълня този код, ние Трябва да видите нещо -
Нека да видим дали това - да.
Така че, ето.
Но, ако ние не го направим, никой на тези други неща работят.
Нали така?
Така че това само един работи.
И в името на време, няма да го направя отида в, нали знаеш, извеждайки
установяване на условията и други такива.
И това е краят на, вид, сториборд -
това, което аз исках да покажа ви за сториборд.
>> И имам разработена например, Всъщност, точно тук.
Така че, това е сториборда че аз направих по-рано.
Така че, както можете да видите, че това е моята навигация контролер.
Тогава за първи път имах контролер изглед, След това имах табличен контролер,
и след това имах всичко това -
толкова по-рано, което правех нещо много по-различно.
Така че, извинете тези неща.
Аз най-вероятно ще го почистя по-късно, преди да Аз го изпрати с производството.
>> Но, ако ще свършим това, ще видим че всички опции са
на разположение за нас.
Само дето не направи фоновете тези цветове.
Така че, хубаво просто приложение.
>> Сега, нека се опитаме да се справим това програмно.
OK.
Така че, за да постигнем това, ние просто ще да започне нов проект Xcode.
Ние ще го празен заявление направи сега, защото ние не искаме да има
сториборд.
Така че, аз съм просто себе си, за да не се ограничава използвате някоя от сценария, и
празно молба няма да дайте ми сториборд.
Това е само за да се предотврати себе си в изневяра.
Нека да видим.
Изчакайте.
Знаете I -
Да.
OK.
>> Точно така.
Така че, ето, ние оставаме с нищо друго, освен код.
Така че, нека да се премести този прозорец малко над.
Точно така.
Както можете да видите тук, единствените файлове не ни дават са AppDelegate.h и дот
м, а ние нямаме Сториборд вече.
>> Така че, ако ще свършим това, ние все още ще стигнем до бял екран, благодаря на Бога.
OK - бял екран, но нищо друго.
И тук е най-важната част.
Това е мястото, където действието се случва.
В предишните версии, има обикновено без код тук, но
сториборд същество осигурява кода за тази част.
Аз няма да навлизам в подробности за това как.
>> И това, което искам да направя сега е, ние искаме да отида в тук, и това малко пространство
започва създаването на нашия ап отново.
Така че -
нали?
>> ПУБЛИКАТА: Zoom?
>> RHED SHI: Zoom.
Да, разбира се.
OK.
Ще се пише, така че това не трябва да значение, прекалено много.
OK.
>> Така че, на първо място, не забравяйте, ние искахме да се създаде навигационна контролер, нали?
И също така, както можете да видите тук, Xcode върши наистина чудесна работа на
самостоятелно пълнене.
Така че, както ще забележите, имената на всичко е много по-дълъг от
обикновено, но Xcode го попълва за вас.
Така че аз може просто да натиснете Enter.
>> Така че, аз искам да се създаде навигация UI показалка контролер, и аз мога да го нарека
navigationController.
Сега, какво да правя сега?
След този знак за равенство, трябва да се, на първо място, тя създаде вътре в паметта.
Така че, аз ще направя NavigationController заделянето на памет -
Така че, това е подобно на изчистване, че вие, момчета, използвани в C -
и след това, аз отивам да го инициализиране.
>> Така че, това е наистина важно, че всяко обект, който създавате, вие искате да
заделянето на памет и инициализиране.
Това ще да го създаде и тя instantialize вътре в паметта, и
сега можете да го използвате.
Добре?
Ако не направите това, вашият обект прави не съществува, и вие ще се сблъскате с един куп
проблеми.
>> И след това, аз искам да се създаде контролер гледка, нали?
Така че, аз искам да се създаде UIViewController звезда -
Така че, всичко е указател в Objective-C, и аз отивам да правя
нещо подобно, тук -
заделянето на памет, първоначален.
OK.
>> И след това, което аз ще направя, е, че съм ще - така, не забравяйте, когато сме направили
за вграждане в навигационен контролер?
Това е начина, по който го направи в код.
Ти започваш да се направи navigationController
pushViewController -
>> ПУБЛИКАТА: [недоловим].
Дали това ще се случи за нас, или -?
>> RHED SHI: О, да.
Не.
Това ми харесва повече.
Не, че ще работи за вас, също.
Така че, това са всички методи.
Така pushViewController е метод, и Също така, по-специално, това е
например метод на ПС навигация контролер.
Защото аз трябваше да създам UI навигация контролер звезда, а след това
да се обадите на този pushViewController на моя конкретен случай на навигационна UI
контролер.
>> Публика: Трябва ли да се направи точно дума, или пък вече съществува за него?
>> RHED SHI: Да, защото това е един метод.
Това е като функция.
Това е като ФОРМАТ.
Това е като scanf.
Това е като strcompare.
Освен това знае какво може да искате да пишете, и забележите, че това ще винаги
излезе с неща, които са законно право за вас.
Така че, ако нищо не се появява тук, тогава нещо не е наред.
>> Така че, pushViewController.
Така че, сега, искам да прокара ми новосъздадения
UIViewController, и след това, анимирани -
може би не.
Тъй като това ще бъде на пръв поглед контролера.
Искам да кажа, дори ако аз го направя анимационен, то вероятно няма да се появи, тъй като
това е първия екран.
>> И не забравяйте, скобите.
Така че, не забравяйте, как използвахме конзолите?
И вътре в скобите, в обект призовава метод -
така че нашата цел е навигацията контролер, и методът е едно натискане
оглед контролер анимирани.
И да видим как тя отнема в два аргумента, и те са отделени от, нещо,
думи, и на дебелото черво.
Така че, Objective-C се опитва да направи това приятно и лесно за вас да се чете на глас -
кода си - и да го имат полу, нещо, да има смисъл.
>> Въпреки това, прави точно това не е достатъчно.
Позволете ми да отдалечите сега.
Правейки само това не е достатъчно, за да получавате това, което ние трябва да по-рано.
Така че тук, вие ще забележите, че има всъщност няма да е каквато и да е
Бар, тук, нали?
Няма по лента за навигация, което означава, че ние все още не сте го придобили.
>> И ние можем да проверим, че навън, също така, от, може би, промяна на фона на
ViewController, нали?
ViewController.background--
ах.
Така че, вижте как ViewController не е имал фонов цвят, въпреки че
Исках да го отворите?
И това е така, защото ViewController е контейнер за изгледа.
Значи, това е с изглед собственост, която след това има цвят на фона.
>> И аз мога да го определя, нещо досадно, като се обадите на цвета
върху обекта UIColor.
Така че, тук известие, redColor е метод.
Това е метод, клас UIcolor.
Защото аз не трябва да се създаде застроена инстанция на UIColor за
да се обадя на метода върху него.
Просто, просто, го нарече върху името на типа като.
Аз, подобно, го нарича на ПНА, ако Int имаше, като, метод за това, например.
>> И така, ако ние изпълня този код, ние ще забележите, че фонът е
всъщност не е червено.
Тя все още е бял.
И как можем да се получи около това е, забележете как там е self.window.
Това е, като, крайната контейнера за вашето приложение.
Тя е най-добрата нещо, което съдържа всичко на екрана, за
iPhone или IPAD приложение.
>> И, удобно, self.window има това свойство
rootViewController.
И това ще бъде на показалеца първи контролера оглед вътре
на вашия апартамент.
Така че, това, което ние искаме да направим тук, сега, е за да зададете, че равен на нашия навигация
контролер.
Нали така?
Защото, технически, навигация контролер е много първата наша гледна
контролер.
То следи масив от друга гледна контролери, и ние избута този
оглед контролер в този масив в контролера навигация.
>> Така че, вие не искате да направите това.
Това не би наистина да ви помогне.
Вие искате да направите това, ако искате да направите навигационна контролер, който най-
от вас вероятно ще тъй като вие ще искате да, нещо, има някакъв вид,
като, меню, за да се върнете към някои или начална страница, за да се върнете към, а не като
празен екран.
Да?
>> ПУБЛИКАТА: неудобно ли е за да можете да увеличите по -
>> RHED SHI: Да.
Така че, да.
Това е кодът, и сега нека да го тествате.
>> Така че, ето.
Magic.
Така че, OK.
Благодаря.
OK.
Така че сега, това, което искаме да направим, е - така, ние сме вид ограничени, тук, нали?
Ние може потенциално да напиша всичко във вътрешността на тази една функция.
Но, това не е начина за развитие IOS обикновено работи.
>> Така че, това, което ще направя, е, че сме ще създадем някои нови файлове.
Но, по-специално, ние ще създадете друг Objective-C клас, или
друг обект -
клас и обекти са взаимозаменяеми тук.
И, ето как можех, потенциално, създадете друг клас U контролери.
>> Така че, това е един подклас, както ще забележите, тук, това е подклас на
Предвид UI контролер, но не мога го наричат ​​всяко друго наименование тук.
Мога да се обадя тази CS50, мога да се обадя този възглед контролер, можех да се обадя
това бла оглед контролер -
нещо, което искам.
Това е само за името на класа.
Въпреки това, той ще бъде важен защото по същество това, което правя
тук е, че аз съм създаване друго име клас.
Така че, това ще бъде, като, някои сортиране на тип или обект.
Значи, това трябва да бъде малко по-родово.
Това няма да бъде много специфична.
>> И също така, аз искам да подчертая тези две опции.
Защото ние правим всичко вътре код, понякога е много по-лесно
да се въвеждат в един файл интерфейс, така че Аз буквално може да плъзнете и пуснете, като
ние направихме по-рано с сториборд -
нали знаеш, етикет, или бутон, или каквото и друго.
И така, xibs са файлове, които ви позволяват да се, че и вие трябва да го свържете
този възглед файл контролер.
>> Така че, аз ще умишлено не проверите това.
Обикновено бих се провери това, и ако аз само че това за iPhone или IPAD, аз
ще провери това и просто да има един Защото, знаете, iPhone или IPAD.
Но тъй като аз правя универсален, аз отивам за създаване на две от тези по-късно.
Така че, аз ще умишлено махнете отметката от тази.
>> Това е също много важно.
Много пъти, аз съм имал бъгове когато това не е проверена.
И така, очевидно, този файл не е, вид, като, включени или внесени
във вътрешността на този тест папка.
И така, моят код има абсолютно никаква представа за съществуването на този файл, и
което причинява много болка и час за отстраняване на грешки.
Но, просто се уверете, че това се проверява, така че, нали знаете, целта на тази
файл е за това приложение.
>> OK.
Така че, сега сме създали две нови файлове.
И тези файлове изглеждат доста празни.
И, всъщност, нека да продължи чрез създаване на XIB файлове.
Така че, преди това, бях в Cocoa Touch падащото меню.
Сега, аз ще отида в Потребителя Interface докосване, и както можете да видите, аз
да създадете сценария.
>> Така че, дори и аз започнах с празен заявление, аз все още може да се използва
сториборд.
Въпреки, че малко по-сложен от гледна точка за това как искате да се свържете
че да си код.
Така че, аз няма да отида там.
>> Но, това, което искаме да направим сега е да създадете изглед.
И вие можете да изберете за един iPhone или IPAD.
И обикновено, за да се обозначи разлика - ако сте прави
универсално приложение -
Или сложи долна черта iPhone, или можете да направите Twiddly.
Всъщност няма значение.
Това е просто, за да се разграничат което мнение е за кое устройство.
>> И така, сега гледам.
Имам един екран, че мога да работя.
И така, например, мога да сложа етикет тук, знаете ли, и аз мога също така да сложите
друг бутон тук.
Аз няма да се притеснява променя стойностите тук.
>> Но, това, което е важно тук е че файлът е собственик -
Така че, аз съм вътре в iPhone изглед, iPhone XIB файл.
И надолу в тази област или навигация падащото меню, искам да отида до
собственика на файла е.
И това е наистина важна стъпка тук.
Искам да направя изгледа на клас контролер, така че този файл е XIB
ще бъде свързан с мое мнение контролер.
И нищо, че аз правя вътре в мен контролер е програмно
ще бъдат отразени тук.
>> Така, обаче, забелязваме, че -
Всъщност, нека направим тази гледна син фон, например.
Или зелено.
И след това, така че ако вие ще забележите, обратно в този кодекс, това е мястото, където ние трябва да ни
навигация контролер.
>> Въпреки, че сме направили тази стъпка, това е все още ще бъде в червено, а не зелено.
И това си има причина защо.
Това е така, защото, когато ние inited нашето виждане контролер, тук -
Съжалявам, че е малко луд -
когато ние inited нашето виждане контролер тук, ние го inited на общия тип
UIViewController.
OK?
Така че ние дори не направи то с този клас.
>> Така че не забравяйте, това е като клас сега.
Тя може да се мисли като вид, просто като UIViewController е вид.
И, за да използвате, че това, което ние трябва да направим, е да го импортирате -
внос ViewController -
и, както можете да видите, че тя autofills за мен.
Така че, ViewController -
и сега, ето, аз мога да променя това UIViewController да ViewController.
И сега, ето, аз мога да променя това ViewController.
>> Нека да тече отново.
Тя все още червено.
И причината, поради която тя е все още е червена, защото -
полудяхме, какво се е случило там?
Искахме да се сдружават този XIB файл с контролера гледка.
Въпреки това, с цел действително да направим че, ние трябва да отида в това.
И когато правим първоначален, което искаме да направим initWithNibName, а след това ние искаме да
направи в низ View_iPhone, например.
Можете да игнорирате вързопа тук.
>> И това ще позволи от нас да, всъщност -
ъ о, има проблем.
Точно така.
>> И така, има проблем, тъй като в нашето виждане XIB файл, имаме етикет и
имаме един бутон.
Въпреки това, макар и да съм свързан тези двамата, няма нищо вътре
ViewController.h или ViewController.m , които отразяват тези
бутони или тези етикети.
Така че, ние трябва да напишете тези в най- свойства на контролера оглед.
>> Така че, това е как вие декларирате имот.
Това отнема в, обикновено, тези две възможности.
За целите на нас и този семинар, Бих казал, че, като цяло,
повечето имоти са nonatomic и задържат.
Можете да прочетете чрез търсене Google, Знаете ли, разликата между
nonatomic и задържа на, вие знаете, Google или нещо такова.
И аз ще ви отведе до нещо като Stack Overflow, където хората ще имат
отговори за различията между тях.
Но за сега, това е, което ние Искам да се занимава с.
>> И ние искаме да направим етикет UI, звезда, и ние можем да го наречем, каквото си искаме.
Можем да наречем това, знаете ли, етикет.
И ние ще създадем друг един за бутона.
И не забравяйте да включите звездичката, защото ние се занимаваме с указатели
почти навсякъде вътре на Objective-C.
>> Въпреки, че все още няма да реши проблема, както можете да видите тук.
И причината е, защото, когато ние искате да се свържете етикет XIB файл или
бутон за програмата, или заглавието и файла изпълнение, ние искаме да
добавите тази част от код -
контакт.
Забележете, че това е ключова дума.
>> И веднага след като свърша с писане това, тя трябва да има тези
две окръжности, тук.
Обикновено те не са пълни инча
Аз не съм сигурен защо са те.
Но обикновено, ще трябва ръчно да ги свържете, като отидете на тази страна на
зоната на комуналните услуги.
>> И така, точно сега, аз имам моя лейбъл избран, и аз искам да плъзнете тази нова
съотнасяне излаз към собственика досието ми е, и след това щракнете върху етикета.
Така че сега, в крайна сметка, този етикет е свързан с този етикет.
И този етикет е това, което ние ще се използвате програмно да промени своята
текст, шрифт, неговия фон цвят на кожата, и така нататък.
>> Така че, защо да не правим Същото важи и за бутона?
И тъй като вие ще забележите, за бутона, това е малко по-сложно.
Защото, искам да кажа, вие трябва да натискане на един бутон, така че има много
опции за това как потребителите да натиснете върху бутона.
И след това, ще видим по-късно, че можем да свържем това с нашия
код, за да я накара да работи.
>> Така че, за сега обаче, ние искаме да се свържете да действителната бутона
във вътрешността на нашия код.
Така че отиваме на нова изхода на съотнасяне, и след това направете бутона.
Сега, нека да тече отново.
Uh о.
OK.
Не знам какво става тук.
Whoa.
Само един момент, тук.
>> Всъщност, защо не можем да разгледаме още един пример в
интерес от време.
OK.
Така че, тук е по-лесно да се получат Например за ViewController.
Както можете да видите тук, аз бях включен свойствата за
етикета и бутона.
И тогава, тази част от кода тук -
този IBaction -
е връзка към този бутон тук.
Така, както можете да видите тук, Touch Up Inside е свързан към селектор
наречен натиснат бутон.
>> Така че, ние всъщност може да мине през Предложение отново тук, като се вземат Touch Up
Вътре и го издърпате Собственик на файла, а след това
кликнете върху бутон натиснат.
Сега, нека да тече нашия код.
Така че сега, този бутон сега работи и ще ни отведе към следващата страница.
>> И от гледна точка на нашето виждане контролер, това е част от код, която се
грижа на бутона натиснат.
И това е важно да се отбележи тук, че Аз създадох друг тип оглед на
контролер нарича маса оглед контролер.
Така че, това е подобен на резервно копие в сториборд, когато влачат един от
тези табличен контролери в сценария.
Аз съм създаване друг
>> Указател към администратора на изглед на маса, заделянето на памет и първоначален-ING, и след това да направите
самостоятелно точка навигация контролер, бутнете ViewController, тази нова
viewController.
И съм задал анимацията да да, защото сега вътре в моя апартамент, а аз
Искам наистина да видите анимацията ще от началната страница на масата
оглед контролер.
>> ПУБЛИКАТА: Все още ли се притесняваш за събиране на боклука?
>> RHED SHI: Какво е това?
Не.
Така че, въпросът е, имате ли да работят с събиране на боклука?
Така че, Xcode 4 имаше подобно ARC, което е автоматична препратка броене.
И така, обикновено, когато започнете нов проект, вие ще проверите това, защото
никой не иска да се занимава с освобождава памет и такива неща.
Но мисля, че в Xcode 5, там дори не е този вариант на новия проект.
Така че, той автоматично прави това за вас.
Да?
>> ПУБЛИКАТА: Можете ли да експортирате PDF в сценария?
>> RHED SHI: Да, определено.
Така, всички от тях ще бъдат включени в изходния код, така че вие ​​може да се провери
действителната проекта Xcode за него.
Да?
>> ПУБЛИКАТА: Но, искам да кажа, като, може ли отпечатване на PDF с моя сценария?
Ако просто искате да експортирате изображения, за да покажете на някого.
>> RHED SHI: О, да.
Мисля, че, може би, може просто да вземе снимка на екрана.
Да, и да ги изпрати на екрана удар или нещо такова.
Да.
>> Така че, нека да видим.
В интерес на време, мисля, че това е всичко, което може да покрие днес.
Но, знам, че това е, всъщност, просто едва докосва повърхността на IOS
развитие.
Така че, моля, чувствайте се свободни да се свържете с мен, ако имате някакви въпроси за IOS
развитие.
И, надявам се, ще бъде в състояние да почистите някои от кода на източника
файлове с код, така че ще имат някаква много хубави примери, за да се работи.
>> Други от това, ако вие ще до CS50 Hackathon, аз може или не може
не е там, и мога да помогна с известно развитие IOS, също.
Така че, благодаря много, момчета.