1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Семинар] [iOS: Пишување Apps Како шеф] 2 00:00:02,000 --> 00:00:04,000 [Томи MacWilliam] [Универзитетот Харвард] 3 00:00:04,000 --> 00:00:08,000 [Ова е CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Сите права, сите, добредојде на iOS: Пишување Apps како шеф. 5 00:00:12,000 --> 00:00:16,000 Овој семинар ќе се фокусира на пишување апликации за iPhone 6 00:00:16,000 --> 00:00:19,000 и за возврат пишување апликации за iPad, и така ние сме во основа ќе прошетка низ 7 00:00:19,000 --> 00:00:23,000 неколку различни примери за тоа како да се направи еден стан, едноставна игра како Tic Tac Toe, 8 00:00:23,000 --> 00:00:26,000 или ако сте повеќе заинтересирани за правење стан како некој вид на читач на вести 9 00:00:26,000 --> 00:00:30,000 или нешто што се поврзува со интернет ќе зборуваме за тоа како добро. 10 00:00:30,000 --> 00:00:32,000 Ова е нашиот краток агенда. 11 00:00:32,000 --> 00:00:36,000 >> IOS апликации се напишани на јазик наречен Objective-C, 12 00:00:36,000 --> 00:00:39,000 и така ова е малку сличен на C но не и навистина на сите, 13 00:00:39,000 --> 00:00:41,000 па ние ќе се зборува малку за самиот јазик 14 00:00:41,000 --> 00:00:45,000 а потоа како да се изгради iPhone апликации со користење на овој стан програма наречена Xcode, 15 00:00:45,000 --> 00:00:48,000 кои ако не се симне уште се чувствуваат слободни да го започнете преземањето сега. 16 00:00:48,000 --> 00:00:50,000 Тоа е неколку гигабајти. 17 00:00:50,000 --> 00:00:54,000 Тоа треба да биде бесплатно на App Store, па ќе треба да имаат Mac 18 00:00:54,000 --> 00:00:57,000 идеално водење на најновата верзија на OS X. 19 00:00:57,000 --> 00:00:59,000 Ако не сте, нема проблем. 20 00:00:59,000 --> 00:01:02,000 Имаме Macs во науката центар достапни за ваша употреба 21 00:01:02,000 --> 00:01:05,000 со Xcode инсталиран, и така се чувствуваат слободни да ги користат овие за развој. 22 00:01:05,000 --> 00:01:07,000 Ако сакате да се направи еден стан, но немаат Mac, не се грижи. 23 00:01:07,000 --> 00:01:09,000 Има многу на кампусот ресурси за тоа. 24 00:01:09,000 --> 00:01:15,000 И така, тогаш ние ќе ги покрие 2 поголеми примери на различни апликации може да се направи. 25 00:01:15,000 --> 00:01:19,000 Objective-C е технички она што се нарекува супер сет на В 26 00:01:19,000 --> 00:01:24,000 Тоа значи дека секој код C важи Objective-C код. 27 00:01:24,000 --> 00:01:29,000 Тоа значи дека ние вид на канал снимено на некои дополнителни опции за C. 28 00:01:29,000 --> 00:01:33,000 Некои од овие карактеристики не вклучуваат морале да некогаш се напише Примерок повторно, фала богу, 29 00:01:33,000 --> 00:01:36,000 без да се грижите за оние глупави совети и ослободување на нив и сите нешта 30 00:01:36,000 --> 00:01:40,000 можете мразеше за C, а тоа е вид на качил во Objective-C. 31 00:01:40,000 --> 00:01:43,000 >> Сега, Objective-C, исто така, има многу поголем стандардната библиотека, 32 00:01:43,000 --> 00:01:47,000 па има многу повеќе функционалност ќе добиете бесплатно внатрешноста на Objective-C. 33 00:01:47,000 --> 00:01:50,000 Се сеќавам кога бевме пишување PHP забележавме дека отидовме од 34 00:01:50,000 --> 00:01:54,000 овој најмалиот јазик на гигант библиотека на сите овие луди работи што можете да направите. 35 00:01:54,000 --> 00:01:56,000 Истото се случува во iOS. 36 00:01:56,000 --> 00:01:59,000 Има предмети за нешта како календар будисти, и навистина ништо 37 00:01:59,000 --> 00:02:05,000 што веројатно може да се мисли на веројатно постои веќе во спроведувањето Objective-C е. 38 00:02:05,000 --> 00:02:08,000 Целта дел од Objective-C е референцирање нешто 39 00:02:08,000 --> 00:02:11,000 наречен Објектно-ориентирано програмирање. 40 00:02:11,000 --> 00:02:14,000 Ова е вид на нов концепт, но ние сме всушност најмногу научив 41 00:02:14,000 --> 00:02:17,000 многу од овие концепти веќе. 42 00:02:17,000 --> 00:02:19,000 Идејата зад Објектно-ориентирано програмирање е дека си оди за да се структурира 43 00:02:19,000 --> 00:02:23,000 многу од вашето кодот околу овие работи вика класи, 44 00:02:23,000 --> 00:02:26,000 и овие класи се навистина прослави structs. 45 00:02:26,000 --> 00:02:30,000 Внатрешноста на struct ние во основа рече дека тука е нешто, 46 00:02:30,000 --> 00:02:32,000 и оваа работа може да има членови. 47 00:02:32,000 --> 00:02:35,000 На пример, еден јазол во поврзани листа би можеле да имаат и други работи 48 00:02:35,000 --> 00:02:38,000 како вредност, покажувач кон следниот јазол во листата, 49 00:02:38,000 --> 00:02:44,000 и заедно дека покажувач и таа вредност составена оваа една инстанца на struct. 50 00:02:44,000 --> 00:02:47,000 Класите се многу слични, освен 51 00:02:47,000 --> 00:02:50,000 класи, исто така може да имаат функции во внатрешноста на нив. 52 00:02:50,000 --> 00:02:54,000 Кога ќе прогласи struct, ние само може да се каже int n или јазол * следната. 53 00:02:54,000 --> 00:02:57,000 >> Сега со Objective-C ние всушност може да се стави функции 54 00:02:57,000 --> 00:02:59,000 внатрешноста на тие работи. 55 00:02:59,000 --> 00:03:03,000 Друга работа што наставата може да се направи е тоа што тие можат да го наследат податоци од други класи. 56 00:03:03,000 --> 00:03:07,000 На пример, ние ќе се гледа во еден куп вграден во Objective-C класи. 57 00:03:07,000 --> 00:03:11,000 Еден од нив би можело да биде класа која претставува поглед на екранот, 58 00:03:11,000 --> 00:03:14,000 и така од велејќи дека сака да го имплементира мојот став 59 00:03:14,000 --> 00:03:18,000 ние во основа се каже некој во текот на Apple, веројатно навистина убави луѓе, 60 00:03:18,000 --> 00:03:21,000 напиша оваа класа за мене, а тоа се справува со работите како прикажување на копчињата 61 00:03:21,000 --> 00:03:25,000 или рендерирање на екранот, и ние ќе биде навистина болна 62 00:03:25,000 --> 00:03:28,000 за спроведување на сите дека функционалноста себе, и тоа со едноставно 63 00:03:28,000 --> 00:03:31,000 наследување податоци може да се каже сè што направи во таа класа 64 00:03:31,000 --> 00:03:34,000 Исто така, сакам внатрешноста на мојата класа, а потоа јас ќе одам да направите некои други работи, 65 00:03:34,000 --> 00:03:37,000 имено спроведе стан. 66 00:03:37,000 --> 00:03:40,000 Тоа е она што тој збор наследство значи. Ќе видите повеќе конкретни пример. 67 00:03:40,000 --> 00:03:42,000 >> И, конечно, клучот со Објектно-ориентирано програмирање е дека 68 00:03:42,000 --> 00:03:45,000 тоа доведува до податоци херметичка. 69 00:03:45,000 --> 00:03:48,000 Во некои од нашите проблемот поставува ние би можеле да имаат овие големи, глобални променливи 70 00:03:48,000 --> 00:03:51,000 и глобалните насекаде, а тоа е како ние ќе ги пратите на државата. 71 00:03:51,000 --> 00:03:55,000 Со часови можеме да почнеме концизирајќи информации во внатрешноста на објектот. 72 00:03:55,000 --> 00:03:58,000 Ако имаме еден екран на нашиот стан, ние навистина не треба да имате било какви податоци од 73 00:03:58,000 --> 00:04:01,000 друг екран во нашиот стан внатре во тоа, 74 00:04:01,000 --> 00:04:04,000 и така од страна на encapsulating работи во рамките класи ова всушност води 75 00:04:04,000 --> 00:04:08,000 да многу подобро кодот дизајн, и тоа е можно со некои дополнителни функции 76 00:04:08,000 --> 00:04:11,000 на Objective-C. 77 00:04:11,000 --> 00:04:15,000 Предупредување, синтаксата за Objective-C е банани. 78 00:04:15,000 --> 00:04:19,000 Тоа е како ништо што сум видел, 79 00:04:19,000 --> 00:04:22,000 па тоа е малку на кривата на учење се користи за добивање 80 00:04:22,000 --> 00:04:24,000 она што е грижам значи ова? 81 00:04:24,000 --> 00:04:27,000 Но, штом еднаш ќе добиете минатото дека првичните кривата на учење тоа е навистина, навистина мазна 82 00:04:27,000 --> 00:04:29,000 да започне пишување апликации. 83 00:04:29,000 --> 00:04:33,000 >> Да се ​​изјасни за класа, да кажам тука е мојата класа, постои, 84 00:04:33,000 --> 00:04:35,000 а можеби и тука се и некои работи што јас ќе одам да се дефинира подоцна, 85 00:04:35,000 --> 00:04:38,000 Одам да се каже @ интерфејс. 86 00:04:38,000 --> 00:04:41,000 Одам да се каже @ интерфејс. Одам да даде мојата класа име. 87 00:04:41,000 --> 00:04:43,000 А потоа подоцна некаде на друго место јас ќе одам да се каже @ крајот, 88 00:04:43,000 --> 00:04:46,000 и сето она помеѓу @ интерфејс и @ крајот 89 00:04:46,000 --> 00:04:48,000 ќе биде мојот клас. 90 00:04:48,000 --> 00:04:51,000 Тоа ќе биде она што е внатре од нашите. Ж датотеки. 91 00:04:51,000 --> 00:04:55,000 Исто како и во C нашите. Ж датотеки во основа рече тука се и некои работи кои ќе постојат. 92 00:04:55,000 --> 00:04:57,000 Јас не сум секогаш ти го кажувам она што го прават, сепак, 93 00:04:57,000 --> 00:04:59,000 но компајлерот треба да знаат дека тие постојат. 94 00:04:59,000 --> 00:05:04,000 Подоцна во внатрешноста на нашите. M додадени фајлови:-бидејќи сум за Objective-C 95 00:05:04,000 --> 00:05:08,000 е местото каде што ние, всушност, ќе се дефинира што овие класи се направи. 96 00:05:08,000 --> 00:05:11,000 Слично како нашите. В датотеки, ние обезбеди имплементација за функции. 97 00:05:11,000 --> 00:05:15,000 Внатрешноста на нашите. M датотека ние ќе кажам тука е она што сите функции 98 00:05:15,000 --> 00:05:18,000 внатрешноста на мојата класа она што сите тие го прават. 99 00:05:18,000 --> 00:05:22,000 И, конечно, внатрешноста на struct можеме да кажеме внатрешноста на оние кадрави загради 100 00:05:22,000 --> 00:05:25,000 int n или јазол * следната, 101 00:05:25,000 --> 00:05:28,000 и во Objective-C ние ќе го користите клучниот збор @ имот, 102 00:05:28,000 --> 00:05:31,000 и тоа е она што се случува да се дефинира својства, 103 00:05:31,000 --> 00:05:36,000 или не-функции кои се дел од моите часови. 104 00:05:36,000 --> 00:05:40,000 >> Повикувајќи функции во Objective-C е, исто така, банани. 105 00:05:40,000 --> 00:05:43,000 Кога ќе прогласи функции во C рековме нешто како int foo 106 00:05:43,000 --> 00:05:46,000 и отворени paren а потоа даде листа на аргументи. 107 00:05:46,000 --> 00:05:51,000 Тоа е она што прогласување методи или функции изгледа во Objective-C. 108 00:05:51,000 --> 00:05:54,000 Ако сакам да прогласи функција или метод 109 00:05:54,000 --> 00:05:58,000 каде што сакам да кажам дека методот е навистина само функција која е член на класа, 110 00:05:58,000 --> 00:06:01,000 па вид на меѓусебно заменливи, но не и навистина, 111 00:06:01,000 --> 00:06:03,000 па внатрешноста на мојот метод сакам да се создаде нов метод. 112 00:06:03,000 --> 00:06:06,000 Тоа се случува да се врати ништо, па тоа нема да биде од тип неважечки. 113 00:06:06,000 --> 00:06:08,000 Тоа е враќање тип на мојата функција. 114 00:06:08,000 --> 00:06:11,000 Сега имаме parens тука, бидејќи-Не знам. 115 00:06:11,000 --> 00:06:14,000 Следна ќе биде името на мојата функција, 116 00:06:14,000 --> 00:06:17,000 а потоа конечно имаме запирка исто како и имавме во C. 117 00:06:17,000 --> 00:06:19,000 Што е ново тука е овој човек овде. 118 00:06:19,000 --> 00:06:22,000 Ова цртичка е, всушност, е потребно, и што тоа вели дека 119 00:06:22,000 --> 00:06:26,000 овој метод тука мора да се повика инстанца на класа. 120 00:06:26,000 --> 00:06:29,000 >> Откако ќе прогласи нашите structs ние најверојатно рече нешто како 121 00:06:29,000 --> 00:06:32,000 struct јазол n, и дека всушност се создаваат 122 00:06:32,000 --> 00:06:35,000 или instantiated еден од оние structs, така што јас всушност би можеле да почнат да работат 123 00:06:35,000 --> 00:06:38,000 со она што е во него, така што ова цртичка значи дека ние треба да 124 00:06:38,000 --> 00:06:41,000 показ на класата исто како што instantiated дека struct 125 00:06:41,000 --> 00:06:43,000 пред можеме да го наречеме овој метод на неа. 126 00:06:43,000 --> 00:06:46,000 Ако сакам да започне додавајќи аргументи на мојот методи 127 00:06:46,000 --> 00:06:48,000 станува дури и повеќе банани. 128 00:06:48,000 --> 00:06:50,000 Еве го мојот метод име. 129 00:06:50,000 --> 00:06:53,000 Потоа јас ќе одам да имаат дебелото црево, и по ова дебелото црево се вели тука доаѓа некои аргументи. 130 00:06:53,000 --> 00:06:56,000 Овој метод ги зема еден аргумент. 131 00:06:56,000 --> 00:06:59,000 Типот на нејзиниот аргумент е цел број, и името на тој аргумент 132 00:06:59,000 --> 00:07:03,000 или променлива што јас ќе одам да започнат со користење на внатрешноста на метод се јавив. 133 00:07:03,000 --> 00:07:05,000 Повторно, ова е метод. Таа ги зема еден аргумент. 134 00:07:05,000 --> 00:07:10,000 >> Ако сакате да започнете додавајќи повеќе аргументи што се добива повеќе банани 135 00:07:10,000 --> 00:07:13,000 во кои имаме оваа дебелото црево кој се вели дека тука доаѓа мојата листа на аргументи. 136 00:07:13,000 --> 00:07:15,000 Ова Првиот аргумент е цел број. 137 00:07:15,000 --> 00:07:17,000 Сега, овој вториот аргумент е интересно. 138 00:07:17,000 --> 00:07:20,000 На променливата што јас ќе одам да се користи во внатрешноста на мојата функција 139 00:07:20,000 --> 00:07:23,000 се нарекува ѓ, па внатрешноста на мојата функција би можел да каже 140 00:07:23,000 --> 00:07:25,000 ѓ + = 1 или нешто. 141 00:07:25,000 --> 00:07:30,000 Оваа работа тука е всушност клучот за тој аргумент или параметар. 142 00:07:30,000 --> 00:07:34,000 Исто како и ние имавме клучните вредност парови и нешто како JSON или асоцијативни низи 143 00:07:34,000 --> 00:07:37,000 Objective-C донесе одлука да се каже, во ред, само така што тоа е навистина јасно 144 00:07:37,000 --> 00:07:39,000 кога ќе се јавите на методот што сите овие параметри се 145 00:07:39,000 --> 00:07:41,000 Јас сум, всушност, ќе се именува сите нив. 146 00:07:41,000 --> 00:07:45,000 Кога ќе се јавите на метод, вие всушност ќе кажам andFloat, 147 00:07:45,000 --> 00:07:47,000 и тогаш ќе помине внатре 148 00:07:47,000 --> 00:07:50,000 >> Интересно, ова не е именуван, но сите други параметри се, 149 00:07:50,000 --> 00:07:53,000 па ако имавме 3 аргумент можев да кажам andFloat 150 00:07:53,000 --> 00:07:56,000 и уште плови и така натаму. 151 00:07:56,000 --> 00:08:01,000 Кога ќе се јавам на овие методи е секако банани, 152 00:08:01,000 --> 00:08:04,000 па ако имам некој објект, и јас дефинирани метод наречен foo, 153 00:08:04,000 --> 00:08:09,000 и јас сакам да го нарекуваат, наместо велејќи foo отворање / затворање parens 154 00:08:09,000 --> 00:08:11,000 Одам да се отвори заграда. 155 00:08:11,000 --> 00:08:13,000 Тука е името на мојот метод. 156 00:08:13,000 --> 00:08:17,000 Одам да се затвори заградата, а тоа е предмет сум повикувајќи го. 157 00:08:17,000 --> 00:08:20,000 Запомнете, сите од овие методи постојат во класи 158 00:08:20,000 --> 00:08:23,000 бидејќи наставата може да се методите дефинирани во внатрешноста на нив. 159 00:08:23,000 --> 00:08:26,000 >> Тука сум произволно создаде објект на некои класа, 160 00:08:26,000 --> 00:08:28,000 и ова е синтакса за тоа. 161 00:08:28,000 --> 00:08:31,000 Постојат 2 чекорите за создавање на објектот. 162 00:08:31,000 --> 00:08:34,000 Првиот чекор е да се каже сакам да одвои простор. 163 00:08:34,000 --> 00:08:37,000 Ова е еквивалент на Примерок. Ние не треба да се каже Примерок повеќе. 164 00:08:37,000 --> 00:08:42,000 Ние падна метри, го направи alloc и замени. C со. М. 165 00:08:42,000 --> 00:08:47,000 Откако ќе alloc нешто тогаш ние треба да го иницијализира. 166 00:08:47,000 --> 00:08:49,000 Во суштина, кога ќе се создаде објекти можеби ќе сакате да се има некоја логика 167 00:08:49,000 --> 00:08:53,000 кој извршува кога тие се создадени, па можете да помине во некои стандардни вредности 168 00:08:53,000 --> 00:08:57,000 или нешто слично, па така ова init метод е тоа што всушност се создава на објектот. 169 00:08:57,000 --> 00:08:59,000 Ние прво одвои простор, исто како што направивме во C, 170 00:08:59,000 --> 00:09:04,000 а потоа да се иницијализира, кој може или не може да се направи целина многу. 171 00:09:04,000 --> 00:09:07,000 Тогаш ние сме се враќаат тоа нешто во објект о. 172 00:09:07,000 --> 00:09:09,000 Има ѕвезда тука, бидејќи ова е технички покажувач, 173 00:09:09,000 --> 00:09:12,000 но не грижете се, показалки не се толку голем договор во Objective-C повеќе. 174 00:09:12,000 --> 00:09:15,000 >> Сега сме instantiated оваа класа наречена NSObject, 175 00:09:15,000 --> 00:09:19,000 и ова е само случајна класа дека Apple има. 176 00:09:19,000 --> 00:09:22,000 Ние instantiated ова, и сега имам еден пример на оваа класа 177 00:09:22,000 --> 00:09:25,000 во овој објект о, па тоа значи дека ако јас дефинирани 178 00:09:25,000 --> 00:09:29,000 овие методи можам да ги повикам се допаѓа ова. 179 00:09:29,000 --> 00:09:31,000 Слично на тоа, ако сакав да се јавите на метод со еден аргумент, 180 00:09:31,000 --> 00:09:34,000 па ова е бар метод, кој се еден аргумент, 181 00:09:34,000 --> 00:09:38,000 и тука е baz: qux метод, па ова се 2 аргументи. 182 00:09:38,000 --> 00:09:44,000 Ова е повик една функција на овој објект о. 183 00:09:44,000 --> 00:09:46,000 Смисла? 184 00:09:46,000 --> 00:09:50,000 Синтакса треба да се направи смисла, но вид на се навикнеш на него. 185 00:09:50,000 --> 00:09:54,000 >> Океј, ајде да зборуваме за неколку работи кои се вградени во Objective-C 186 00:09:54,000 --> 00:09:56,000 кои не беа нужно вградени во В 187 00:09:56,000 --> 00:09:59,000 Во C ние вид на мораше да се справи со жици како овие глупи карактер низи, 188 00:09:59,000 --> 00:10:01,000 и добија навистина досадно. 189 00:10:01,000 --> 00:10:04,000 Objective-C има оние сите изградена во за нас, а тоа е изграден во 190 00:10:04,000 --> 00:10:06,000 користење на оваа класа наречена NSString. 191 00:10:06,000 --> 00:10:10,000 Кога сакам да се создаде NSString имаме повеќе arcane синтакса. 192 00:10:10,000 --> 00:10:15,000 Наместо велејќи: "cs50" велиме @ "cs50" 193 00:10:15,000 --> 00:10:17,000 и ова е само синтакса за прогласување на жиците во Objective-C. 194 00:10:17,000 --> 00:10:21,000 Ова е екстремно лесно да се заборави, па не. 195 00:10:21,000 --> 00:10:24,000 Сега, откако имам оваа, ова е стринг, но информации 196 00:10:24,000 --> 00:10:26,000 тоа е навистина само еден објект. 197 00:10:26,000 --> 00:10:30,000 Реков NSString, што значи дека instantiated класата 198 00:10:30,000 --> 00:10:32,000 наречен NSString, што некој друг го напишал за мене, 199 00:10:32,000 --> 00:10:35,000 и тие беа многу убаво за него, па сега 200 00:10:35,000 --> 00:10:37,000 Можам да почне повикувајќи методи на неа. 201 00:10:37,000 --> 00:10:40,000 Ако јас го нарекувам метод должината на овој објект е 202 00:10:40,000 --> 00:10:43,000 тоа се случува да се врати да ме должината на стрингот. 203 00:10:43,000 --> 00:10:45,000 Ова е само како strlen во C. 204 00:10:45,000 --> 00:10:47,000 Ова ќе се врати 4. 205 00:10:47,000 --> 00:10:51,000 >> Слично на тоа, уште еден метод јас можеби ќе сакате да се грижи за е ова characterAtIndex. 206 00:10:51,000 --> 00:10:54,000 Ова е метод кој се вели дека на овој стринг е 207 00:10:54,000 --> 00:10:57,000 Сакам да го добиете 0. карактер, 208 00:10:57,000 --> 00:10:59,000 и така ова ќе се врати да ме ликот в, 209 00:10:59,000 --> 00:11:02,000 и има еден куп повеќе од овие методи кои можете да ги Google навистина лесно. 210 00:11:02,000 --> 00:11:07,000 Документација на Apple е одлична, а ние ќе ги разгледаме во тоа во малку. 211 00:11:07,000 --> 00:11:09,000 Оние кои се стрингови. 212 00:11:09,000 --> 00:11:11,000 Ние исто така имаат променлива големина низи изграден внатре 213 00:11:11,000 --> 00:11:13,000 Запомни во C кога ќе прогласи низа 214 00:11:13,000 --> 00:11:16,000 моравме да речеме имаш 5 елементи, крај на приказната. 215 00:11:16,000 --> 00:11:18,000 Кога стигнавме да го вклучите Javascript-и PHP ние може да започне 216 00:11:18,000 --> 00:11:20,000 вршење на работите како додавање на елементи или поместување на елементите. 217 00:11:20,000 --> 00:11:22,000 Ние може да го стори истото во Objective-C. 218 00:11:22,000 --> 00:11:26,000 Наместо да се создаде низа во нормална Ц начин 219 00:11:26,000 --> 00:11:30,000 имаме повторно друга класа наречена NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 Постои, исто така NSArray, 221 00:11:33,000 --> 00:11:35,000 и ова ќе основа капсулирало некои низа. 222 00:11:35,000 --> 00:11:38,000 Ова се вели првото нешто што сакате да направите е да сакам да ги распредели 223 00:11:38,000 --> 00:11:41,000 простор за нова низа, и откако го распредели 224 00:11:41,000 --> 00:11:43,000 Јас тогаш треба да го иницијализира. 225 00:11:43,000 --> 00:11:45,000 Повторно, само повикување на овие 2 методи. 226 00:11:45,000 --> 00:11:48,000 Сега ова значи дека во внатрешноста на овој објект 227 00:11:48,000 --> 00:11:50,000 Имам празна низа седи таму. 228 00:11:50,000 --> 00:11:54,000 Ако сакате да додадете нешто на оваа низа, може да се јавите на addObject метод. 229 00:11:54,000 --> 00:11:59,000 Сакам да додадете објект на низа а, и јас сакам да додадете стринг CS50. 230 00:11:59,000 --> 00:12:02,000 Ако сакав да обратно отстрани таа можам да кажам сакам да 231 00:12:02,000 --> 00:12:09,000 отстрани предметот на прво место на низа или објект. 232 00:12:09,000 --> 00:12:11,000 >> Смисла? 233 00:12:11,000 --> 00:12:14,000 Океј, ти вид на се навикнеш на овој плоштад заградата работа. 234 00:12:14,000 --> 00:12:18,000 Патем, во внатрешноста на многу библиотеки на Apple ќе видите оваа НС. 235 00:12:18,000 --> 00:12:21,000 На НС, всушност, се залага за следниот чекор, кој беше еден од Стив Џобс првите компании, 236 00:12:21,000 --> 00:12:24,000 и тоа е каде што тој навистина почнав да пишувам многу на кодот 237 00:12:24,000 --> 00:12:27,000 како вид на основа за Mac OS X и сите други работи, 238 00:12:27,000 --> 00:12:32,000 па така ова НС е вид на ова убаво наследство извикам на една од порано компании 239 00:12:32,000 --> 00:12:34,000 назад кога Епл беше прв на почетокот. 240 00:12:34,000 --> 00:12:36,000 Тоа е насекаде. 241 00:12:36,000 --> 00:12:41,000 Ајде да ги разгледаме во повеќе холистички Objective-C пример. 242 00:12:41,000 --> 00:12:44,000 Тука сум внатрешноста на Xcode. 243 00:12:44,000 --> 00:12:47,000 Да се ​​добие тука, јас прв пат преземале Xcode од App Store, 244 00:12:47,000 --> 00:12:50,000 отвори го, а потоа отидов горе тука за да датотека, 245 00:12:50,000 --> 00:12:54,000 над тука за да се нови, а потоа проектот. 246 00:12:54,000 --> 00:12:57,000 Откако ќе го направите тоа имам сите овие опции на она што сакам да се создаде, 247 00:12:57,000 --> 00:12:59,000 и така ние ќе ги разгледаме во овие опции подоцна, 248 00:12:59,000 --> 00:13:03,000 но само за овој пример, бидејќи ние не сме всушност ќе имаат еден стан, сепак, 249 00:13:03,000 --> 00:13:06,000 Дојдов тука долу, и јас реков алатка со командна линија, 250 00:13:06,000 --> 00:13:09,000 и ова е еден стан, што би можел да се кандидира на командната линија 251 00:13:09,000 --> 00:13:12,000 исто како што сме се одржува од В 252 00:13:12,000 --> 00:13:16,000 Тоа е како јас направивме овој проект, па сега јас сум тука, 253 00:13:16,000 --> 00:13:20,000 па ајде прв поглед на оваа датотека, и ова треба да изгледа прилично познато. 254 00:13:20,000 --> 00:13:24,000 Имам int име. Има мојот пријател argc, други мои пријатели argv. 255 00:13:24,000 --> 00:13:30,000 И така ние може да се види дека ова е влезна точка за мојот прв Objective-C апликација. 256 00:13:30,000 --> 00:13:32,000 Еве ние можеме да го игнорираме тоа за сега. 257 00:13:32,000 --> 00:13:35,000 Ова е во основа на некои меморија за управување со работи кои ќе не навистина 258 00:13:35,000 --> 00:13:37,000 некогаш мора да се грижите. 259 00:13:37,000 --> 00:13:39,000 >> Ајде да ги погледнеме во овој првиот блок тука. 260 00:13:39,000 --> 00:13:46,000 Оваа прва линија, ако кажам Студентски * alice = [[Студентски alloc] init] што е тоа го прават? 261 00:13:46,000 --> 00:13:50,000 Овој прв студент тука, ова е веројатно една класа. 262 00:13:50,000 --> 00:13:54,000 Ова не е класа дека Apple напиша, но тоа е класа која ја напишав. 263 00:13:54,000 --> 00:13:57,000 Првото нешто што сакате да направите е да сакам да одвои простор за нов студент, 264 00:13:57,000 --> 00:14:00,000 а потоа сакам да го иницијализира, па ова ми дава назад 265 00:14:00,000 --> 00:14:05,000 овој нов студентски објект, и јас сум чување на тоа во променлива наречена Alice. 266 00:14:05,000 --> 00:14:07,000 Каде таа класа доаѓаат од? 267 00:14:07,000 --> 00:14:12,000 Па, овде на левата страна овие се сите на различни датотеки во внатрешноста на мојот проект. 268 00:14:12,000 --> 00:14:16,000 Можеме да видиме тука имам Student.h и Student.m. 269 00:14:16,000 --> 00:14:20,000 На. Ж датотеката, се сеќавам, е местото каде што Изјавувам сите работи 270 00:14:20,000 --> 00:14:22,000 што ќе постојат во рамките на класата. 271 00:14:22,000 --> 00:14:25,000 >> Ајде да ги разгледаме во тоа. 272 00:14:25,000 --> 00:14:29,000 Добро, тука имаме оваа @ интерфејс, а тоа вели дека тука доаѓа 273 00:14:29,000 --> 00:14:33,000 декларациите на сè што ќе постојат во рамките на мојот клас. 274 00:14:33,000 --> 00:14:36,000 Тогаш имам дебелото црево. Потоа имам оваа NSObject работа. 275 00:14:36,000 --> 00:14:40,000 Ова дебелото црево значи дека наследството малку ние се разговара малку порано. 276 00:14:40,000 --> 00:14:43,000 Овој вели дека сè е NSObject да направите 277 00:14:43,000 --> 00:14:46,000 каде NSObject е оваа класа напишани од некој друг, 278 00:14:46,000 --> 00:14:50,000 сето ова NSObject да направите Сакам да бидам во можност да го стори тоа. 279 00:14:50,000 --> 00:14:54,000 Велејќи: NSObject тоа значи дека јас во основа 280 00:14:54,000 --> 00:14:58,000 наследен сите на функционалноста на друга класа. 281 00:14:58,000 --> 00:15:02,000 Тоа навистина ми даде еден куп на различни методи и својства што ќе можам да го користите. 282 00:15:02,000 --> 00:15:05,000 Овде јас сум создавање 2 својства. 283 00:15:05,000 --> 00:15:08,000 Тоа значи дека мојот ученик, ако ова беа struct, овие ќе биде 2 работи 284 00:15:08,000 --> 00:15:11,000 внатрешноста на мојата struct, така што секој студент има име 285 00:15:11,000 --> 00:15:14,000 дека е стринг, и студент, исто така, има одделение, 286 00:15:14,000 --> 00:15:17,000 која е int. 287 00:15:17,000 --> 00:15:23,000 >> Конечно, тука долу, ќе одам да се создаде метод за мојот студент. 288 00:15:23,000 --> 00:15:26,000 Се јавив на мојот метод, initWithName, и тоа трае еден аргумент, 289 00:15:26,000 --> 00:15:31,000 и тој аргумент е стринг, и се јавив името на таа. 290 00:15:31,000 --> 00:15:35,000 Сега ајде да погледнеме како ние всушност спроведува оваа класа. 291 00:15:35,000 --> 00:15:38,000 Еве, сега сум во внатрешноста на мојата. M датотека, 292 00:15:38,000 --> 00:15:40,000 м за имплементација, претпоставувам. 293 00:15:40,000 --> 00:15:44,000 Имам имплементација, мојот крај, и тука е местото каде што јас сум всушност дефинирање 294 00:15:44,000 --> 00:15:47,000 што initWithName прави. 295 00:15:47,000 --> 00:15:50,000 Имам initWithName, името на мојата параметар, а потоа и оваа 296 00:15:50,000 --> 00:15:53,000 е местото каде што јас сум всушност создавање на студентот, 297 00:15:53,000 --> 00:15:56,000 и така ова е малку криптичната, но ова е вид на boilerplate 298 00:15:56,000 --> 00:15:58,000 кои сакате да ги вклучите во вашиот конструктори. 299 00:15:58,000 --> 00:16:02,000 Ова иницијализација функција овде, initWithName, е еден вид на конструкторот. 300 00:16:02,000 --> 00:16:05,000 Ти си во основа изградба на нов студентски објект 301 00:16:05,000 --> 00:16:07,000 а можеби и испраќање на некои податоци во него. 302 00:16:07,000 --> 00:16:11,000 Првото нешто што сакате да направите е да сакам да се јавам init на овој супер работа. 303 00:16:11,000 --> 00:16:15,000 >> Запомнете дека кога реков назад тука во. Ж датотека 304 00:16:15,000 --> 00:16:21,000 дека сè е NSObject има Студентот исто така има. 305 00:16:21,000 --> 00:16:24,000 Тоа значи дека кога ќе се создаде еден студент она што јас исто така ќе треба да направите е да 306 00:16:24,000 --> 00:16:28,000 бидете сигурни дека NSObject дека сум наследување сите дека податоците од 307 00:16:28,000 --> 00:16:32,000 е иницијализиран правилно. 308 00:16:32,000 --> 00:16:36,000 Она што јас треба да се каже е ова супер е, всушност, се случува да се однесува на родител класа 309 00:16:36,000 --> 00:16:39,000 дека сум наследство од, па сакам да бидете сигурни дека се иницијализира 310 00:16:39,000 --> 00:16:43,000 сè што сум во зависност пред да почнете да се обидува да го користам. 311 00:16:43,000 --> 00:16:46,000 Потоа, ако тоа се иницијализира правилно ова е само како да кажеш ако Примерок 312 00:16:46,000 --> 00:16:50,000 не се врати нула тогаш може да почне поставување на некои својства. 313 00:16:50,000 --> 00:16:54,000 >> Во JavaScript и PHP имавме овој клучен збор нарекува ова, 314 00:16:54,000 --> 00:16:58,000 и тоа од тековната инстанца на класа. 315 00:16:58,000 --> 00:17:00,000 Во Objective-C ние го нарекуваме овој себе. 316 00:17:00,000 --> 00:17:04,000 Кога велам self.name, тоа значи дека објектот 317 00:17:04,000 --> 00:17:07,000 Јас само создадена кога реков студент alloc init, 318 00:17:07,000 --> 00:17:09,000 што се случува да ми даде назад објектот. 319 00:17:09,000 --> 00:17:12,000 Тоа значи дека сакате да го поставите името на тој предмет 320 00:17:12,000 --> 00:17:15,000 на она што јас само помина внатре 321 00:17:15,000 --> 00:17:18,000 Исто како и во C, ние пристап членови со оваа точка, 322 00:17:18,000 --> 00:17:21,000 па self.name вели дека името на ученикот објект 323 00:17:21,000 --> 00:17:24,000 сега ќе биде она што само помина внатре 324 00:17:24,000 --> 00:17:28,000 И така конечно, можам да ја вратам па јас всушност се добие нешто назад. 325 00:17:28,000 --> 00:17:30,000 >> Прашања? 326 00:17:30,000 --> 00:17:34,000 Океј, па ова само = супер init, 327 00:17:34,000 --> 00:17:37,000 ако не целосно се разбере на наследство нешта не се грижи. 328 00:17:37,000 --> 00:17:40,000 Само знам дека ако некогаш сакате да направите свој init метод само 329 00:17:40,000 --> 00:17:42,000 направи тоа, а вие ќе бидете добро да отидевме. 330 00:17:42,000 --> 00:17:44,000 Да. >> [Студентски] Што значи ако сте само значи? 331 00:17:44,000 --> 00:17:49,000 Ова значи дека кога ние Примерок нешто што ние секогаш провери дали е еднаква на нула, 332 00:17:49,000 --> 00:17:51,000 и ако тоа е нула, тогаш ние излезе. 333 00:17:51,000 --> 00:17:55,000 Ова е иста работа, бидејќи ако тоа се враќа нула, тогаш ние сме веројатно нема да сегмент вина 334 00:17:55,000 --> 00:17:57,000 ако почнете да се обидува да го манипулира. 335 00:17:57,000 --> 00:18:01,000 Тоа е нашиот студент класа. 336 00:18:01,000 --> 00:18:03,000 Тоа значи дека може да се иницијализира на нашите студенти во еден од два начина. 337 00:18:03,000 --> 00:18:08,000 Ако кажам студент alloc init јас не сум со користење дека метод што јас само напишав, 338 00:18:08,000 --> 00:18:11,000 и наместо тоа едноставно може да се каже alice.name, 339 00:18:11,000 --> 00:18:14,000 и сега ќе одам да го поставите тој имот име. 340 00:18:14,000 --> 00:18:17,000 >> Слично на тоа, ако сакам да го користат initWithName метод 341 00:18:17,000 --> 00:18:20,000 Јас едноставно може да се каже alloc, а потоа наместо велејќи дека init 342 00:18:20,000 --> 00:18:24,000 Одам да го повикате тој метод што јас само замислен, а јас одам да се помине во Боб. 343 00:18:24,000 --> 00:18:30,000 Во овој момент, овој објект Боб има име еднаква на Боб. 344 00:18:30,000 --> 00:18:35,000 Океј, тука долу Јас сум со користење дека NSMutableArray дека ние погледна порано. 345 00:18:35,000 --> 00:18:38,000 Јас сум распределба space.Then сум иницијализацијата нова низа. 346 00:18:38,000 --> 00:18:40,000 Одам да додадете 2 работи на него. 347 00:18:40,000 --> 00:18:43,000 Оваа низа сега поседува студент објекти. 348 00:18:43,000 --> 00:18:46,000 Забележи дека никаде не морам да кажам дека ова е низа на студентите. 349 00:18:46,000 --> 00:18:48,000 Реков тоа е низа, период. 350 00:18:48,000 --> 00:18:50,000 Потоа можам да се стави она што во него што сакам. 351 00:18:50,000 --> 00:18:52,000 Еве јас имам 2 предмети. 352 00:18:52,000 --> 00:18:56,000 >> Конечно, јас имам друг објект тука, ова ТФ. 353 00:18:56,000 --> 00:18:59,000 Овде во TF.h основа истото. 354 00:18:59,000 --> 00:19:01,000 Јас сум наследство од NSObject, и патем, 355 00:19:01,000 --> 00:19:03,000 кога ќе се создаде класи ова е направено за вас, 356 00:19:03,000 --> 00:19:06,000 овој вид на интерфејс boilerplate. 357 00:19:06,000 --> 00:19:08,000 Таа има сопственост на студенти. 358 00:19:08,000 --> 00:19:15,000 Имам неколку методи тука дека не се навистина многу, 359 00:19:15,000 --> 00:19:18,000 и така тоа значи дека откако ќе ја креирате оваа објектот ТФ 360 00:19:18,000 --> 00:19:23,000 Јас може да се јавите на овој метод одделение на тоа како оваа. 361 00:19:23,000 --> 00:19:26,000 Било какви прашања во Objective-C синтакса пред да почне да се врти во некои повеќе 362 00:19:26,000 --> 00:19:30,000 интересни апликации развој нешта? 363 00:19:30,000 --> 00:19:34,000 >> Океј, па ајде всушност направи iPhone стан. 364 00:19:34,000 --> 00:19:39,000 Основни класи што ќе биде со користење внатрешноста на вашиот iPhone стан се нарекуваат поглед контролори, 365 00:19:39,000 --> 00:19:42,000 и погледнете контролорот во основа претставува еден екран 366 00:19:42,000 --> 00:19:46,000 внатрешноста на вашиот стан, па ако сум на музика стан, на пример, 367 00:19:46,000 --> 00:19:50,000 еден поглед контролер би можеле да претставуваат поглед во кој јас ги видите сите песни на мојот iPhone. 368 00:19:50,000 --> 00:19:53,000 Друг поглед контролер може да биде кога ќе кликнете на песната и започнете ја репродукцијата тоа 369 00:19:53,000 --> 00:19:55,000 или како што јас сум дупчење долу во уметници. 370 00:19:55,000 --> 00:19:59,000 Секоја од овие различни екрани може да претставен како поинаков поглед контролор, 371 00:19:59,000 --> 00:20:04,000 и погледнете контролорот е навистина само една класа во која се вели како овој екран работи. 372 00:20:04,000 --> 00:20:07,000 Работи во внатрешноста на цел контролор, ние ќе треба да имаат својства, 373 00:20:07,000 --> 00:20:10,000 па работите како копче се случува да биде во сопственост на нашиот поглед контролер. 374 00:20:10,000 --> 00:20:13,000 >> Ние сме, исто така, ќе имаат методи, и овие се во основа настан ракувачи. 375 00:20:13,000 --> 00:20:16,000 Овој метод вели дека кога ќе притиснете ова копче 376 00:20:16,000 --> 00:20:19,000 Сакам да се направи нешто, и, конечно, повторно, 377 00:20:19,000 --> 00:20:24,000 ние ќе биде со користење на оваа само клучни зборови за да пристапите на тековната инстанца. 378 00:20:24,000 --> 00:20:29,000 Да се ​​изгради интерфејси во iOS е всушност навистина, навистина лесно. 379 00:20:29,000 --> 00:20:32,000 Тие имаат овој убав drag and drop интерфејс наречен интерфејс градител, 380 00:20:32,000 --> 00:20:37,000 и 2 основни концепти кои жица вашиот Objective-C до интерфејс градител 381 00:20:37,000 --> 00:20:40,000 се IBOutlet и IBAction. 382 00:20:40,000 --> 00:20:44,000 На IBOutlet едноставно вели дека ако се изјасни за имот кој е копче, 383 00:20:44,000 --> 00:20:47,000 и сакате да се кука до нешто во вашиот вистински адаптери, 384 00:20:47,000 --> 00:20:49,000 ви се случува да се каже дека е издувен вентил. 385 00:20:49,000 --> 00:20:51,000 Слично на тоа, ако сакате да претставува настан управувачот 386 00:20:51,000 --> 00:20:54,000 тогаш ви се случува да се каже дека е акција. 387 00:20:54,000 --> 00:20:57,000 >> Всушност да жица до овој графичко претставување 388 00:20:57,000 --> 00:21:00,000 и вашиот код е навистина, навистина едноставно. 389 00:21:00,000 --> 00:21:03,000 Ако сакате да се закачите на IBOutlet, сите што треба да направите е да ги контролирате клик, 390 00:21:03,000 --> 00:21:05,000 и ние ќе видите еден пример на ова е навистина брз. 391 00:21:05,000 --> 00:21:07,000 Вие го контролирате кликнете каде што вели Прикажи контролор. 392 00:21:07,000 --> 00:21:09,000 Сте ќе повлечете во интерфејсот, или обратно, 393 00:21:09,000 --> 00:21:13,000 ако сакате да се кука до настан управувачот си оди за да го повлечете од интерфејс 394 00:21:13,000 --> 00:21:15,000 во друга насока. 395 00:21:15,000 --> 00:21:20,000 Ајде да ги разгледаме во навистина едноставен iOS пример. 396 00:21:20,000 --> 00:21:23,000 >> Да креирате нов проект. 397 00:21:23,000 --> 00:21:25,000 Одам да се излезе тука до апликацијата, 398 00:21:25,000 --> 00:21:28,000 и јас одам да кликнете единствен поглед апликација. 399 00:21:28,000 --> 00:21:31,000 Одам да кликнете на Next. Ќе ти дадам мојот проект име. 400 00:21:31,000 --> 00:21:33,000 Јас ќе го наречеме Здраво. 401 00:21:33,000 --> 00:21:36,000 Интересно, Apple превзема сте создавање на производ 402 00:21:36,000 --> 00:21:38,000 така што можете да го продаде и тие можат да прават пари. 403 00:21:38,000 --> 00:21:41,000 Долу тука јас ќе одам да се каже дека ова е iPhone стан. 404 00:21:41,000 --> 00:21:44,000 Можете да ја креирате iPad стан, или ако сакате да се создаде еден од оние апликации 405 00:21:44,000 --> 00:21:47,000 дека ги поддржува двата уреди може да го направите тоа премногу. 406 00:21:47,000 --> 00:21:49,000 Овие се она што го сакате вашиот checkmarks да изгледа. 407 00:21:49,000 --> 00:21:51,000 >> Сакате да го користите storyboards, која што ќе видиме подоцна, 408 00:21:51,000 --> 00:21:54,000 и вие дефинитивно сакате да го користите автоматски референца броење, 409 00:21:54,000 --> 00:21:58,000 што е убаво функција која ве спречува од тоа да имаат да се каже Примерок и бесплатно. 410 00:21:58,000 --> 00:22:03,000 Освен ако не сакате да се јавите Примерок и слободен, јас ќе ја напушти оваа проверени. 411 00:22:03,000 --> 00:22:07,000 Јас ќе кликнете на Next, и конечно, ова се случува да ме прашуваат каде што сакате да го зачувате. 412 00:22:07,000 --> 00:22:14,000 Јас хит ќе се создаде, и тука ќе одиме. 413 00:22:14,000 --> 00:22:16,000 Јас создаде нов проект. 414 00:22:16,000 --> 00:22:19,000 Овде на лево се сите датотеки кои се внатре на мојот проект, 415 00:22:19,000 --> 00:22:22,000 и ќе забележите дека добив еден куп, и јас дури и не прават ништо. 416 00:22:22,000 --> 00:22:24,000 IOS е одлично. 417 00:22:24,000 --> 00:22:27,000 >> На пример, тука оваа ViewController.h, 418 00:22:27,000 --> 00:22:30,000 ова ќе претставува мојот прв поглед контролор, 419 00:22:30,000 --> 00:22:32,000 па првиот екран во внатрешноста на мојата стан. 420 00:22:32,000 --> 00:22:34,000 Сега знаеме што тоа го кажува. 421 00:22:34,000 --> 00:22:36,000 Ние велиме јас сум повикувајќи оваа класа ViewController, 422 00:22:36,000 --> 00:22:40,000 и ViewController прави сето она што UIViewController не, 423 00:22:40,000 --> 00:22:43,000 и оваа, пак, е некоја класа што Apple напиша дека не многу корисна работи за нас 424 00:22:43,000 --> 00:22:46,000 приказ на екранот. 425 00:22:46,000 --> 00:22:50,000 Тука е местото каде што всушност може да започне дефинирање на она што ми погледнете контролорот го прави, 426 00:22:50,000 --> 00:22:52,000 и излегува дека јас навистина не треба ништо од тоа. 427 00:22:52,000 --> 00:22:55,000 Ова е boilerplate код кој Епл ми дава бесплатно. 428 00:22:55,000 --> 00:22:59,000 Јас не треба дека првата линија, или јас немам класа, 429 00:22:59,000 --> 00:23:02,000 за да можеме да се ослободиме од тоа и да се ослободи од ова. 430 00:23:02,000 --> 00:23:05,000 Океј, па ова е мојот празен екран. 431 00:23:05,000 --> 00:23:08,000 >> Сега ајде да кликнете на овој MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 и ова е местото каде што почнува да се интересни. 433 00:23:11,000 --> 00:23:14,000 Ова претставува првиот екран на мојот стан. 434 00:23:14,000 --> 00:23:17,000 Ако сакате да додадете копче, во HTML морав да се создаде едно копче таг. 435 00:23:17,000 --> 00:23:20,000 Во Андроид мора да се создаде едно копче ознака, 436 00:23:20,000 --> 00:23:23,000 но во iOS ако јас само дојде овде на долниот десен 437 00:23:23,000 --> 00:23:27,000 и ако кликнете на овој 3rd еден тука, каде што вели објекти, 438 00:23:27,000 --> 00:23:31,000 и можам да дојдете долу, или можам да почнат да бараат за копчето. 439 00:23:31,000 --> 00:23:35,000 И гледам, едно копче, па ако јас всушност drag and drop ова право таму, 440 00:23:35,000 --> 00:23:38,000 Јас сум само додава копче за да овој екран на мојот стан. 441 00:23:38,000 --> 00:23:41,000 Ако сакате да го промените текстот, јас двојно да кликнете на неа, 442 00:23:41,000 --> 00:23:47,000 кажете нешто примамливата како "Мене Притиснете". 443 00:23:47,000 --> 00:23:51,000 Океј, сега, ако јас ја стартувате овој стан, па ние го состави, 444 00:23:51,000 --> 00:23:54,000 па за да го стартувате јас кликнете на копчето за изведба во горниот лев агол, и тука е мојот стан. 445 00:23:54,000 --> 00:23:58,000 Јас не направив ништо, а добив слатка бараат iPhone стан. 446 00:23:58,000 --> 00:24:01,000 Ако сакам да го спречи тоа, можете да кликнете на стоп копчето 447 00:24:01,000 --> 00:24:03,000 затоа што тоа е повеќе забава. 448 00:24:03,000 --> 00:24:07,000 >> Да речеме дека јас всушност сакаат нешто да се случи кога ќе притиснете ова копче. 449 00:24:07,000 --> 00:24:09,000 Да го направите тоа што треба да направите е да ми треба да се создаде 450 00:24:09,000 --> 00:24:13,000 нов настан управувачот или акција. 451 00:24:13,000 --> 00:24:16,000 Тоа значи дека јас треба да се создаде некои метод што јас сакам да се нарече 452 00:24:16,000 --> 00:24:18,000 кога ќе притиснете на копчето, па ајде да се создаде нов метод. 453 00:24:18,000 --> 00:24:20,000 Јас сум внатрешноста на ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Јас треба да се каже дека метод постои. 455 00:24:22,000 --> 00:24:26,000 Ми треба цртичка прво затоа што јас ќе одам да се повикуваат тоа на гледање контролер. 456 00:24:26,000 --> 00:24:28,000 Јас треба да се даде овој тип. 457 00:24:28,000 --> 00:24:31,000 Типот на ова ќе биде дека IBAction нешто што сме го виделе порано. 458 00:24:31,000 --> 00:24:35,000 Ова е настан управувачот, па затоа се случува да се вратат IBAction, 459 00:24:35,000 --> 00:24:38,000 и ова е навестување за Xcode да се каже дека 460 00:24:38,000 --> 00:24:40,000 ова е нешто што сакате да жица нешто да. 461 00:24:40,000 --> 00:24:45,000 Јас може да го даде името, како buttonPressed, запирка. 462 00:24:45,000 --> 00:24:48,000 >> Сега сум прогласен за нов метод во внатрешноста на мојата класа. 463 00:24:48,000 --> 00:24:50,000 Сум рече овој метод мора да постои. 464 00:24:50,000 --> 00:24:53,000 Сега ајде да дојде во ViewController.m, 465 00:24:53,000 --> 00:24:56,000 и да речеме она што овој метод може да се направи. 466 00:24:56,000 --> 00:25:03,000 Ако јас почнете да пишувате, на пример, (празно) buttonPressed 467 00:25:03,000 --> 00:25:06,000 известување Xcode е навистина убаво и autocompletes за мене. 468 00:25:06,000 --> 00:25:09,000 Тоа е навистина прекрасно. 469 00:25:09,000 --> 00:25:12,000 Забележи дека во внатрешноста на. M датотека Јас, исто така може да се каже празнина, 470 00:25:12,000 --> 00:25:15,000 и ова е поради тоа што IBAction всушност и не е тип. 471 00:25:15,000 --> 00:25:19,000 Тоа е всушност hashtag дефинира некаде да биде неважечки, 472 00:25:19,000 --> 00:25:22,000 и повторно, ова е само навестување за Xcode која вели 473 00:25:22,000 --> 00:25:25,000 Сакам тоа да биде настан управувачот, а ние ќе се види зошто во само една секунда. 474 00:25:25,000 --> 00:25:28,000 Кога ова копче е притиснато јас ќе одам да направите нешто досадно 475 00:25:28,000 --> 00:25:30,000 како прикажување на скокачки прозорец. 476 00:25:30,000 --> 00:25:35,000 >> Да го направите тоа може да создаде нова инстанца на оваа класа наречена UIAlertView, 477 00:25:35,000 --> 00:25:39,000 и ова е една класа дека Apple напиша дека се случува да се прикаже досадни скокачки прозорци. 478 00:25:39,000 --> 00:25:43,000 Ние ќе го наречеме овој скокачки алармирање, и имам 2 чекори, се сеќавам, за создавање на овој објект. 479 00:25:43,000 --> 00:25:46,000 Првото нешто што треба да направите е да одвои простор. 480 00:25:46,000 --> 00:25:48,000 Сакам UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Сакам да одвои простор. Тоа е мојот прв метод. 482 00:25:51,000 --> 00:25:53,000 Мојата следна метод е сакам да го иницијализира, 483 00:25:53,000 --> 00:25:58,000 и така имам оваа голема, долга метод наречен initWithTitle. 484 00:25:58,000 --> 00:26:01,000 Тоа е во основа ќе го контролираат она што овој скокачки вели. 485 00:26:01,000 --> 00:26:04,000 Насловот на мојата скокачки може да биде здраво. 486 00:26:04,000 --> 00:26:08,000 Пораката на овој скокачки може да биде "Ова е iOS." 487 00:26:08,000 --> 00:26:10,000 Делегат нешто, не знам што е тоа. 488 00:26:10,000 --> 00:26:13,000 Да речеме дека тоа не е ништо. 489 00:26:13,000 --> 00:26:18,000 Сега копче што се случува да се појави може да се каже нешто како "Навистина е" 490 00:26:18,000 --> 00:26:24,000 и јас навистина не сакам никакви други копчиња, па ајде избришете и да го затворите заграда. 491 00:26:24,000 --> 00:26:27,000 >> Океј, јас создаде дополнителна еден. Таму ќе одиме. 492 00:26:27,000 --> 00:26:30,000 Ова е како јас да креирате нов скокачки прозорец. 493 00:26:30,000 --> 00:26:35,000 Ако сакам да всушност покажуваат скокачки Сакам да се јавите на шоуто метод. 494 00:26:35,000 --> 00:26:38,000 Да го стори тоа можам да кажам алармирање и шоу, 495 00:26:38,000 --> 00:26:40,000 и повторно, AutoComplete беше супер убаво. 496 00:26:40,000 --> 00:26:42,000 Ако сум заборавил она што беше, ако јас само ја внеле во с, 497 00:26:42,000 --> 00:26:45,000 Јас може да дојдете преку тука за да дознаам што е тоа, 498 00:26:45,000 --> 00:26:48,000 и филтри убаво. 499 00:26:48,000 --> 00:26:52,000 Сега јас создаде оваа нова скокачки прозорец. 500 00:26:52,000 --> 00:26:55,000 Ние ќе се вратам на она што делегат значи подоцна, 501 00:26:55,000 --> 00:26:58,000 и сега сакам да кажам сакам овој метод да биде отпуштен од работа 502 00:26:58,000 --> 00:27:01,000 кога ќе притиснете на копчето, па ќе одам да се вратам во мојата сценариото, 503 00:27:01,000 --> 00:27:04,000 и јас сакам да сега прикачите овој IBAction. 504 00:27:04,000 --> 00:27:06,000 Првото нешто што сакате да направите е да кликнете на копчето. 505 00:27:06,000 --> 00:27:08,000 Кога ќе притиснете ова копче Сакам нешто да се случи. 506 00:27:08,000 --> 00:27:10,000 Јас не одам да го држите контрола. 507 00:27:10,000 --> 00:27:13,000 Одам да кликнете и влечете од копчето 508 00:27:13,000 --> 00:27:15,000 до над тука, каде што вели Прикажи контролор. 509 00:27:15,000 --> 00:27:17,000 Можеме да видиме дека тоа убаво пали. 510 00:27:17,000 --> 00:27:22,000 >> Ако јас да одам со мојот глушец јас сега ја имаат оваа скокачки овде каде што има некои опции. 511 00:27:22,000 --> 00:27:24,000 Еден од нив е настани што ќе можам да се регистрирате. 512 00:27:24,000 --> 00:27:28,000 Овие се сите оние методи изјавив во мојата ж фајл како IBActions. 513 00:27:28,000 --> 00:27:31,000 Ова е како Xcode знае што треба да се појави во оваа мала листа, 514 00:27:31,000 --> 00:27:33,000 па тоа е само навестување. 515 00:27:33,000 --> 00:27:37,000 Ако јас кликнете на копчето притиснато, јас сум сега регистриран настан управувачот. 516 00:27:37,000 --> 00:27:41,000 Во JavaScript моравме да кажам дека има некои код кој регистрирано настан управувачот. 517 00:27:41,000 --> 00:27:43,000 Во Objective-C е навистина толку лесно. 518 00:27:43,000 --> 00:27:46,000 Ако јас ја извршите оваа повторно 519 00:27:46,000 --> 00:27:49,000 сега кога ќе притиснете на копчето мојата настан управувачот ќе оган, 520 00:27:49,000 --> 00:27:51,000 и јас одам да се добие овој скокачки прозорец. 521 00:27:51,000 --> 00:27:54,000 Супер, супер едноставен таму. 522 00:27:54,000 --> 00:27:57,000 >> Ако некогаш сакате да ги видите сите настани што се случуваат да се регистрираат 523 00:27:57,000 --> 00:28:00,000 на некоја компонента ако јас кликнете на ова копче за 524 00:28:00,000 --> 00:28:02,000 и јас доаѓам овде на десната страна 525 00:28:02,000 --> 00:28:05,000 Првиот можете да видите овде можам да ги правите нештата како типот на копче, 526 00:28:05,000 --> 00:28:08,000 па ако сакате еден од оние јас или додадете контакт копчето 527 00:28:08,000 --> 00:28:10,000 или whatever. 528 00:28:10,000 --> 00:28:13,000 Ако сакате да ги видите сите настани што се на ова копче за 529 00:28:13,000 --> 00:28:16,000 ако дојдам целиот пат над тука за да на десната страна 530 00:28:16,000 --> 00:28:19,000 можеме да видиме тука на настани имам сите овие различни настани. 531 00:28:19,000 --> 00:28:23,000 Можам да притиснете го копчето, кога јас нека одат на копче, кога ќе се зголеми двојно допрете или што, 532 00:28:23,000 --> 00:28:26,000 и една јас само регистрирани е овој настан наречен допир одвнатре, 533 00:28:26,000 --> 00:28:29,000 и ова вели дека веднаш штом мојот прст доаѓа надвор на копчето 534 00:28:29,000 --> 00:28:32,000 тој случај ќе оган, а тоа е токму она што едноставно се случи. 535 00:28:32,000 --> 00:28:36,000 Ова е вид на стандардно копче притиснато настан. 536 00:28:36,000 --> 00:28:39,000 >> Било какви прашања досега? 537 00:28:39,000 --> 00:28:43,000 Океј, тоа е како можеме да почнеме да жица до нешта во нашиот код 538 00:28:43,000 --> 00:28:46,000 во работите во внатрешноста на нашите интерфејс. 539 00:28:46,000 --> 00:28:49,000 Се сеќавам на првото нешто што мораше да го направи беше да се најде на кодот, 540 00:28:49,000 --> 00:28:54,000 и тогаш жичен до интерфејсот на кодот, 541 00:28:54,000 --> 00:28:57,000 и таму е нашиот прв стан. 542 00:28:57,000 --> 00:29:00,000 Океј, тоа е навистина кул, и ние направивме ова копче. 543 00:29:00,000 --> 00:29:03,000 Што ако не сакаме да мора да се создаде еден куп на имот 544 00:29:03,000 --> 00:29:05,000 претставуваат овие копчиња? 545 00:29:05,000 --> 00:29:08,000 На пример, во Tic Tac Toe имам 9 копчиња, 546 00:29:08,000 --> 00:29:11,000 и тоа би било супер, супер досадни да имаат да drag and drop 9 пати 547 00:29:11,000 --> 00:29:14,000 или ако морав да се направи Tic Tac Toe со 81 наместо од 9 548 00:29:14,000 --> 00:29:17,000 и морав да drag and drop 81 пати, и тоа е несмасен. 549 00:29:17,000 --> 00:29:20,000 Што да правиме, наместо да е многу сличен со HTML- 550 00:29:20,000 --> 00:29:23,000 кога имавме нешта како лични карти и имиња, а ние може да пребарувате за работите 551 00:29:23,000 --> 00:29:27,000 од страна на нивните проект, таму е слична идеја во iOS наречени тагови. 552 00:29:27,000 --> 00:29:31,000 >> А таг е едноставно уникатен нумеричка ознака за компонента. 553 00:29:31,000 --> 00:29:34,000 Ако кажам ова има ознака на 0, на пример, 554 00:29:34,000 --> 00:29:38,000 ако јас се создаде едно копче и го даде ознака на 0, а ние ќе видиме како да го сторат тоа во само една секунда, 555 00:29:38,000 --> 00:29:41,000 ако сакам да се добие тоа копче јас едноставно може да се каже дека сакате да го повикате 556 00:29:41,000 --> 00:29:45,000 на viewWithTag метод на објектот над тука, 557 00:29:45,000 --> 00:29:48,000 на self.view, што претставува сегашната екран, на пример. 558 00:29:48,000 --> 00:29:53,000 Ако јас го нарекувам дека viewWithTag метод, јас одам да се повлечат на копче со таг 0. 559 00:29:53,000 --> 00:29:58,000 Ајде да ги погледнеме во овој од зградата Tic Tac Toe. 560 00:29:58,000 --> 00:30:01,000 Прво, ова е мојот сценариото. 561 00:30:01,000 --> 00:30:05,000 Јас направивме овие 10 адаптери копчиња. 562 00:30:05,000 --> 00:30:07,000 Забележите сите тие се со иста големина. 563 00:30:07,000 --> 00:30:11,000 Ако јас кликнете на еден од овие и ќе се вратам овде за овој десната страна 564 00:30:11,000 --> 00:30:15,000 ќе видите јас прилагоди на фонтот токму тука, па сум направил на фонтот малку поголеми, 565 00:30:15,000 --> 00:30:19,000 но она што исто така не бев го поставите на овој таг. 566 00:30:19,000 --> 00:30:23,000 Реков дека ова има ознака на 1, и тоа е горниот лев агол. 567 00:30:23,000 --> 00:30:26,000 >> Сега, ако јас кликнете на друго копче, како овој вториот тука, 568 00:30:26,000 --> 00:30:29,000 сега ќе видите дека мојот таг е 2. 569 00:30:29,000 --> 00:30:32,000 Секој од овие копчиња само има единствена ознака, 570 00:30:32,000 --> 00:30:35,000 и така ова е подоцна како Одам да се започне интеракција 571 00:30:35,000 --> 00:30:38,000 со мојот стан. 572 00:30:38,000 --> 00:30:40,000 Ова е сите во еден поглед контролор, 573 00:30:40,000 --> 00:30:42,000 но тука е она што го имаме. 574 00:30:42,000 --> 00:30:44,000 Имаме 3 имот тука. 575 00:30:44,000 --> 00:30:49,000 Првиот и последниот се случува да ја претставуваат државата на мојата табла. 576 00:30:49,000 --> 00:30:53,000 Во суштина ова Првиот е низа претставуваат каде Xs и оперативен систем се. 577 00:30:53,000 --> 00:30:57,000 Овој другиот тука ни кажува кој е на потез. 578 00:30:57,000 --> 00:31:01,000 Ќе забележите дека исто така имам овие работи тука. 579 00:31:01,000 --> 00:31:05,000 Пред кога ќе прогласи својства ние им даде име и тип. 580 00:31:05,000 --> 00:31:08,000 Ние, исто така може да им даде некои дополнителни информации тука. 581 00:31:08,000 --> 00:31:11,000 Оваа прва вели nonatomic, и што тоа вели 582 00:31:11,000 --> 00:31:16,000 е во основа само едно нешто некогаш ќе се обидуваат да пристапите на оваа променлива во исто време. 583 00:31:16,000 --> 00:31:19,000 Вие би можеле да направат повеќе комплексни апликации кои се мулти-навој, 584 00:31:19,000 --> 00:31:22,000 и така назад во Скреч имавме различни теми, 585 00:31:22,000 --> 00:31:25,000 и различни sprites може да се прават различни работи во исто време. 586 00:31:25,000 --> 00:31:29,000 >> Ако тоа не е случај, што не е во нешто што ќе се гледа во, 587 00:31:29,000 --> 00:31:33,000 ако се каже nonatomic тоа е всушност се случува да се направат работите малку побрзо. 588 00:31:33,000 --> 00:31:37,000 Ние исто така имаат тоа нешто наречено додели, силна или слаба. 589 00:31:37,000 --> 00:31:40,000 Ова додели само вели дека ова е стандарден тип. 590 00:31:40,000 --> 00:31:43,000 Ова не е некој предмет или покажувач, бидејќи ова е само bool, 591 00:31:43,000 --> 00:31:46,000 па bool е изграден во Objective-C. 592 00:31:46,000 --> 00:31:49,000 Ова се вели не се обиде да направи нешто фенси со покажувачи тука. 593 00:31:49,000 --> 00:31:51,000 Тоа е редовна стари скалар. 594 00:31:51,000 --> 00:31:54,000 Јаки и слаби страни, ова слаби вели дека всушност 595 00:31:54,000 --> 00:31:57,000 Сакам ова да се укажува на нешто во поглед контролер. 596 00:31:57,000 --> 00:32:00,000 Јас не одам за да всушност доделат или init оваа себе. 597 00:32:00,000 --> 00:32:04,000 На интерфејс градител, кога ќе се кандидира на стан, ќе се справи со сето тоа иницијализација. 598 00:32:04,000 --> 00:32:07,000 Ако кажам слаби, во која се вели некој друг ќе биде создавање на ова. 599 00:32:07,000 --> 00:32:09,000 Ако кажам силна, овој вели дека ќе одам да биде еден 600 00:32:09,000 --> 00:32:12,000 тоа е создавање на овој форум објект, 601 00:32:12,000 --> 00:32:14,000 и така тука имам некои повеќе методи тука, 602 00:32:14,000 --> 00:32:18,000 на пример, акција за кога новата игра копчето е притиснато, 603 00:32:18,000 --> 00:32:20,000 акција за кога било која од другите копчиња се притиснати, 604 00:32:20,000 --> 00:32:23,000 и така натаму. 605 00:32:23,000 --> 00:32:26,000 >> Ние нема да навлегувам во премногу на логиката на Tic Tac Toe, 606 00:32:26,000 --> 00:32:30,000 иако тоа е многу возбудливо, но ајде да ги разгледаме во 607 00:32:30,000 --> 00:32:33,000 некои од работите што можеме да направиме во внатрешноста на iOS. 608 00:32:33,000 --> 00:32:35,000 Оваа нова игра метод ќе биде отпуштен од работа 609 00:32:35,000 --> 00:32:37,000 кога ќе притиснете на нова игра копче. 610 00:32:37,000 --> 00:32:41,000 Да се ​​кука дека до јас едноставно дојде во текот на мојот сценариото. 611 00:32:41,000 --> 00:32:43,000 Јас кликна на нова игра. 612 00:32:43,000 --> 00:32:47,000 Ако дојдам овде на правото можам да видам дека 613 00:32:47,000 --> 00:32:50,000 Допре до внатрешноста е жичен до newGame метод. 614 00:32:50,000 --> 00:32:53,000 Тоа е зошто тоа се случува да добиете отказ. 615 00:32:53,000 --> 00:32:56,000 Методот newGame се случува да се направи некои воспоставен. 616 00:32:56,000 --> 00:32:59,000 Тоа се случува да се каже сакам да се расчисти состојбата на одборот. 617 00:32:59,000 --> 00:33:01,000 Ова е еден убав метод на променливи низи. 618 00:33:01,000 --> 00:33:03,000 Ова се случува да се каже дека е сега пак на X, 619 00:33:03,000 --> 00:33:07,000 и сега ќе одам да ги искористат предностите на овој viewWithTag работа. 620 00:33:07,000 --> 00:33:11,000 >> Знам дека моите копчиња имаат тагови 1-9, 621 00:33:11,000 --> 00:33:13,000 и тоа е нешто што произволно бере. 622 00:33:13,000 --> 00:33:15,000 Ако сакате да го поставите на текстот на секоја копче за да биде празна 623 00:33:15,000 --> 00:33:17,000 бидејќи јас само што почнав нова игра и јас не сакам никакви 624 00:33:17,000 --> 00:33:20,000 XS или OS да бидат оставени во текот можам да го направите тоа. 625 00:33:20,000 --> 00:33:24,000 Можам да кажам сакам погледот со ознака, 1, 2, 3, 4 итн. 626 00:33:24,000 --> 00:33:27,000 Ова ќе повлече различни копчето секој пат. 627 00:33:27,000 --> 00:33:30,000 Еве јас ќе одам да го фрли UIButton. 628 00:33:30,000 --> 00:33:33,000 Исто како и ние би можеле да дадат ints да плови и обратно 629 00:33:33,000 --> 00:33:37,000 ова вели дека сакам да го дадат овој на UIButton. 630 00:33:37,000 --> 00:33:40,000 Тоа значи дека од типот на ова ќе биде * UIButton 631 00:33:40,000 --> 00:33:43,000 поради покажувачи, но не грижете се, тие не се страшно повеќе. 632 00:33:43,000 --> 00:33:47,000 >> Еднаш имам ова копче ќе одам да се јавите на метод на неа. 633 00:33:47,000 --> 00:33:50,000 Овој метод е наречен setTitle forState, па така ова вели 634 00:33:50,000 --> 00:33:53,000 Сакам да го поставите на текстот на копчето за да биде празен стринг, 635 00:33:53,000 --> 00:33:57,000 и сакам тоа да биде празен стринг кога тоа не е притиснато. 636 00:33:57,000 --> 00:34:01,000 Ако јас сум со користење на овој метод, можам да го променам текстот на копчето 637 00:34:01,000 --> 00:34:04,000 штом некој ќе се појави, но ние сакаме да се каже кога копчето е само седи таму 638 00:34:04,000 --> 00:34:07,000 Сакам текстот да биде празно. 639 00:34:07,000 --> 00:34:10,000 Конечно, ние ќе треба да се иницијализира мојот одбор, 640 00:34:10,000 --> 00:34:12,000 и јас одам да се каже дека сè е во моментов на 0, 641 00:34:12,000 --> 00:34:15,000 па ова членови на одборот непроменлива е непостојана низа, 642 00:34:15,000 --> 00:34:21,000 што значи дека може да се јавите на addObject метод и само 0 во него. 643 00:34:21,000 --> 00:34:23,000 Тоа е она што се случува кога ќе се создаде нова игра. 644 00:34:23,000 --> 00:34:25,000 >> Ајде да ги разгледаме во уште еден. 645 00:34:25,000 --> 00:34:28,000 Оваа метода е IBAction што се случува да се притисне 646 00:34:28,000 --> 00:34:31,000 секој пат кога една од тие квадрати е притиснато. 647 00:34:31,000 --> 00:34:33,000 Сега имаме некои Tic Tac Toe логиката тука. 648 00:34:33,000 --> 00:34:36,000 Ние дознаам кој е на потез, 649 00:34:36,000 --> 00:34:39,000 и врз основа на тоа ние или постави X или О, 650 00:34:39,000 --> 00:34:43,000 но ние се забележи дека ние сме повторната употреба на истиот настан управувачот 651 00:34:43,000 --> 00:34:45,000 за секој еден од оние копчиња. 652 00:34:45,000 --> 00:34:49,000 Тоа значи дека немам метод за врвот левото копче, 653 00:34:49,000 --> 00:34:52,000 различен метод за долниот десен копче, иако јас би можеле да имаат направено тоа. 654 00:34:52,000 --> 00:34:54,000 Тоа навистина не би било добар дизајн. 655 00:34:54,000 --> 00:34:57,000 Што правам тука е Јас сум, всушност, ќе се утврди 656 00:34:57,000 --> 00:35:00,000 што етикетата на копчето што била притисната е. 657 00:35:00,000 --> 00:35:04,000 Ќе забележите дека оваа претстава метод ги зема еден аргумент. 658 00:35:04,000 --> 00:35:07,000 Таа се вика испраќачот, и она што испраќачот е е испраќачот ќе 659 00:35:07,000 --> 00:35:10,000 претставува токму она што беше донесена акција врз. 660 00:35:10,000 --> 00:35:15,000 Ако јас притиснете копче, овој испраќач се случува да биде дека UIButton 661 00:35:15,000 --> 00:35:18,000 дека јас всушност притиснато, па тоа значи дека дека UIButton 662 00:35:18,000 --> 00:35:20,000 има таг, бидејќи јас создаде таг. 663 00:35:20,000 --> 00:35:23,000 >> Ако сакате да добиете на таг јас едноставно може да се каже 664 00:35:23,000 --> 00:35:26,000 Сакам ознака на испраќачот, 665 00:35:26,000 --> 00:35:28,000 и повторно, јас сум само тоа отливат на UIButton. 666 00:35:28,000 --> 00:35:32,000 Јас се случи да знаете дека испраќачот ќе биде UIButton. 667 00:35:32,000 --> 00:35:34,000 Тоа не мора секогаш да биде UIButton. 668 00:35:34,000 --> 00:35:36,000 Јас би можеле, на пример, се регистрирате истиот настан управувачот 669 00:35:36,000 --> 00:35:38,000  за една за едно копче, за една лизгачот. 670 00:35:38,000 --> 00:35:40,000 Во овој случај, знам дека тие се сите копчиња, па ќе одам да се каже 671 00:35:40,000 --> 00:35:43,000 Сакам ова да биде едно копче, а потоа можам да добијам ознака, 672 00:35:43,000 --> 00:35:48,000 и од таг Јас сега знам каде сум внатре на таблата. 673 00:35:48,000 --> 00:35:51,000 Тогаш јас едноставно може да се постави или X или О, да флип преминот, 674 00:35:51,000 --> 00:35:54,000 провери кој го освои, и така натаму. 675 00:35:54,000 --> 00:35:59,000 >> Било какви прашања на оваа досега? 676 00:35:59,000 --> 00:36:02,000 Океј, сите го кодот ние објавени на интернет-ние не сакаме да се влезе премногу 677 00:36:02,000 --> 00:36:06,000 на Tic Tac Toe логика, но сега може да се види дека навистина 678 00:36:06,000 --> 00:36:09,000 сите ние сме прави е ние сме looping преку оваа низа, 679 00:36:09,000 --> 00:36:13,000 па ние имаме неколку за петелки тука, а ние сме само споредување да ја видите 680 00:36:13,000 --> 00:36:18,000 имаме еден натпревар во сите редови, еден натпревар во колона или нешто слично. 681 00:36:18,000 --> 00:36:21,000 Всушност да работи оваа апликација, ако допрете на еден од овие копчиња 682 00:36:21,000 --> 00:36:24,000 дека игра метод беше отпуштен, па тоа значи дека јас само го поставите 683 00:36:24,000 --> 00:36:31,000 го копчето за да биде Х, па сега ова копче ќе биде О, и така натаму, 684 00:36:31,000 --> 00:36:35,000 и така тоа е како ние сме почнуваат да комуницирате со оваа единствена страница стан. 685 00:36:35,000 --> 00:36:38,000 >> Ние ќе ја објавите на кодот, па можете слободно да внимателно тоа, 686 00:36:38,000 --> 00:36:43,000 но ајде сега се зборува за некои апликации кои се повеќе од само една страница. 687 00:36:43,000 --> 00:36:47,000 Како возбудлива како Tic Tac Toe беше, многу апликации во внатрешноста на iOS 688 00:36:47,000 --> 00:36:50,000 се вид на овие разбивка работи со повеќе екрани. 689 00:36:50,000 --> 00:36:54,000 Првиот концепт што ние ќе треба да се зборува за се протоколи, 690 00:36:54,000 --> 00:36:57,000 и протокол е само збир на методи 691 00:36:57,000 --> 00:36:59,000 дека може да ветување да се дефинира. 692 00:36:59,000 --> 00:37:02,000 Ако јас се создаде овој нов протокол со 2 методи, овој првиот, 693 00:37:02,000 --> 00:37:05,000 ако враќањето тип е неважечки, го нареков foo. 694 00:37:05,000 --> 00:37:07,000 Таа ги зема без аргументи. Јас имам друг метод. 695 00:37:07,000 --> 00:37:11,000 Го враќа int. Јас го нарече бар, и тоа трае еден аргумент. 696 00:37:11,000 --> 00:37:14,000 Сите овој протокол е дека се вика SomeProtocol се тука, 697 00:37:14,000 --> 00:37:19,000 Ова е збир на работи кои некој може да се спроведе. 698 00:37:19,000 --> 00:37:22,000 Не сум во внатрешноста на овој протокол рече дека она што foo го прави тоа. 699 00:37:22,000 --> 00:37:26,000 Наместо тоа, јас сум само велејќи дека би можеле да се дефинираат foo ако сакате да. 700 00:37:26,000 --> 00:37:30,000 Ако сум создавање погледнете контролорот или создавање класа 701 00:37:30,000 --> 00:37:33,000 Можам да во внатрешноста на таа класа ветување за спроведување на 702 00:37:33,000 --> 00:37:40,000 некои од овие методи, така на пример, ако се каже 703 00:37:40,000 --> 00:37:43,000 ова сега вели дека јас сум одлуки ветување да ви дека внатре 704 00:37:43,000 --> 00:37:50,000 на овој став контролер класа I ќе имаат дефиниции за двата foo и бар. 705 00:37:50,000 --> 00:37:52,000 >> Зошто е тоа корисно? 706 00:37:52,000 --> 00:37:55,000 А многу компоненти во внатрешноста на iOS ги искористат предностите на овој 707 00:37:55,000 --> 00:37:58,000 дизајн модел наречен делегација, а што делегацијата вели 708 00:37:58,000 --> 00:38:01,000 е дека, на пример, ако имам полето за текст 709 00:38:01,000 --> 00:38:04,000 и постојат некои настани кои би можеле да бидат регистрирани во внатрешноста на мојата поле за текст, 710 00:38:04,000 --> 00:38:07,000 наместо создавање на посебни настани што можам да направам е да кажам 711 00:38:07,000 --> 00:38:10,000 делегат на овој текст ќе биде некој предмет. 712 00:38:10,000 --> 00:38:13,000 Кога велам дека ова е еден делегат сега тоа значи дека 713 00:38:13,000 --> 00:38:16,000 секогаш кога некој настан би биле истрелани во полето за текст 714 00:38:16,000 --> 00:38:18,000 наместо да се регистрирате или нешто слично 715 00:38:18,000 --> 00:38:21,000 тоа е само случува да повикаш метода на делегатот. 716 00:38:21,000 --> 00:38:24,000 На пример, во внатрешноста на мојата полето за текст имам метод за кога ќе притиснете 717 00:38:24,000 --> 00:38:27,000 тоа направено копчето во долниот десен, 718 00:38:27,000 --> 00:38:30,000 и така наместо регистрирање настан управувачот она што можам да кажам е 719 00:38:30,000 --> 00:38:34,000 поле за текст, тука е објект што сакам да повикаш метода на 720 00:38:34,000 --> 00:38:37,000 секој пат кога некој притиска направи копче, 721 00:38:37,000 --> 00:38:40,000 а тоа значи дека тој објект мора да спроведе некои протоколот 722 00:38:40,000 --> 00:38:45,000 кој вели дека јас ветувам дека ќе се дефинира дека направиле копчето акција, 723 00:38:45,000 --> 00:38:47,000 бидејќи ако тоа не се дефинира дека методот и ќе притиснете направи, 724 00:38:47,000 --> 00:38:49,000 тогаш тоа ќе биде збунувачки. 725 00:38:49,000 --> 00:38:55,000 >> Ајде да ги погледнеме еден пример. 726 00:38:55,000 --> 00:38:58,000 Еве јас едноставно имаат еден текст, 727 00:38:58,000 --> 00:39:04,000 и еден од својствата на овој текст овде на оваа десната страна е делегат. 728 00:39:04,000 --> 00:39:06,000 Ова е имотот на класата. 729 00:39:06,000 --> 00:39:09,000 Она што го правеше тука е јас контрола кликнато, а јас влечени од ова место овде 730 00:39:09,000 --> 00:39:13,000 до погледнете контролорот, и кој се вели дека сега делегат на овој текст полето 731 00:39:13,000 --> 00:39:18,000 ќе биде погледнете контролорот. 732 00:39:18,000 --> 00:39:20,000 Тоа значи дека кога некои активности се случи, отколку регистрирање 733 00:39:20,000 --> 00:39:25,000 посебен настан ракувачи сакам да ги испрати до делегат. 734 00:39:25,000 --> 00:39:28,000 Сега ајде да ги разгледаме во мојот поглед контролер. 735 00:39:28,000 --> 00:39:32,000 Внатрешноста на. Ж датотека сум даде ветување. 736 00:39:32,000 --> 00:39:36,000 Сум вети дека ќе спроведе некои методи во внатрешноста на овој протокол 737 00:39:36,000 --> 00:39:38,000 наречен UITextFieldDelegate, и повторно, 738 00:39:38,000 --> 00:39:42,000 ова е само дел листа на некои нешта што може да избере да се имплементира. 739 00:39:42,000 --> 00:39:46,000 >> Ако дојдам овде во мојата. M датотека, јас се спроведува еден таков метод. 740 00:39:46,000 --> 00:39:49,000 Сум го нарече textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 бидејќи тоа е она што беше наречена во внатрешноста на протоколот. 742 00:39:52,000 --> 00:39:57,000 И сега, кога го притискам направено копчето внатре во тоа полето за текст 743 00:39:57,000 --> 00:40:00,000 ова е она што се случува да се нарекува, па јас не се регистрирате настан управувачот. 744 00:40:00,000 --> 00:40:03,000 Јас поврзан на делегат, и секогаш кога овој настан е отпуштен 745 00:40:03,000 --> 00:40:08,000 ова е метод кој ќе се нарекува, па ако дојдам овде во мојата сценариото и да ја стартувате- 746 00:40:08,000 --> 00:40:11,000 Иако тоа е вчитување можеме да видиме што тоа го прави. 747 00:40:11,000 --> 00:40:13,000 На мојот екран имам 2 работи. 748 00:40:13,000 --> 00:40:16,000 Имам овој текст поле, и имам оваа етикета. 749 00:40:16,000 --> 00:40:19,000 Јас сум едноставно велејќи сакам текстот на оваа етикета 750 00:40:19,000 --> 00:40:23,000 да бидат еднакви со она што корисникот внесе во внатрешноста на полето за текст. 751 00:40:23,000 --> 00:40:26,000 Овој следната линија, тука е само метод што јас го повикувам 752 00:40:26,000 --> 00:40:29,000 на полето за текст кој се вели дека сакам да се сокрие тастатурата. 753 00:40:29,000 --> 00:40:33,000 Ова е само произволна метод што Епл ја избрале. 754 00:40:33,000 --> 00:40:38,000 >> Повторно, пред мене ништо морав да жица сето горе, па јас прв пат дојде овде. 755 00:40:38,000 --> 00:40:42,000 Од гледна контролер Јас повлечете во текот на полето за текст. 756 00:40:42,000 --> 00:40:46,000 Јас нека оди, и јас може да се види дека тука можам да направам овој полето за текст имот 757 00:40:46,000 --> 00:40:49,000 бидејќи овде во поглед контролер сум дефинирани имот 758 00:40:49,000 --> 00:40:52,000 кој е IBOutlet на полето за текст. 759 00:40:52,000 --> 00:40:55,000 Ова се вели дека можам да жица овој имот до 760 00:40:55,000 --> 00:40:59,000 на полето за текст во мојот адаптери. 761 00:40:59,000 --> 00:41:03,000 Сега кога ќе кликнете на ова можам да почнете да пишувате. 762 00:41:03,000 --> 00:41:06,000 Сега, ако јас кликнете на направено копчето ова ќе се отпушти 763 00:41:06,000 --> 00:41:08,000 настан кој би можел да одговори. 764 00:41:08,000 --> 00:41:10,000 Не настан ракувачи. 765 00:41:10,000 --> 00:41:13,000 Тоа е како јас само одговори дека направи копче. 766 00:41:13,000 --> 00:41:15,000 Смисла? 767 00:41:15,000 --> 00:41:20,000 >> Ова не е дизајн на моделот што-не секогаш може да се најдат себе си 768 00:41:20,000 --> 00:41:23,000 создавање на свој протокол, но само знам дека некои 769 00:41:23,000 --> 00:41:27,000 различни iOS компоненти регистрирате настани на различни начини. 770 00:41:27,000 --> 00:41:29,000 Копчињата, на пример, ги користат овие IBActions. 771 00:41:29,000 --> 00:41:32,000 Текст полиња, од друга страна, се случува да го користите делегати. 772 00:41:32,000 --> 00:41:36,000 Можеме да видиме и можете да барате сето тоа во внатрешноста на документацијата. 773 00:41:36,000 --> 00:41:41,000 Патем, таму е всушност еден тон на графичката околина работи вградени во iOS за вас, 774 00:41:41,000 --> 00:41:46,000 Така на пример, начинот на кој сум направил, кои велат дека направиле во долниот десен 775 00:41:46,000 --> 00:41:48,000 се избрани од мене овој текст полето. 776 00:41:48,000 --> 00:41:50,000 Јас дојдов овде. 777 00:41:50,000 --> 00:41:53,000 Јас дошле по малку да се вратат клуч, 778 00:41:53,000 --> 00:41:56,000 и јас всушност може да направи овој еден куп работи, како и ако сакам тоа да се каже 779 00:41:56,000 --> 00:42:00,000 итен повик наместо тоа да го направите тоа, што е сосема случаен, 780 00:42:00,000 --> 00:42:02,000 и јас не знам зошто има вграден во итен повик копче, 781 00:42:02,000 --> 00:42:06,000 но, таа вели итен повик во навистина мали букви. 782 00:42:06,000 --> 00:42:08,000 Таму да одите. 783 00:42:08,000 --> 00:42:12,000 >> Дефинитивно истражуваат сите овие различни опции во iOS. 784 00:42:12,000 --> 00:42:14,000 Било какви прашања на делегатите? 785 00:42:14,000 --> 00:42:18,000 Повторно, само интересен дизајн шема дека треба да бидете свесни. 786 00:42:18,000 --> 00:42:22,000 Океј, ајде следната погледнете во табелата пати. 787 00:42:22,000 --> 00:42:26,000 А табелата поглед во основа е дека листата на предмети што е насекаде во iOS. 788 00:42:26,000 --> 00:42:29,000 Кога сте нервира преку сите ваши контакти, барате 789 00:42:29,000 --> 00:42:34,000 на поставување на страница, и тој вид на листа на работи кои се нарекува табеларен преглед. 790 00:42:34,000 --> 00:42:37,000 Спроведување на табелата поглед во iOS е прилично едноставна. 791 00:42:37,000 --> 00:42:41,000 Наместо за правење на класа што се спушта од кои UIViewController 792 00:42:41,000 --> 00:42:44,000 како што го направив пред ние едноставно треба да се каже отколку 793 00:42:44,000 --> 00:42:46,000 сето UIViewController не сакам да се направи, 794 00:42:46,000 --> 00:42:50,000 Велам сето UITableViewController не сакам да се направи, 795 00:42:50,000 --> 00:42:54,000 така што едноставно додава некои дополнителни работи кои се целосно направено за нас. 796 00:42:54,000 --> 00:42:58,000 Ние треба да се направи многу малку за да во основа се пополни во празни места во внатрешноста на табелата. 797 00:42:58,000 --> 00:43:02,000 >> Со цел да се прикаже табела треба да одговорите на некои прашања. 798 00:43:02,000 --> 00:43:06,000 Првото прашање што треба да се одговори е колку делови се во табелата? 799 00:43:06,000 --> 00:43:08,000 Кога сте нервира преку вашите контакти стан ќе забележите дека тоа е вид на 800 00:43:08,000 --> 00:43:12,000 организирана од страна на Како, тогаш имате БС, и имаш дека малку под заглавието. 801 00:43:12,000 --> 00:43:14,000 Секоја од овие се нарекува секција. 802 00:43:14,000 --> 00:43:16,000 Вие може или не може да се стави овие. 803 00:43:16,000 --> 00:43:19,000 Првото нешто што треба да направите е да се спроведе метод 804 00:43:19,000 --> 00:43:22,000 наречен tableView: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 Тоа едноставно се враќа како многу делови што треба, 806 00:43:25,000 --> 00:43:29,000 така што ова може да се каже да се врати еден ако имате една голема маса поглед. 807 00:43:29,000 --> 00:43:33,000 Следното прашање што iOS треба да знаете е колку редови имате? 808 00:43:33,000 --> 00:43:36,000 На пример, ти си нервира преку табеларен преглед. 809 00:43:36,000 --> 00:43:39,000 Имате фиксен број на песни барате или фиксен број на контакти. 810 00:43:39,000 --> 00:43:41,000 Ако сте ме, се разбира, тоа не е многу, 811 00:43:41,000 --> 00:43:44,000 и така тоа е како iOS знае колку клетки за прикажување. 812 00:43:44,000 --> 00:43:46,000 >> Повторно, ова би можело да се каже нешто како враќање 3. 813 00:43:46,000 --> 00:43:49,000 Мојата маса поглед има 3 реда. 814 00:43:49,000 --> 00:43:52,000 Конечно, iOS треба да знае што секоја клетка изгледа, 815 00:43:52,000 --> 00:43:54,000 така што тоа всушност се случува да направите е да се јавите на овој метод тука долу, 816 00:43:54,000 --> 00:43:57,000 овој tableView: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 Тоа се случува да се јавите на овој метод на секој мобилен внатрешноста на вашата маса. 818 00:44:01,000 --> 00:44:03,000 Како тоа знам колку пати да го наречеме? 819 00:44:03,000 --> 00:44:06,000 Па, ти го кажа внатрешноста на бројот на редови во секција. 820 00:44:06,000 --> 00:44:08,000 Ние ќе се јавите тоа на секој од нашите клетки, 821 00:44:08,000 --> 00:44:11,000 и во внатрешноста на ова е местото каде што всушност може да ги правите нештата како 822 00:44:11,000 --> 00:44:16,000 постави текст или ви кажам што тоа малку сино копче на десната страна го прави тоа. 823 00:44:16,000 --> 00:44:19,000 Моделот за добивање на овие клетки, ние ќе го користите овој метод 824 00:44:19,000 --> 00:44:22,000 наречен dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Objective-C е всушност многу добро познат за смешно должината на нивниот метод имиња, 826 00:44:29,000 --> 00:44:32,000 и ова е навистина убаво случај во точка пример. 827 00:44:32,000 --> 00:44:37,000 Што овој метод не е тоа само вели дека сакам да ми даде ќелија. 828 00:44:37,000 --> 00:44:39,000 Само нешто iOS. 829 00:44:39,000 --> 00:44:41,000 Ако имате нешто како 100,000 песни на вашиот iPod 830 00:44:41,000 --> 00:44:45,000 што iOS не сака да направите е да одвои 100.000 клетки, 831 00:44:45,000 --> 00:44:48,000 бидејќи ако сте на врвот на својата листа, дали навистина треба да се алоцира меморија 832 00:44:48,000 --> 00:44:51,000 за мобилен тоа е 99.000 редови надолу? 833 00:44:51,000 --> 00:44:55,000 Не, затоа што ти си лизгање можете вид на одвои како што одиме понатаму. 834 00:44:55,000 --> 00:44:57,000 Ова е направено за вас. 835 00:44:57,000 --> 00:44:59,000 Вие не мора да се грижите за сето тоа глупаво перформанси нешта. 836 00:44:59,000 --> 00:45:02,000 Се што ви го кажам е да ти се јавам овој метод dequeueReusableCellWithIdentifier, 837 00:45:02,000 --> 00:45:06,000 и ова вели, добро, ако треба да одам да се создаде нов мобилен за вас. 838 00:45:06,000 --> 00:45:09,000 >> Но, ако сте на дното на табелата и веќе сте доделени некои клетки 839 00:45:09,000 --> 00:45:12,000 на врвот на табелата дека сте навистина не ќе треба во скоро време 840 00:45:12,000 --> 00:45:15,000 Одам да ви даде еден од оние назад, наместо доделување на нова, 841 00:45:15,000 --> 00:45:17,000 и така ова е убаво перформанси загриженост. 842 00:45:17,000 --> 00:45:21,000 Вие не мора да ги распредели клетки себе. 843 00:45:21,000 --> 00:45:23,000 Тоа ќе ви даде назад ќелија. 844 00:45:23,000 --> 00:45:25,000 Тоа се случува да се вратат да ви мобилен објект. 845 00:45:25,000 --> 00:45:28,000 Откако ќе имаат мобилен објект можете да направите нешто за неа. 846 00:45:28,000 --> 00:45:32,000 Можете да го поставите на текстот на ќелијата со овој имот се нарекува текстуална ознака. 847 00:45:32,000 --> 00:45:36,000 Можете да додадам дека стрелка на десно или некои други случајни нешта 848 00:45:36,000 --> 00:45:41,000 со овој друг имот наречен accessoryType, и така натаму и така натаму. 849 00:45:41,000 --> 00:45:46,000 >> Ајде да ги разгледаме во всушност имплементирање на табелата поглед сега. 850 00:45:46,000 --> 00:45:49,000 Кога Јас создаде овој проект 851 00:45:49,000 --> 00:45:53,000 наместо велејќи дека единствен поглед апликација Јас всушност дојде тука 852 00:45:53,000 --> 00:45:57,000 да го совладате секој детал апликација, и така во основа тоа одговара на пошта стан 853 00:45:57,000 --> 00:46:01,000 на iPad со табеларен преглед на левата, а потоа на содржината на правото. 854 00:46:01,000 --> 00:46:07,000 На iPod или iPhone ова ќе одговараат на една маса поглед. 855 00:46:07,000 --> 00:46:10,000 Тоа е каде што добив мојот стартер код. 856 00:46:10,000 --> 00:46:13,000 >> Ајде прво да погледнеме на сценариото. 857 00:46:13,000 --> 00:46:15,000 Сето ова беше направено за мене, во основа создадена. 858 00:46:15,000 --> 00:46:18,000 Оваа лента за навигација ми го покажа она што на пример мобилен може да изгледа вака, 859 00:46:18,000 --> 00:46:22,000 и јас двојно да кликнете на ова, промените насловот. 860 00:46:22,000 --> 00:46:25,000 Било која друга адаптери дилеми што може да се справи таму. 861 00:46:25,000 --> 00:46:27,000 На хедер датотека изгледа навистина едноставно. 862 00:46:27,000 --> 00:46:30,000 Наместо велејќи дека ова е UIViewController ние сме сега велејќи дека ова е 863 00:46:30,000 --> 00:46:35,000 TableViewController, па знаеме дека сакате да го повикате сите оние маса методи. 864 00:46:35,000 --> 00:46:38,000 Следна јас сакам да се создаде имотот што се случува да претставуваат 865 00:46:38,000 --> 00:46:40,000 работите во внатрешноста на мојата маса. 866 00:46:40,000 --> 00:46:43,000 Оваа табела ќе произволно прикажување 867 00:46:43,000 --> 00:46:46,000 листа на овошје, и така јас треба да се создаде некои низа 868 00:46:46,000 --> 00:46:49,000 во која можам да вметнете овошје. 869 00:46:49,000 --> 00:46:52,000 Внатрешноста на мојата имплементација датотека првото нешто што сакате да го направите 870 00:46:52,000 --> 00:46:55,000 е сакам да бидете сигурни дека го иницијализирате овој низа. 871 00:46:55,000 --> 00:46:58,000 >> Реков alloc init, создадени ми овошје низа, 872 00:46:58,000 --> 00:47:03,000 и јас сум додавајќи 4 нешта за неа, една од кои е многу контроверзен од другите 3. 873 00:47:03,000 --> 00:47:06,000 И сега имам низа на големината 4. 874 00:47:06,000 --> 00:47:08,000 Ние сме го тресе во CS50. 875 00:47:08,000 --> 00:47:11,000 Јас сега имаат низа на големината 4. 876 00:47:11,000 --> 00:47:13,000 Сега ќе одам да почнат одговор на овие прашања, а всушност, 877 00:47:13,000 --> 00:47:16,000 кога Јас создаде овој стан сето ова е веќе направено за мене. 878 00:47:16,000 --> 00:47:19,000 Јас не мора да го пишувате од бројот на деловите во табеларен преглед. 879 00:47:19,000 --> 00:47:22,000 Тоа веќе беше таму, а јас сум пополнување на празни места. 880 00:47:22,000 --> 00:47:24,000 Колку секции имам? 881 00:47:24,000 --> 00:47:26,000 Една. Сето тоа е направено. 882 00:47:26,000 --> 00:47:28,000 Колку редови имам? 883 00:47:28,000 --> 00:47:31,000 Па, јас имам еден ред за секое овошје, така што ова брои 884 00:47:31,000 --> 00:47:34,000 е сопственост на било низа во која се вели колку е голема е тоа? 885 00:47:34,000 --> 00:47:36,000 Тоа е колку редови имам. 886 00:47:36,000 --> 00:47:42,000 Конечно, јас треба да се каже она што не секоја клетка изгледа? 887 00:47:42,000 --> 00:47:46,000 Одам да се каже dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Повторно, ова е веќе напишано за мене. 889 00:47:48,000 --> 00:47:51,000 Јас не треба да го направите ова од мене, и јас сакам да се вратам 890 00:47:51,000 --> 00:47:54,000 овој мобилен на оваа локација. 891 00:47:54,000 --> 00:47:57,000 Запомнете дека ние сме повикувајќи овој истиот метод на секоја ќелија, 892 00:47:57,000 --> 00:48:01,000 и овој аргумент тука, овој аргумент indexPath, 893 00:48:01,000 --> 00:48:03,000 вели дека она ред јас сум внатре 894 00:48:03,000 --> 00:48:05,000 Ако кажам indexPath.row овде 895 00:48:05,000 --> 00:48:09,000 ова ќе биде 0, тогаш тоа ќе биде 1, тогаш тоа ќе биде 2, а тоа е така знам 896 00:48:09,000 --> 00:48:11,000 што мобилен Јас сум во моментов прикажување. 897 00:48:11,000 --> 00:48:15,000 Сакам да го поставите на текстот на мобилен користите овој имот textLabel 898 00:48:15,000 --> 00:48:19,000 да одат во внатрешноста на мојата овошје низа и да се 899 00:48:19,000 --> 00:48:21,000 објектот што одговара на секој ред. 900 00:48:21,000 --> 00:48:24,000 Ако ова е стринг, јас сум сега поставува 901 00:48:24,000 --> 00:48:28,000 текстот на имотот во стринг. 902 00:48:28,000 --> 00:48:30,000 Можам да направам една друга работа. 903 00:48:30,000 --> 00:48:32,000 Јас, исто така можете да се регистрирате настан управувачот на секоја од ќелиите, 904 00:48:32,000 --> 00:48:35,000 па кога ќе допрете секоја од овие клетки 905 00:48:35,000 --> 00:48:39,000 овој didSelectRowAtIndexPath, ова се случува да бидат повикани за мене, 906 00:48:39,000 --> 00:48:42,000 толку едноставно, преку дефинирање на тоа јас сега може да се справи со она што се случува 907 00:48:42,000 --> 00:48:46,000 Кога ќе го допрете ќелија, и повторно, ние сме минува во која ќелија беше избран 908 00:48:46,000 --> 00:48:50,000 така што можеме да повторна употреба на истата оваа настан управувачот за сите наши клетки. 909 00:48:50,000 --> 00:48:53,000 >> Повторно, ова е нешто iOS го прави за мене. 910 00:48:53,000 --> 00:48:55,000 Да се ​​прикаже друг досадни скокачки 911 00:48:55,000 --> 00:48:59,000 кои едноставно вели дека собрал нешто каде што нешто 912 00:48:59,000 --> 00:49:04,000 ќе биде на ред објектот. 913 00:49:04,000 --> 00:49:10,000 Кога ќе ја извршите оваа, јас ќе одам да ја имаат оваа убава маса поглед 914 00:49:10,000 --> 00:49:14,000 со еден ред за секоја од овие плодови, и ако јас се приклучи една 915 00:49:14,000 --> 00:49:16,000 тоа ми кажува што се случило. 916 00:49:16,000 --> 00:49:21,000 Смисла? 917 00:49:21,000 --> 00:49:24,000 Да се ​​изгради малку повеќе комплекс на стан, 918 00:49:24,000 --> 00:49:28,000 колку што е кликање што сте го одбрале домати е. 919 00:49:28,000 --> 00:49:31,000 На убав дел за storyboarding 920 00:49:31,000 --> 00:49:35,000 е тоа не е само ќе ни помогне да дизајн екрани поединечно, 921 00:49:35,000 --> 00:49:38,000 тоа е, исто така, ќе ни помогне да се врзува заедно целата наша стан, 922 00:49:38,000 --> 00:49:42,000 па конечниот стан ќе биде зграда е ова убаво спортско читач на вести, 923 00:49:42,000 --> 00:49:45,000 и така тоа се случува да имаат повеќе екрани, и така јас всушност може да претставува 924 00:49:45,000 --> 00:49:48,000 секоја од овие повеќе екрани на сценариото, 925 00:49:48,000 --> 00:49:52,000 и јас да зумирате и да видиме мојот стан од високо ниво. 926 00:49:52,000 --> 00:49:55,000 >> Со цел да се создаде нов елемент во внатрешноста на мојата сценариото 927 00:49:55,000 --> 00:49:59,000 тоа е навистина едноставно внатрешноста на интерфејс градител. 928 00:49:59,000 --> 00:50:01,000 Ако сакате да додадете уште еден екран на ова, на пример, 929 00:50:01,000 --> 00:50:06,000 Јас прво да одзумирате со нотка зум дека Apple сака толку многу, 930 00:50:06,000 --> 00:50:09,000 и овде пред да барате копчето 931 00:50:09,000 --> 00:50:12,000 и јас drag and drop на копчето 932 00:50:12,000 --> 00:50:15,000 ако сакате да креирате нов екран можам да всушност само drag and drop 933 00:50:15,000 --> 00:50:19,000 целиот поглед контролор, па ако јас земам тоа, се повлече во текот тука, 934 00:50:19,000 --> 00:50:23,000 еј, има уште еден екран, па сега со користење на овој ист сценариото датотека 935 00:50:23,000 --> 00:50:26,000 Јас може да имаат сите на екраните во внатрешноста на мојата стан, и можам да одзумирате 936 00:50:26,000 --> 00:50:28,000 и да видиме како тие комуницираат. 937 00:50:28,000 --> 00:50:32,000 Овие не ќе комуницирате уште. 938 00:50:32,000 --> 00:50:36,000 Начинот на кој овие 2 екрани комуницирате е да се дефинира односи. 939 00:50:36,000 --> 00:50:39,000 Вие во основа може да се каже овој екран, кога ќе притиснете на ова копче, 940 00:50:39,000 --> 00:50:42,000 Сакам да слајд во текот на овој нов екран. 941 00:50:42,000 --> 00:50:44,000 Тоа значи дека е овој вид на односот помеѓу 942 00:50:44,000 --> 00:50:46,000  на првиот екран и вториот екран. 943 00:50:46,000 --> 00:50:49,000 Ќе мора основа стрела од тоа копчето за втор екран 944 00:50:49,000 --> 00:50:53,000 велејќи дека кога ќе го притиснете ова копче тоа е каде што сакате да одите. 945 00:50:53,000 --> 00:50:57,000 Исто како и ние го контролираме кликнато и влечени да се дефинираат овие локалитети 946 00:50:57,000 --> 00:51:01,000 ние ќе го прават истото да се дефинираат овие segues. 947 00:51:01,000 --> 00:51:05,000 >> Ќе видите еден пример за тоа, и пред ние всушност транзиција 948 00:51:05,000 --> 00:51:08,000 од еден екран на друг iOS е фино да се јавите на овој метод 949 00:51:08,000 --> 00:51:11,000 наречен prepareForSegue, и ова е местото каде што може да почне 950 00:51:11,000 --> 00:51:14,000 испраќање на податоци од еден стан на друга. 951 00:51:14,000 --> 00:51:17,000 Во примерот ние сме за да се погледне во тоа во основа ќе ни овозможи 952 00:51:17,000 --> 00:51:20,000 да ги филтрираат бејзбол тимови со лиги и поделби. 953 00:51:20,000 --> 00:51:23,000 Кога ќе изберам лигата, на пример, сакам да транзиција 954 00:51:23,000 --> 00:51:25,000 на мојот следниот екран каде што може да се прикаже и сите поделби 955 00:51:25,000 --> 00:51:27,000 во таа лига или сите различни тимови. 956 00:51:27,000 --> 00:51:31,000 Ми треба за да го испратиме дека екран што тимовите треба да се прикаже. 957 00:51:31,000 --> 00:51:35,000 Да го направите тоа, ќе одам да ги искористат предностите на овој метод тука. 958 00:51:35,000 --> 00:51:39,000 >> Конечно, само случајна точка на iOS. 959 00:51:39,000 --> 00:51:41,000 Ако сакате да го зачувате податоци, тука е тоа нешто што се нарекува основни податоци, 960 00:51:41,000 --> 00:51:44,000 кој е всушност вид на комплицирано да се работи со. 961 00:51:44,000 --> 00:51:47,000 Можете исто така да користите SQL за чување на податоци, 962 00:51:47,000 --> 00:51:51,000 која, пак, е убаво, но вид на основа на повеќе комплицирано страна да работам со, 963 00:51:51,000 --> 00:51:55,000 но iOS, исто така, ги поддржува овие навистина кул работи вика имотот листи, 964 00:51:55,000 --> 00:52:00,000 и имотен лист е само датотеката која претставува клучна вредност парови. 965 00:52:00,000 --> 00:52:03,000 Вие го дефинирате листа на клучеви, и да се каже ова копче ќе биде низа. 966 00:52:03,000 --> 00:52:06,000 Овој клуч ќе биде стринг, и во основа ништо што можете да направите 967 00:52:06,000 --> 00:52:10,000 во JSON можете да направите внатрешноста на имотен лист, 968 00:52:10,000 --> 00:52:14,000 и така ова навистина убаво ни овозможува да работиме со некои податоци. 969 00:52:14,000 --> 00:52:18,000 На пример, имам оваа Teams.plist дека сум замислен. 970 00:52:18,000 --> 00:52:22,000 Јас создаде нов plist датотека, и можам да разбивка. 971 00:52:22,000 --> 00:52:26,000 Ова е речник, ова е речник, овие се стрингови, 972 00:52:26,000 --> 00:52:30,000 и така ова е убаво графичко претставување на документ JSON 973 00:52:30,000 --> 00:52:33,000 или само збир на клучни вредност парови, 974 00:52:33,000 --> 00:52:37,000 па така ова е податокот дека ќе се работат со внатрешноста на мојата стан. 975 00:52:37,000 --> 00:52:40,000 >> Ајде прво да дојди. Ние имаме многу повеќе датотеки сега. 976 00:52:40,000 --> 00:52:44,000 Но ајде прво дојди на сценариото. 977 00:52:44,000 --> 00:52:48,000 На сценариото тука-ако можам да одзумирате- 978 00:52:48,000 --> 00:52:51,000 ние сега може да се види дека ова е протокот на мојот стан. 979 00:52:51,000 --> 00:52:53,000 Јас сум прв ќе започне на овој екран. 980 00:52:53,000 --> 00:52:55,000 Одам да разбивка на овој екран, 981 00:52:55,000 --> 00:52:58,000 и јас одам да разбивка на овој екран, и може да се види тука дека ако јас вид на 982 00:52:58,000 --> 00:53:04,000 се движат еден од овие околу имаме овие стрели одат од тука до тука, 983 00:53:04,000 --> 00:53:08,000 и начинот на кој јас се дефинира дека arrow беше ако зумирате малку, 984 00:53:08,000 --> 00:53:12,000 и ако дојдам во текот на оваа погледнете контролорот, 985 00:53:12,000 --> 00:53:16,000 и тука е мобилен, а јас сакам да кажам дека кога ќе допрете на мобилен 986 00:53:16,000 --> 00:53:18,000 Сакам да слајд на друг екран. 987 00:53:18,000 --> 00:53:21,000 Јас едноставно да го држите контрола, 988 00:53:21,000 --> 00:53:26,000 дојдете во текот на еден малку, држете контрола, повлечете оваа ќелија одново и нека одат. 989 00:53:26,000 --> 00:53:30,000 >> И овде велиме што е транзиција што сакате да го користите? 990 00:53:30,000 --> 00:53:32,000 Дали сакате да го користите дека слајд нешто што се вика притисок? 991 00:53:32,000 --> 00:53:34,000 Дали сакате да слајд од дното? 992 00:53:34,000 --> 00:53:36,000 Тоа се вика модален. 993 00:53:36,000 --> 00:53:40,000 И еднаш ќе кликнете на еден од овие, тоа се случува да се подготви оваа стрелка за мене, 994 00:53:40,000 --> 00:53:44,000 а тоа значи дека јас сум всушност се ракува она што се случува кога ќе притиснете ова копче графички. 995 00:53:44,000 --> 00:53:48,000 Јас не пишувам кодот за да всушност слајд од еден екран на следниот. 996 00:53:48,000 --> 00:53:51,000 Јас дефинирани ова визуелно внатрешноста на интерфејс градител. 997 00:53:51,000 --> 00:53:55,000 Ако јас кликнете на овој стрела, можеме да видиме дека дадов оваа работа името. 998 00:53:55,000 --> 00:53:59,000 Јас го нарече showDivisions, а тоа е, така што можам да знам 999 00:53:59,000 --> 00:54:03,000 што транзицијата е за да се случи, и ние ќе се види зошто во само секунди. 1000 00:54:03,000 --> 00:54:06,000 Тоа е како јас сум жичен до различни екрани во мојот стан. 1001 00:54:06,000 --> 00:54:09,000 Ако ова беше едно копче, на пример, наместо маса поглед, 1002 00:54:09,000 --> 00:54:11,000 Јас може да контролира кликнете на копчето, повлечете во текот на следниот екран, 1003 00:54:11,000 --> 00:54:16,000 и тоа е како јас да направам за навигација на тој начин. 1004 00:54:16,000 --> 00:54:19,000 >> Навистина брзо, ако доаѓаме во MasterViewController, 1005 00:54:19,000 --> 00:54:22,000 повторно, ние едноставно ќе се дефинира листа на работи 1006 00:54:22,000 --> 00:54:26,000 која ќе биде прикажана во табелата видите. 1007 00:54:26,000 --> 00:54:29,000 Еве јас велам дека сакам да се земе дека plist датотека, 1008 00:54:29,000 --> 00:54:32,000 и сакам да го натоварите во речникот, 1009 00:54:32,000 --> 00:54:35,000 и штом еднаш ќе го имаат тоа речник, јас ќе одам да одговори на истите прашања повторно. 1010 00:54:35,000 --> 00:54:37,000 Тука е број на секции. 1011 00:54:37,000 --> 00:54:41,000 Еден, постои еден ред за секој лигата, а текстот на секоја ќелија 1012 00:54:41,000 --> 00:54:46,000 треба да биде или првиот, првата лига, втората лига, и така натаму. 1013 00:54:46,000 --> 00:54:51,000 Конечно, јас одам да се користи овој метод дека ние само видов наречен prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 и ова е метод кој нема да биде отпуштен од работа кога ќе кликнете на 1015 00:54:54,000 --> 00:54:57,000 на една од оние редови и затоа активирање дека транзицијата 1016 00:54:57,000 --> 00:54:59,000 што се постави со стрели. 1017 00:54:59,000 --> 00:55:02,000 Ова е велејќи дека можам да имам повеќе 1018 00:55:02,000 --> 00:55:05,000 односи од еден екран на друг. 1019 00:55:05,000 --> 00:55:08,000 Ако имам 2 копчиња и секој копче ве носи на различни екран 1020 00:55:08,000 --> 00:55:10,000 Одам да имаат 2 segues, 1 за секоја копче. 1021 00:55:10,000 --> 00:55:14,000 Но, ова prepareForSegue е, пак, ќе бидат пренаменети 1022 00:55:14,000 --> 00:55:17,000 за секој од различни односи, па тоа значи дека јас треба начин 1023 00:55:17,000 --> 00:55:21,000 за идентификување ако притиснете првиот копче или притиснете вториот копче. 1024 00:55:21,000 --> 00:55:25,000 >> Се сеќавам кога дадов дека segue име, ова showDivisions, 1025 00:55:25,000 --> 00:55:29,000 тоа е како јас сега знам дека ова е segue, кој беше активиран. 1026 00:55:29,000 --> 00:55:32,000 Сите сакам да направите е да сакам да кажам 1027 00:55:32,000 --> 00:55:35,000 Сакам да дознаам што јас само кликнете, 1028 00:55:35,000 --> 00:55:38,000 и така да се добие тоа, можам да кажам сакам indexPath за избраниот ред, 1029 00:55:38,000 --> 00:55:42,000 се сеќавам на indexPath само вели каде што само кликнато, 1030 00:55:42,000 --> 00:55:47,000 а потоа сакам да кажам сакам да дознаам каде ќе одам. 1031 00:55:47,000 --> 00:55:50,000 Ова destinationViewController, тоа е сопственост на segue. 1032 00:55:50,000 --> 00:55:53,000 Тоа е екран ќе одам да, 1033 00:55:53,000 --> 00:55:56,000 па знам дека на екранот ќе одам да се нарекува DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 бидејќи јас создаде таа класа, 1035 00:55:59,000 --> 00:56:02,000 па сега ако кажам d.divisions 1036 00:56:02,000 --> 00:56:06,000 Јас сум сега поставување на сопственост на погледот контролер јас сум за да одам. 1037 00:56:06,000 --> 00:56:10,000 Ова е како јас сум испраќање на податоци од еден екран на друг екран. 1038 00:56:10,000 --> 00:56:13,000 >> Само гледајќи во тоа DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 можете да видите дека овде во. ж датотека 1040 00:56:16,000 --> 00:56:20,000 таму е дека имотот поделби, и тоа е она што јас сум во основа населувањето, 1041 00:56:20,000 --> 00:56:25,000 па тоа е како јас знам дека сум прикажување на поделби кои одговараат на 1042 00:56:25,000 --> 00:56:28,000 лигата што јас кликна, и повторно, 1043 00:56:28,000 --> 00:56:31,000 вистинските маса поглед изгледа прилично многу исти, само одговарање на оние 1044 00:56:31,000 --> 00:56:34,000 3 едноставни прашања, како и идентификување на 1045 00:56:34,000 --> 00:56:37,000 што се случува кога ќе се преселат во следниот екран. 1046 00:56:37,000 --> 00:56:40,000 Само неколку други работи овде. 1047 00:56:40,000 --> 00:56:43,000 Ќе забележите на врвот тука дека наместо велејќи # include 1048 00:56:43,000 --> 00:56:45,000 Јас сум сега велат # увоз. 1049 00:56:45,000 --> 00:56:47,000 Ова е само Objective-C работа. 1050 00:56:47,000 --> 00:56:52,000 Увозот во основа е поубав верзија на вклучуваат, 1051 00:56:52,000 --> 00:56:57,000 и на пример, треба да знаеме што оваа класа е, 1052 00:56:57,000 --> 00:57:00,000 па јас не може само да се каже DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 Ако ние не hashtag standardio.c внатрешноста на нашите. В датотека 1054 00:57:05,000 --> 00:57:07,000 компајлерот немаше поим што printf беше. 1055 00:57:07,000 --> 00:57:12,000 Слично на тоа, ако не увоз на DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 компајлерот навистина нема поим што претставува DivisionsViewController е. 1057 00:57:16,000 --> 00:57:19,000 Само бидете сигурни дека во внатрешноста на вашиот различни. M датотеки да бидете сигурни дека за увоз 1058 00:57:19,000 --> 00:57:25,000 соодветните. ж датотеки, така што на компајлерот не знае што се случува. 1059 00:57:25,000 --> 00:57:31,000 >> Конечно, она што Apple конечно не се прикаже некои податоци со користење на веб поглед, 1060 00:57:31,000 --> 00:57:35,000 и така на веб поглед е објект во кој можете да го вградите 1061 00:57:35,000 --> 00:57:37,000 малку веб прелистувач во внатрешноста на вашиот стан. 1062 00:57:37,000 --> 00:57:40,000 Се што треба да направите е да обезбеди URL-то на вашиот веб пребарувач, 1063 00:57:40,000 --> 00:57:43,000 па сакам да одам во mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 и ова е како можам да пристапите на почетната страница за секој тим, 1065 00:57:46,000 --> 00:57:49,000 и така со донесување на овој URL 1066 00:57:49,000 --> 00:57:52,000 веб поглед може да се прикаже оваа за мене, а јас да ја разгледате наоколу, 1067 00:57:52,000 --> 00:58:01,000 и симулатор е во употреба од страна на оној. 1068 00:58:01,000 --> 00:58:03,000 Сега ова дојде од мојата plist. 1069 00:58:03,000 --> 00:58:07,000 Ако јас кликнете на ова ова, исто така, дојде од мојата plist, и оваа лизгање беше постапува 1070 00:58:07,000 --> 00:58:09,000 со дефинирање на оние segues. 1071 00:58:09,000 --> 00:58:12,000 Јас кликнете на ова и уште еден, 1072 00:58:12,000 --> 00:58:15,000 а сега тука е мојата UIWebView, па исто како што 1073 00:58:15,000 --> 00:58:19,000 тука е веб-сајт за рачно дека само вградени, 1074 00:58:19,000 --> 00:58:21,000 и јас не треба да се справи со нешто лудо. 1075 00:58:21,000 --> 00:58:24,000 Ова е како да се прикаже веб-страница. 1076 00:58:24,000 --> 00:58:27,000 Вакви работи копчето за враќање назад тука се исто така дадени на мене 1077 00:58:27,000 --> 00:58:33,000 тотално бесплатно, бидејќи јас сум дефинирани овие односи користење segues. 1078 00:58:33,000 --> 00:58:37,000 >> Било какви прашања? Да. 1079 00:58:37,000 --> 00:58:40,000 [Студентски] Па кога ќе го користите alloc, никогаш не треба да се ослободи нешто? 1080 00:58:40,000 --> 00:58:43,000 Точно, кога ќе се јавите alloc и init не мора да го ослободи. 1081 00:58:43,000 --> 00:58:46,000 IOS ќе се справи со сето тоа за вас. 1082 00:58:46,000 --> 00:58:51,000 Тоа е прекрасно, а вие не сте кршење на правилата. Да. 1083 00:58:51,000 --> 00:58:54,000 [Студентски] Ако сте биле да се вклучат повеќе екипи кои би можеле да ги собере на екранот, 1084 00:58:54,000 --> 00:58:58,000 би го автоматски имаат дојдете опција, или е тоа нешто што треба да се додаде? 1085 00:58:58,000 --> 00:59:01,000 Точно, ако имав повеќе тимови, на пример, тој автоматски ќе се справи 1086 00:59:01,000 --> 00:59:04,000 на лизгање за мене, и сите перформанси проблеми 1087 00:59:04,000 --> 00:59:08,000 со огромна маса се постапува целосно за мене. 1088 00:59:08,000 --> 00:59:11,000 >> Други прашања? 1089 00:59:11,000 --> 00:59:13,000 Сите овој код се случува да бидат објавени. 1090 00:59:13,000 --> 00:59:16,000 Ние вид на површно разгледана малку повеќе ситни детали, 1091 00:59:16,000 --> 00:59:19,000 но работи како поставување на некои својства на веб поглед 1092 00:59:19,000 --> 00:59:22,000 се само нешта што може да се добијат со прелистување документација на Apple, 1093 00:59:22,000 --> 00:59:24,000 што е навистина, навистина убаво уреден. 1094 00:59:24,000 --> 00:59:27,000 Тие имаат многу мостра апликации и пример примени 1095 00:59:27,000 --> 00:59:34,000 на различни API-јата, па дефинитивно внимателно оние ако можеш. 1096 00:59:34,000 --> 00:59:36,000 Само некои корисни линкови можеби ќе сакате да ги погледне. 1097 00:59:36,000 --> 00:59:38,000 Ова се некои практични документација водичи. 1098 00:59:38,000 --> 00:59:41,000 На адресите се масивни, па тие се скратени. 1099 00:59:41,000 --> 00:59:44,000 Овој првиот е целата библиотека на документација. 1100 00:59:44,000 --> 00:59:46,000 Има малку пребарување барови, па ако почнете да пишувате копчето 1101 00:59:46,000 --> 00:59:50,000 ќе почне кои ви даваат сите информации за сите работи што можете да направите со едно копче. 1102 00:59:50,000 --> 00:59:53,000 Јас сум исто така вклучени во Табела Прикажи Програмирање Водич. 1103 00:59:53,000 --> 00:59:56,000 Тоа се справува маса пати во многу повеќе детали, 1104 00:59:56,000 --> 01:00:00,000 како да ги правите нештата како динамички додадете клетки или уреди клетки или да ги отстраните. 1105 01:00:00,000 --> 01:00:02,000 >> Има многу на примерок апликации од Apple кој ќе ви покаже како се прави тоа, 1106 01:00:02,000 --> 01:00:05,000 и конечно, ова последново е човечки интерфејс насоки, 1107 01:00:05,000 --> 01:00:09,000 и ова е во основа на некои дискусија за UI компоненти, 1108 01:00:09,000 --> 01:00:12,000 работи како не прават копчето тоа е 4 пиксели од 4 пиксели. 1109 01:00:12,000 --> 01:00:15,000 Тоа е лоша идеја, и други работи кои Apple сака да направи 1110 01:00:15,000 --> 01:00:18,000 да се поттикне добриот дизајн. 1111 01:00:18,000 --> 01:00:23,000 >> Последни прашања пред да завршам? 1112 01:00:23,000 --> 01:00:27,000 Добро, дефинитивно се чувствуваат слободни да-we're случува да имаат посебни етикети на Дискутирај. 1113 01:00:27,000 --> 01:00:30,000 Ќе имаат iOS еден, па дефинитивно се чувствуваат слободни да користат тоа. 1114 01:00:30,000 --> 01:00:34,000 Ако сакате да работите со своите соученици на проекти 1115 01:00:34,000 --> 01:00:37,000 или да помогне дознаам некои случајни iOS работи 1116 01:00:37,000 --> 01:00:40,000 се чувствуваат слободни да ми мејл, и дефинитивно внимателно сите го кодот онлајн, бидејќи 1117 01:00:40,000 --> 01:00:43,000 само во интерес на време, ние вид на површно разгледана повеќе 1118 01:00:43,000 --> 01:00:45,000 пофини грануларен детали на нештата. 1119 01:00:45,000 --> 01:00:47,000 Но ако не, тогаш со среќа на вашиот iOS проекти, и се надевам дека имаме 1120 01:00:47,000 --> 01:00:53,000 голем прилив на апликации во App Store. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]