1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Семінар] [IOS: Напісанне прыкладанняў, такіх як Boss] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Гарвардскі універсітэт] 3 00:00:04,000 --> 00:00:08,000 [Гэта CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Добра, усе, дабро запрашаем у IOS: Напісанне прыкладанняў, такіх як Boss. 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 У нас ёсць кампутары Mac ў навуковым цэнтры ў вашым распараджэнні 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 з'яўляецца тэхнічна тое, што называецца супер набор 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 і гэтыя класы сапраўды праславіў структур. 45 00:02:26,000 --> 00:02:30,000 Усярэдзіне структуры, мы ў асноўным тут сказаць, гэта рэч, 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 і разам, што паказальнік, і гэта значэнне складаецца гэты асобнік структуры. 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 Калі мы абвясцілі структуру, мы можам толькі сказаць, 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 Іншая справа, што класы могуць зрабіць гэта яны могуць атрымлiваць у спадчыну дадзеныя з іншых класаў. 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 і так шляхам інкапсуляцыі рэчы ў класах гэта на самай справе прыводзіць 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 Гэтак жа, як у З нашым. Ч файлы ў асноўным сказалі, вось некаторыя рэчы, якія будуць існаваць. 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 Пазней ўнутры нашага. М. файлы, таму што м для 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 Унутры нашай. М. файл, які мы збіраемся сказаць вось тое, што ўсе функцыі 98 00:05:15,000 --> 00:05:18,000 ўнутры майго класа, што яны ўсё робяць. 99 00:05:18,000 --> 00:05:22,000 І, нарэшце, унутранай структуры, можна сказаць, у тых фігурныя дужкі 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 і адкрытай хлопец, а затым даў яму спіс аргументаў. 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 Цяпер у нас ёсць дужкі тут, таму што, я не ведаю. 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 >> Пасля таго як мы заявілі нашым структурам мы, верагодна, сказаў нешта накшталт: 121 00:06:29,000 --> 00:06:32,000 п структуры вузла, і што на самой справе створаны 122 00:06:32,000 --> 00:06:35,000 або асобнік аднаго з гэтых структур так, каб я мог фактычна пачаць працу 123 00:06:35,000 --> 00:06:38,000 з тым, што ўнутры яго, так што гэта прочырк азначае, што мы павінны 124 00:06:38,000 --> 00:06:41,000 асобнік класа, як мы асобнікаў, што структура 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 Тыпу яго аргументу Int, і імя гэтага аргументу 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 называецца F, так што ўнутры майго функцыі я магу сказаць, 140 00:07:23,000 --> 00:07:25,000 F + = 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 так што калі ў нас быў трэці аргумент, які я мог сказаць 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 адкрыць / закрыць дужкі 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 Мы кінулі м, зрабілі яго ідэнтыфікатар, і замяніў. З з. Метраў. 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 ці нешта накшталт гэтага, і таму гэты метад ініцыялізацыі з'яўляецца тое, што на самой справе стварае аб'ект. 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 і гэта толькі выпадковае класа, Яблык. 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 і вось Баз: 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 , Якія не абавязкова ўбудаваны ў C. 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 у нас ёсць больш таемны сінтаксіс. 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 Я хачу, каб вы нулявога сімвала, 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 Замест таго, каб стварыць масіў у звычайным рэжыме C 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, вы ўбачыце, што гэта NS. 235 00:12:18,000 --> 00:12:21,000 NS на самай справе пазначае наступны крок, які быў адным з Стыва Джобса кампаній па-першае, 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 і таму гэтая NS з'яўляецца своеасаблівай гэта добрае спадчына крычаць на адной з ранніх кампаніі 239 00:12:32,000 --> 00:12:34,000 таму, калі Apple, упершыню пачаткоўцаў. 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 гэтак жа, як мы ўжо працуе з C. 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. Там мой сябар агдс, мой іншы прыяцель 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 Гэта першая лінія, калі я скажу, студэнцкая * Аліса = [[Студэнцкія ідэнтыфікатар] 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 гэты новы аб'ект студэнт, і я захоўваю гэта ў зменную з імем Аліса. 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 Гэта азначае, што мой студэнт, калі б гэта была структура, гэта будуць 2 рэчы 284 00:15:08,000 --> 00:15:11,000 Усярэдзіне маёй структуры, так што кожны студэнт мае імя 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 Вось, цяпер я ўнутры майго. Файл м, 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 і такім чынам, гэта трохі загадкава, але гэта накшталт шаблонны 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 Першае, што я хачу зрабіць, гэта я хачу звярнуць ініцыялізацыі на гэта супер рэч. 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 Проста ведайце, што калі вы хочаце зрабіць свой уласны метад ініцыялізацыі проста 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 Калі я скажу, студэнт ідэнтыфікатар ініцыялізацыі я не выкарыстоўваю гэты спосаб, што я толькі што напісаў, 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 Я магу проста сказаць, ідэнтыфікатар, а затым замест таго, каб гаварыць ініцыялізацыі 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 >> Нарэшце, у мяне ёсць іншы аб'ект тут, гэта TF. 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 такой шаблонны інтэрфейс. 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 і так гэта азначае, што пасля стварэння гэтага аб'екта TF 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 У іх гэта добра перацягвання інтэрфейс пад назвай Interface Builder, 380 00:20:32,000 --> 00:20:37,000 і 2 базавыя канцэпцыі, што провад вашага Objective-C ў Interface Builder 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 і вы хочаце падлучыць яго да чаму-то ў Вашым UI, 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 Вы кіруеце пстрыкніце там, дзе ён кажа View Controller. 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 і я збіраюся націснуць Адна заяўка View. 399 00:21:28,000 --> 00:21:31,000 Я збіраюся націсніце кнопку Далей. Я дам мойму праекту імя. 400 00:21:31,000 --> 00:21:33,000 Я буду называць яго Hello. 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 Гэта тое, што вы хочаце, каб вашы галачкі выглядаць. 407 00:21:49,000 --> 00:21:51,000 >> Вы хочаце выкарыстоўваць Дзень беларускай салідарнасці, якую мы ўбачым пазней, 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 Я буду націсніце кнопку Далей, і, нарэшце, гэта будзе пытаюць мяне, дзе я хачу захаваць яго. 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 Гэта шаблонны код, які Apple, дае мне бясплатна. 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 У Android вы павінны стварыць кнопку тэга, 436 00:23:20,000 --> 00:23:23,000 але ў IOS, калі я толькі прыехаў сюды ў правым ніжнім куце 437 00:23:23,000 --> 00:23:27,000 і калі я націскаю на гэта 3. тут, дзе ён кажа аб'ектаў, 438 00:23:27,000 --> 00:23:31,000 і я магу пракруціць ўніз, ці я магу пачаць пошукі кнопкі. 439 00:23:31,000 --> 00:23:35,000 І паглядзіце, кнопкі, так што калі я на самай справе перацягнуць прама там, 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 сказаць нешта прывабна, як "Press Me". 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 Заўважце, што ўнутры. М. файла я магу таксама сказаць, пустэча, 470 00:25:12,000 --> 00:25:15,000 і гэта таму, што IBAction на самай справе не тып. 471 00:25:15,000 --> 00:25:19,000 Гэта на самай справе хэштэгам вызначана дзесьці быць пустэча, 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 і зноў, аўтазапаўненне быў супер добры. 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 больш тут, дзе ён кажа View Controller. 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 або любы іншы. 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 і той, які я толькі што зарэгістраваўся гэта падзея называецца Touch Up Inside, 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 і было б супер, супер раздражняе трэба перацягнуць 9 разоў 547 00:29:11,000 --> 00:29:14,000 або калі я павінен быў зрабіць Tic Tac Toe з 81, а не 9 548 00:29:14,000 --> 00:29:17,000 і мне прыйшлося перацягваць 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 па іх ID, ёсць аналагічныя паняцці ў 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 Гэта першы кажа неатомической, і што гэта кажа 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 і розныя спрайт могуць рабіць розныя рэчы ў той жа час. 586 00:31:25,000 --> 00:31:29,000 >> Калі гэта не так, што яна не ўсё, што мы будзем глядзець на, 587 00:31:29,000 --> 00:31:33,000 калі мы кажам неатомической гэта на самай справе збіраюцца зрабіць рэчы крыху хутчэй. 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 Гэта не аб'ект або паказальнік, таму што гэта ўсяго толькі лагічны, 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 Я не збіраюся на самай справе вылучыць або ініцыялізацыі гэтага сам. 597 00:32:00,000 --> 00:32:04,000 Interface Builder, калі я запускаю дадатак, будзе апрацоўваць усё, што ініцыялізацыя. 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 Touch Up Inside падлучаны да 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 >> Я ведаю, што мае кнопкі маюць тэгі 01/09, 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 або выхады, каб іх пакінулі больш я магу гэта зрабіць. 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 Гэтак жа, як мы маглі б кінуць на цэлыя паплаўкі і наадварот 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 або O, 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 або O, можа перавярнуць сваю чаргу, 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 з логікі Toe Tic Tac, але зараз вы можаце бачыць, што на самой справе 678 00:36:06,000 --> 00:36:09,000 усё, што мы робім, мы цыкл па гэтым масіве, 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 Кнопка быць X, так што зараз гэтая кнопка будзе O, і гэтак далей, 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 гэтага класа кантролера гледжання мне давядзецца азначэнняў для абодвух 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 >> Калі б я прыехаў сюды ў маёй. М. файла, я рэалізаваў адзін з такіх метадаў. 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 Гэта ўсяго толькі адвольныя метад, які Apple, выбраў. 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 Калі ў вас ёсць нешта накшталт 100000 кампазіцый на стаўку 830 00:44:41,000 --> 00:44:45,000 IOS, што не хочаце зрабіць, гэта вылучыць 100000 клетак, 831 00:44:45,000 --> 00:44:48,000 таму што калі вы ў верхняй частцы спісу, вам сапраўды трэба вылучыць памяць 832 00:44:48,000 --> 00:44:51,000 на вочка, 99000 радкоў ўніз? 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 На стаўку або 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 >> Я сказаў ідэнтыфікатар ініцыялізацыі, стварыў свой плён масіва, 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 One. Усё зроблена. 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 Добра ў Дзень беларускай салідарнасці 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 гэта сапраўды проста ўнутры Interface Builder. 928 00:49:59,000 --> 00:50:01,000 Калі я хачу дадаць яшчэ адзін экран для гэтага, напрыклад, 929 00:50:01,000 --> 00:50:06,000 Я спачатку не паменшыць маштаб з дробкай маштабу, што Яблык любіць так шмат, 930 00:50:06,000 --> 00:50:09,000 і тут, перш чым я шукаць кнопку 931 00:50:09,000 --> 00:50:12,000 і я перацягнуць кнопку 932 00:50:12,000 --> 00:50:15,000 калі я хачу, каб стварыць новы экран я магу на самой справе проста перацягнуць 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 і тое, як я вызначаю, што стрэлка была, калі я павялічу трохі, 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 Я вызначыў гэта візуальна ўнутры Interface Builder. 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 >> Памятаеце, калі я даў, што пераход назва, гэта showDivisions, 1025 00:55:25,000 --> 00:55:29,000 Вось як я цяпер ведаю, што гэта пераход, які быў актываваны. 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, гэта ўласцівасць пераходзіць. 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 Вы заўважылі, у верхняй тут, што замест таго, каб гаварыць # ўключыць 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 Калі б мы не хэштэгам 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 Проста пераканайцеся, што ў Вашым розныя. Файлаў м вы пераканаецеся, што імпарт 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 вось сайт для URL, якія я толькі ўбудаваныя, 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 [Студэнт] Такім чынам, калі вы выкарыстоўваеце ідэнтыфікатар, вам ніколі не давядзецца нічога бясплатна? 1080 00:58:40,000 --> 00:58:43,000 Менавіта, калі вы тэлефануеце ідэнтыфікатар ініцыялізацыі і вам не прыйдзецца вызваліць яго. 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 URL-адрасы, масіўныя, так што яны скарочаныя. 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 Я таксама уключыў праграмавання Table View Guide. 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 і гэта ў асноўным некаторага абмеркавання кампанентаў карыстацкага інтэрфейсу, 1108 01:00:09,000 --> 01:00:12,000 такія рэчы, як не зрабіць кнопку, што на 4 пікселя на 4 пікселя. 1109 01:00:12,000 --> 01:00:15,000 Гэта дрэнная ідэя, і іншыя рэчы, якія Яблык хоча, каб вы 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 Добра, безумоўна, не саромейцеся-мы будзем мець адмысловыя этыкеткі на абмеркавання. 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]