1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminar] [iOS: Pagsusulat ng mga Apps Tulad ng Boss] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Ito ay CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Lahat ng karapatan, lahat, maligayang pagdating sa iOS: Pagsusulat ng mga Apps tulad ng Boss. 5 00:00:12,000 --> 00:00:16,000 Seminar na ito ay tumuon sa pagsusulat ng mga apps para sa iPhone 6 00:00:16,000 --> 00:00:19,000 at siya namang pagsusulat apps para sa iPad, at kaya talaga namin ay pagpunta sa lakad sa pamamagitan ng 7 00:00:19,000 --> 00:00:23,000 ng ilang iba't ibang mga halimbawa ng kung paano gumawa ng app, isang simpleng laro tulad pagkimbot ng laman Tac daliri ng paa, 8 00:00:23,000 --> 00:00:26,000 o kung ikaw ay mas interesado sa paggawa ng isang app tulad ng ilang mga uri ng balita reader 9 00:00:26,000 --> 00:00:30,000 o isang bagay na nakikipag-ugnayan sa Internet ako makipag-usap tungkol sa na pati na rin. 10 00:00:30,000 --> 00:00:32,000 Narito ang aming maikling agenda. 11 00:00:32,000 --> 00:00:36,000 >> IOS apps ay nakasulat sa isang wika na tinatawag na Layunin-C, 12 00:00:36,000 --> 00:00:39,000 at kaya ito ay kaunti katulad sa C ngunit hindi talaga sa lahat, 13 00:00:39,000 --> 00:00:41,000 kaya namin ang pakikipag-usap ng kaunti tungkol sa wika mismo 14 00:00:41,000 --> 00:00:45,000 at pagkatapos ay kung paano bumuo ng iPhone apps na gamit ang app na ito na programa na tinatawag na XCode, 15 00:00:45,000 --> 00:00:48,000 kung saan kung hindi mo na-download ko pa ito huwag mag-atubiling upang simulan ang pag-download ngayon. 16 00:00:48,000 --> 00:00:50,000 Ito ay ilang gigabytes. 17 00:00:50,000 --> 00:00:54,000 Dapat ito ay libre sa App Store, kaya kailangan mong magkaroon ng isang Mac 18 00:00:54,000 --> 00:00:57,000 perpektong tumatakbo ang pinakabagong bersyon ng OS X. 19 00:00:57,000 --> 00:00:59,000 Kung hindi ka, walang problema. 20 00:00:59,000 --> 00:01:02,000 Mayroon kaming mga Mac sa agham center para sa iyong paggamit 21 00:01:02,000 --> 00:01:05,000 may XCode-install, at kaya't huwag mag-atubiling gamitin ang mga para sa pag-unlad. 22 00:01:05,000 --> 00:01:07,000 Kung nais mong gumawa ng app ngunit hindi magkaroon ng isang Mac, huwag mag-alala. 23 00:01:07,000 --> 00:01:09,000 Mayroong maraming mga mapagkukunan ng campus para sa. 24 00:01:09,000 --> 00:01:15,000 At kaya pagkatapos namin ay pagpunta upang masakop ang mga 2 mas malaking mga halimbawa ng iba't ibang mga apps na maaari mong gawin. 25 00:01:15,000 --> 00:01:19,000 Layunin-C ay technically kung ano ang tinatawag na isang napakabilis na hanay ng C. 26 00:01:19,000 --> 00:01:24,000 Nangangahulugan iyon na din ang anumang C code ay wastong Layunin-C code. 27 00:01:24,000 --> 00:01:29,000 Iyon ay nangangahulugan na namin ang uri ng maliit na tubo tape sa ilang mga karagdagang tampok sa C. 28 00:01:29,000 --> 00:01:33,000 Ang ilan sa mga tampok na ito ay kinabibilangan ng hindi pagkakaroon ng kailanman isulat ang malloc muli, salamat sa Diyos, 29 00:01:33,000 --> 00:01:36,000 hindi na kinakailangang mag-alala tungkol sa mga mga bobo payo na iyon at pagbabakante mga ito at ang lahat na bagay 30 00:01:36,000 --> 00:01:40,000 kinasusuklaman mo tungkol sa C, at ito uri ng nawala sa Layunin-C. 31 00:01:40,000 --> 00:01:43,000 >> Ngayon, Layunin-C ay mayroon ding isang mas malaking library pamantayan, 32 00:01:43,000 --> 00:01:47,000 kaya ng maraming higit pang pag-andar makakakuha ka ng para sa libreng loob ng Layunin-C. 33 00:01:47,000 --> 00:01:50,000 Tandaan kapag kami ay sumusulat PHP napansin namin na nagpunta kami mula sa 34 00:01:50,000 --> 00:01:54,000 ang pinakamaliit na wika sa higanteng library ng lahat ng mga nakatutuwang mga bagay na maaari mong gawin. 35 00:01:54,000 --> 00:01:56,000 Ang parehong bagay ang mangyayari sa iOS. 36 00:01:56,000 --> 00:01:59,000 Mayroong mga bagay para sa mga bagay tulad ng kalendaryo Buddhist, at talagang anumang 37 00:01:59,000 --> 00:02:05,000 maaari mong posibleng isipin marahil umiiral na sa Layunin-C pagpapatupad. 38 00:02:05,000 --> 00:02:08,000 Ang layunin bahagi ng Layunin-C ay tumutukoy sa isang bagay 39 00:02:08,000 --> 00:02:11,000 tinatawag na Bagay-Nakatuon Programming. 40 00:02:11,000 --> 00:02:14,000 Ito ay uri ng isang bagong konsepto, ngunit aktwal namin ang karamihan natutunan 41 00:02:14,000 --> 00:02:17,000 marami sa mga konsepto na. 42 00:02:17,000 --> 00:02:19,000 Ang ideya sa likod ng Bagay-Nakatuon Programming na kayo ay pagpunta sa buuin 43 00:02:19,000 --> 00:02:23,000 ng maraming ng iyong code sa paligid ng mga bagay na ito na tinatawag na klase, 44 00:02:23,000 --> 00:02:26,000 at ang mga klase na ito ay talagang glorified structs. 45 00:02:26,000 --> 00:02:30,000 Sa loob ng isang struct talaga namin sinabi dito ay isang bagay, 46 00:02:30,000 --> 00:02:32,000 at ang bagay na ito ay maaaring magkaroon ng mga kasapi. 47 00:02:32,000 --> 00:02:35,000 Halimbawa, ang isang node sa isang naka-link na listahan ay maaaring magkaroon ng iba pang mga bagay 48 00:02:35,000 --> 00:02:38,000 tulad ng isang halaga, isang pointer sa susunod na node sa listahan, 49 00:02:38,000 --> 00:02:44,000 at kasama na ang pointer at na halaga binubuo ito isang halimbawa ng isang struct. 50 00:02:44,000 --> 00:02:47,000 Klase na halos kapareho maliban 51 00:02:47,000 --> 00:02:50,000 klase ay maaari ring magkaroon ng mga function sa loob ng mga ito. 52 00:02:50,000 --> 00:02:54,000 Kapag namin ipinahayag ng struct, maaari lamang namin sabihin int n o node * susunod. 53 00:02:54,000 --> 00:02:57,000 >> Ngayon may Layunin-C namin ang aktwal na ilagay ang mga function 54 00:02:57,000 --> 00:02:59,000 sa loob ng mga bagay. 55 00:02:59,000 --> 00:03:03,000 Ang isa pang bagay na mga klase ay maaaring gawin ay maaaring sila magmana ng mga data mula sa ibang klase. 56 00:03:03,000 --> 00:03:07,000 Halimbawa, makikita namin pagtingin sa isang grupo ng mga built-in na klase ng Layunin-C. 57 00:03:07,000 --> 00:03:11,000 Isa sa mga ito ang klase na kumakatawan sa pagtingin para sa isang screen, 58 00:03:11,000 --> 00:03:14,000 at ito sa pamamagitan ng sinasabi gusto kong ipatupad ang aking sariling pagtingin 59 00:03:14,000 --> 00:03:18,000 talaga namin sabihin na ang isang tao sa paglipas ng sa Apple, marahil ay talagang maganda ang mga tao, 60 00:03:18,000 --> 00:03:21,000 sinulat ni klase na ito para sa akin, at nito pinangangasiwaan ang mga bagay tulad ng pagpapakita ng pindutan 61 00:03:21,000 --> 00:03:25,000 o nagre-render ang screen, at gusto namin talagang nasasaktan 62 00:03:25,000 --> 00:03:28,000 ipatupad ang lahat na pag-andar na ating sarili, at iba pa sa pamamagitan ng simpleng 63 00:03:28,000 --> 00:03:31,000 inheriting data, maaari naming sabihin na ang lahat na iyong ginawa sa na klase 64 00:03:31,000 --> 00:03:34,000 Gusto ko rin sa loob ng aking klase, at pagkatapos ay ako pagpunta sa gawin ang ilang iba pang mga bagay-bagay, 65 00:03:34,000 --> 00:03:37,000 lalo na ipatupad ang isang app. 66 00:03:37,000 --> 00:03:40,000 Iyon ang kung ano ang ibig sabihin ng salitang iyon inheritance. Namin makita ang isang mas kongkreto halimbawa. 67 00:03:40,000 --> 00:03:42,000 >> At sa wakas, ang susi sa Bagay-Nakatuon Programming na 68 00:03:42,000 --> 00:03:45,000 humahantong sa data encapsulation. 69 00:03:45,000 --> 00:03:48,000 Sa ilang sa aming mga problema Nagtatakda kami ng mga malaking, pangkalahatang variable 70 00:03:48,000 --> 00:03:51,000 at globals lahat ng dako, at na kung paano nais naming subaybayan ng estado. 71 00:03:51,000 --> 00:03:55,000 Na may klase namin simulan ang encapsulating ng impormasyon sa loob ng isang bagay. 72 00:03:55,000 --> 00:03:58,000 Kung kami ay may isang screen sa aming app, hindi namin talagang kailangan upang magkaroon ng anumang mga data mula sa 73 00:03:58,000 --> 00:04:01,000 isa pang screen sa aming app loob ng na, 74 00:04:01,000 --> 00:04:04,000 at ito sa pamamagitan ng encapsulating ng mga bagay sa loob ng klase ito aktwal na humahantong 75 00:04:04,000 --> 00:04:08,000 sa mas mas mahusay na code disenyo, at ito ay posible sa ilan sa mga karagdagang mga tampok 76 00:04:08,000 --> 00:04:11,000 ng Layunin-C. 77 00:04:11,000 --> 00:04:15,000 Forewarning, ang syntax para sa Layunin-C ay saging. 78 00:04:15,000 --> 00:04:19,000 Ito ay tulad ng walang nakakita kami bago, 79 00:04:19,000 --> 00:04:22,000 kaya ito ay isang kaunti ng isang pag-aaral curve nagsisimula ginagamit upang 80 00:04:22,000 --> 00:04:24,000 kung ano ang ano ba ang ibig sabihin nito? 81 00:04:24,000 --> 00:04:27,000 Ngunit sa sandaling makakakuha ka nakalipas na paunang pag-aaral curve talaga, talagang makinis 82 00:04:27,000 --> 00:04:29,000 upang simulan ang pagsusulat ng mga apps. 83 00:04:29,000 --> 00:04:33,000 >> Idedeklara ang isang klase, upang sabihin dito ay aking klase, umiiral na ito, 84 00:04:33,000 --> 00:04:35,000 at baka narito ang ilang mga bagay na ako pagpunta upang tukuyin sa ibang pagkakataon, 85 00:04:35,000 --> 00:04:38,000 Ako pagpunta sa sabihin @ interface. 86 00:04:38,000 --> 00:04:41,000 Ako pagpunta sa sabihin @ interface. Ako pagpunta upang bigyan ang aking klase ng pangalan. 87 00:04:41,000 --> 00:04:43,000 At pagkatapos mamaya sa ibang lugar ako pagpunta sa sabihin @ pagtatapos, 88 00:04:43,000 --> 00:04:46,000 at lahat ng bagay sa pagitan ng @ interface at ang @ pagtatapos 89 00:04:46,000 --> 00:04:48,000 pagpunta sa aking klase. 90 00:04:48,000 --> 00:04:51,000 Na ay pagpunta sa kung ano ang sa loob ng aming. File h. 91 00:04:51,000 --> 00:04:55,000 Tulad ng sa C ang aming. H file talaga sinabi dito ang ilang mga bagay na umiiral. 92 00:04:55,000 --> 00:04:57,000 Hindi ako kinakailangang nagsasabi sa iyo kung ano ang ginagawa nila pa, 93 00:04:57,000 --> 00:04:59,000 ngunit ang tagatala kailangang malaman na umiiral ang mga ito. 94 00:04:59,000 --> 00:05:04,000 Mamaya sa loob ng aming. M file-dahil m para sa Layunin-C 95 00:05:04,000 --> 00:05:08,000 ay kung saan aktwal na namin ay upang tukuyin kung ano ang mga klase gawin. 96 00:05:08,000 --> 00:05:11,000 Karamihan tulad ng aming. File c, ibinigay namin ng pagpapatupad para sa mga function. 97 00:05:11,000 --> 00:05:15,000 Sa loob ng aming. M file kami ay pagpunta sa sabihin dito ay ang lahat ng mga pagpapaandar 98 00:05:15,000 --> 00:05:18,000 sa loob ng aking klase-ang lahat ng mga ito ay ginagawa. 99 00:05:18,000 --> 00:05:22,000 At sa wakas, sa loob ng isang struct ay maaaring namin sabihin sa loob ng mga kulot tirante 100 00:05:22,000 --> 00:05:25,000 int n o node * susunod, 101 00:05:25,000 --> 00:05:28,000 at sa Layunin-C kami ay pagpunta sa gamitin ang keyword @ ari-arian, 102 00:05:28,000 --> 00:05:31,000 at ito ay kung ano ang nangyayari upang tukuyin ang mga katangian, 103 00:05:31,000 --> 00:05:36,000 o ang mga non-function na ay isang bahagi ng aking mga klase. 104 00:05:36,000 --> 00:05:40,000 >> Pagtawag ng mga function sa Layunin-C ay din saging. 105 00:05:40,000 --> 00:05:43,000 Kapag ipinahayag namin ang mga function sa C sinabi namin ang isang bagay tulad ng int foo 106 00:05:43,000 --> 00:05:46,000 at bukas paren at pagkatapos ay nagbigay ito ng isang listahan ng mga argumento. 107 00:05:46,000 --> 00:05:51,000 Ito ay kung ano ang deklarasyon ng mga pamamaraan o function Mukhang sa Layunin-C. 108 00:05:51,000 --> 00:05:54,000 Kung gusto ko upang idedeklara ang isang function o isang pamamaraan 109 00:05:54,000 --> 00:05:58,000 kung saan ako sinasabi na pamamaraan ay talagang lamang ng isang function na ang isang miyembro ng klase, 110 00:05:58,000 --> 00:06:01,000 kaya ang uri ng mapagpapalit, ngunit hindi talaga, 111 00:06:01,000 --> 00:06:03,000 ito sa loob ng aking paraan ng Gusto kong lumikha ng isang bagong paraan ng. 112 00:06:03,000 --> 00:06:06,000 Ito ay upang bumalik wala, kaya ito ng uri void. 113 00:06:06,000 --> 00:06:08,000 Ito ay ang uri ng return ng aking function na. 114 00:06:08,000 --> 00:06:11,000 Ngayon ay mayroon kaming parens dito dahil-hindi ko alam. 115 00:06:11,000 --> 00:06:14,000 Susunod ay ang pangalan ng aking function na, 116 00:06:14,000 --> 00:06:17,000 at pagkatapos ay sa wakas mayroon kami ng semicolon tulad ng nagkaroon kami sa C. 117 00:06:17,000 --> 00:06:19,000 Ano ang bago dito ay ito tao dito. 118 00:06:19,000 --> 00:06:22,000 Gitling ito ay talagang kinakailangan, at kung ano ang sinasabi ay na 119 00:06:22,000 --> 00:06:26,000 ang pamamaraang ito dito ay dapat na tinatawag na sa isang instance ng isang class. 120 00:06:26,000 --> 00:06:29,000 >> Pagkatapos naming ipinahayag aming structs sinabi namin marahil isang bagay tulad ng 121 00:06:29,000 --> 00:06:32,000 struct node n, at na aktwal na nilikha 122 00:06:32,000 --> 00:06:35,000 o instantiated isa sa mga structs sa gayon na maaari kong aktwal na simulan ang nagtatrabaho 123 00:06:35,000 --> 00:06:38,000 sa kung ano ang sa loob nito, kaya gitling ito ay nangangahulugan na mayroon kaming 124 00:06:38,000 --> 00:06:41,000 magbigay ng halimbawa ng uri lang bang namin instantiated na struct 125 00:06:41,000 --> 00:06:43,000 bago kami tawagan ang pamamaraan na ito dito. 126 00:06:43,000 --> 00:06:46,000 Kung gusto ko upang magsimulang magdagdag ng mga argumento sa aking pamamaraan 127 00:06:46,000 --> 00:06:48,000 ito ay nakakakuha ng higit pang saging. 128 00:06:48,000 --> 00:06:50,000 Narito ang aking paraan ng pangalan. 129 00:06:50,000 --> 00:06:53,000 Pagkatapos ako pagpunta sa magkaroon ng isang tutuldok, at pagkatapos ng tutuldok ito sabi dito ay ilang mga argumento. 130 00:06:53,000 --> 00:06:56,000 Ang pamamaraang ito ay tumatagal ng isang argument. 131 00:06:56,000 --> 00:06:59,000 Isang int, at ang pangalan ng argumento na ang uri ng mga argumento 132 00:06:59,000 --> 00:07:03,000 o ang variable na ako pagpunta upang simulan ang paggamit sa loob ng pamamaraan ay tinatawag na i. 133 00:07:03,000 --> 00:07:05,000 Muli, ito ay paraan. Tumatagal ng isang argument. 134 00:07:05,000 --> 00:07:10,000 >> Kung nais mong magsimulang magdagdag ng higit pang mga argumento nakakakuha ng higit pang saging 135 00:07:10,000 --> 00:07:13,000 na namin ito tutuldok na sinasabi dito ay ang aking listahan ng mga argumento. 136 00:07:13,000 --> 00:07:15,000 Ang unang argument ay isang integer. 137 00:07:15,000 --> 00:07:17,000 Ngayon, ang pangalawang argumento ay kawili-wili. 138 00:07:17,000 --> 00:07:20,000 Ang variable na ako pagpunta sa gumagamit sa loob ng aking function na 139 00:07:20,000 --> 00:07:23,000 ay tinatawag na f, kaya sa loob ng aking mga function na maaaring kong sabihin 140 00:07:23,000 --> 00:07:25,000 f + = 1 o isang bagay. 141 00:07:25,000 --> 00:07:30,000 Ito bagay dito ay isa lamang key para sa na argumento o parameter. 142 00:07:30,000 --> 00:07:34,000 Tulad lamang nagkaroon kami key na mga pares ng halaga at isang bagay tulad ng JSON o nag-uugnay array 143 00:07:34,000 --> 00:07:37,000 Layunin-C ginawa ang desisyon upang sabihin, okay lamang sa gayon ay talagang malinaw 144 00:07:37,000 --> 00:07:39,000 kapag tumawag ka ng isang pamamaraan na kung ano ang lahat ng mga parameter na ito ay 145 00:07:39,000 --> 00:07:41,000 Aktwal na ako pagpunta upang pangalanan sila lahat ng. 146 00:07:41,000 --> 00:07:45,000 Kapag tumawag ka ng isang pamamaraan, aktwal kang magna sabihin andFloat, 147 00:07:45,000 --> 00:07:47,000 at pagkatapos ay kayo na ipasa ito. 148 00:07:47,000 --> 00:07:50,000 >> Nang kawili-wili, ang isang ito ay hindi na pinangalanang, ngunit ang lahat ng iba pang mga parameter ay, 149 00:07:50,000 --> 00:07:53,000 kaya kung nagkaroon kami ng 3rd argument ko sabihin andFloat 150 00:07:53,000 --> 00:07:56,000 at isa pang Float at iba pa. 151 00:07:56,000 --> 00:08:01,000 Kapag tumawag ako ng mga pamamaraan na ito ay ng saging kurso, 152 00:08:01,000 --> 00:08:04,000 kaya kung mayroon akong isang bagay, at ako nagbigay ng isang pamamaraang tinatawag foo, 153 00:08:04,000 --> 00:08:09,000 at gusto kong tumawag sa ang mga ito, sa halip na sinasabi ng foo bukas / malapit parens 154 00:08:09,000 --> 00:08:11,000 Ako pagpunta upang buksan ang isang bracket. 155 00:08:11,000 --> 00:08:13,000 Narito ang pangalan ng aking paraan ng. 156 00:08:13,000 --> 00:08:17,000 Ako pagpunta sa isara ang bracket, at ito ay ang mga bagay na ako pagtawag ito sa. 157 00:08:17,000 --> 00:08:20,000 Tandaan, ang lahat ng mga pamamaraan na ito ay umiiral sa loob ng klase 158 00:08:20,000 --> 00:08:23,000 dahil klase ay maaaring magkaroon ng mga pamamaraan na tinukoy sa loob ng mga ito. 159 00:08:23,000 --> 00:08:26,000 >> Narito mang Lumikha ako ng isang bagay ng ilang mga klase, 160 00:08:26,000 --> 00:08:28,000 at ito ay ang syntax para sa paggawa na. 161 00:08:28,000 --> 00:08:31,000 May 2 hakbang sa paglikha ng isang bagay. 162 00:08:31,000 --> 00:08:34,000 Ang unang hakbang ay upang sabihin na gusto kong maglaan ng espasyo. 163 00:08:34,000 --> 00:08:37,000 Ito ay ang katumbas ng isang malloc. Hindi namin sabihin malloc ito. 164 00:08:37,000 --> 00:08:42,000 Bumaba kami sa m, ginawa ito alloc, at pinalitan ang. C may. M. 165 00:08:42,000 --> 00:08:47,000 Pagkatapos alloc namin ng isang bagay na kailangan namin pagkatapos simulan ito. 166 00:08:47,000 --> 00:08:49,000 Isa lamang kapag lumikha ka ng mga bagay na maaaring gusto mong ilang logic 167 00:08:49,000 --> 00:08:53,000 na executes kapag sila ay nilikha, kaya maaari kang pumasa sa ilang mga halaga ng default 168 00:08:53,000 --> 00:08:57,000 o isang bagay tulad na, at kaya ito init paraan ng kung ano ang aktwal na lumilikha ng object. 169 00:08:57,000 --> 00:08:59,000 Muna namin maglaan ng espasyo, tulad ng ginawa namin sa C, 170 00:08:59,000 --> 00:09:04,000 at pagkatapos namin initialize ito, na maaaring o hindi maaaring gawin ang isang buong maraming. 171 00:09:04,000 --> 00:09:07,000 Pagkatapos kami ay bumabalik ang bagay na ito sa isang bagay o. 172 00:09:07,000 --> 00:09:09,000 Mayroong isang bituin dito dahil ito ay technically isang pointer, 173 00:09:09,000 --> 00:09:12,000 ngunit huwag mag-alala, mga payo ay hindi na malaking deal sa Layunin-C na ito. 174 00:09:12,000 --> 00:09:15,000 >> Na namin ngayon ang instantiated klase na ito na tinatawag na NSObject, 175 00:09:15,000 --> 00:09:19,000 at ito ay isang random klase na Apple ay may lamang. 176 00:09:19,000 --> 00:09:22,000 Namin na instantiated ito, at ngayon mayroon akong isang halimbawa ng ganitong uri 177 00:09:22,000 --> 00:09:25,000 sa o sa bagay na ito, kaya na nangangahulugan na kung na tinukoy ko 178 00:09:25,000 --> 00:09:29,000 mga pamamaraan na ito ay maaaring kong tumawag sa kanila na katulad nito. 179 00:09:29,000 --> 00:09:31,000 Katulad nito, kung Nais kong tumawag sa isang paraan nang may isang argument, 180 00:09:31,000 --> 00:09:34,000 kaya ito ay pamamaraan ng bar, na tumatagal ng isang argument, 181 00:09:34,000 --> 00:09:38,000 at dito sa baz: qux paraan ng, kaya ito ay tumatagal ng 2 argumento. 182 00:09:38,000 --> 00:09:44,000 Ito ay pagtawag ng isang function na sa sa bagay na ito o. 183 00:09:44,000 --> 00:09:46,000 Kabuluhan? 184 00:09:46,000 --> 00:09:50,000 Syntax ay dapat magkaroon ng kahulugan, ngunit uri ng masanay dito. 185 00:09:50,000 --> 00:09:54,000 >> Okay, sabihin usapan ang tungkol sa ilang mga bagay na binuo sa Layunin-C 186 00:09:54,000 --> 00:09:56,000 na hindi kinakailangang binuo sa C. 187 00:09:56,000 --> 00:09:59,000 Sa C namin uri ng ay humarap sa mga string bilang mga bobo array ng character na, 188 00:09:59,000 --> 00:10:01,000 at Mayroon talagang nakakainis. 189 00:10:01,000 --> 00:10:04,000 Layunin-C ay may mga lahat ng built in para sa amin, at ito ay itinayo noong 190 00:10:04,000 --> 00:10:06,000 gamit ang klase na ito na tinatawag na NSString. 191 00:10:06,000 --> 00:10:10,000 Kapag gusto ko upang lumikha ng isang NSString mayroon kaming mas arcane syntax. 192 00:10:10,000 --> 00:10:15,000 Sa halip na nagsasabing "cs50" sabihin namin @ "cs50" 193 00:10:15,000 --> 00:10:17,000 at ito lamang ang syntax para sa deklarasyon ng mga string sa Layunin-C. 194 00:10:17,000 --> 00:10:21,000 Ito ay lubos na madaling kalimutan, kaya hindi. 195 00:10:21,000 --> 00:10:24,000 Ngayon, sa sandaling mayroon akong ito, ito ay isang string, ngunit mapansin 196 00:10:24,000 --> 00:10:26,000 ito ay talagang isang bagay lamang. 197 00:10:26,000 --> 00:10:30,000 Ko sinabi NSString, na nangangahulugan ko instantiated klase 198 00:10:30,000 --> 00:10:32,000 na tinatawag na NSString, kung saan ang ibang tao sinulat ni para sa akin, 199 00:10:32,000 --> 00:10:35,000 at sila ay napakabuti tungkol dito, at kaya ngayon 200 00:10:35,000 --> 00:10:37,000 Maaari kong simulan ang pagtawag pamamaraan dito. 201 00:10:37,000 --> 00:10:40,000 Kung Tinatawag ko ang paraan ng haba sa sa bagay na ito s 202 00:10:40,000 --> 00:10:43,000 ito ay bumalik sa akin ang haba ng string. 203 00:10:43,000 --> 00:10:45,000 Ito ay tulad ng strlen sa C. 204 00:10:45,000 --> 00:10:47,000 Ito ay magbabalik ng 4. 205 00:10:47,000 --> 00:10:51,000 >> Katulad nito, ang ibang paraan na maaaring ko gusto mong pakialam tungkol ang characterAtIndex na ito. 206 00:10:51,000 --> 00:10:54,000 Ito ay isang pamamaraan na nagsasabing sa ang string na ito s 207 00:10:54,000 --> 00:10:57,000 Gusto ko sa iyo upang makuha ang 0 karakter, 208 00:10:57,000 --> 00:10:59,000 at kaya ito ay bumalik sa akin ng character c, 209 00:10:59,000 --> 00:11:02,000 at ang maramihang higit pa sa mga pamamaraan na maaari mong Google talagang madali. 210 00:11:02,000 --> 00:11:07,000 Apple ng dokumentasyon ay mahusay, at isasaalang-alang namin ang isang pagtingin sa na sa ilang saglit. 211 00:11:07,000 --> 00:11:09,000 Iyon ang string. 212 00:11:09,000 --> 00:11:11,000 Din kami ng variable laki ng array na binuo. 213 00:11:11,000 --> 00:11:13,000 Tandaan sa C kapag ipinahayag namin ang isang array 214 00:11:13,000 --> 00:11:16,000 nagkaroon kami sabihin nating mayroon kang 5 elemento, dulo ng kuwento. 215 00:11:16,000 --> 00:11:18,000 Kapag nakuha namin sa JavaScript at PHP kami maaaring magsimula 216 00:11:18,000 --> 00:11:20,000 paggawa ng mga bagay tulad ng pagdaragdag ng mga elemento o paglipat ng mga elemento. 217 00:11:20,000 --> 00:11:22,000 Maaari naming gawin ang parehong sa Layunin-C. 218 00:11:22,000 --> 00:11:26,000 Sa halip na lumikha ng isang array sa normal na paraan ng C 219 00:11:26,000 --> 00:11:30,000 mayroon kaming muli isa pang klase na tinatawag na sa NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 Mayroon ding NSArray, 221 00:11:33,000 --> 00:11:35,000 at ito ay pagpunta sa isa lamang encapsulate ilang array. 222 00:11:35,000 --> 00:11:38,000 Sabi ito ang unang bagay na gusto kong gawin ay gusto kong maglaan 223 00:11:38,000 --> 00:11:41,000 espasyo para sa isang bagong array, at pagkatapos maglaan ko ito 224 00:11:41,000 --> 00:11:43,000 Pagkatapos ko kailangang simulan ito. 225 00:11:43,000 --> 00:11:45,000 Muli, lamang pagtawag sa mga 2 pamamaraan. 226 00:11:45,000 --> 00:11:48,000 Ngayon, ito ay nangangahulugan na sa loob ng sa bagay na ito 227 00:11:48,000 --> 00:11:50,000 Ko ang isang walang laman na array sitting doon. 228 00:11:50,000 --> 00:11:54,000 Kung gusto ko upang magdagdag ng isang bagay na ito array, maaari ba akong tumawag sa addObject paraan ng. 229 00:11:54,000 --> 00:11:59,000 Gusto kong magdagdag ng isang bagay sa array ng, at gusto kong idagdag ang string CS50. 230 00:11:59,000 --> 00:12:02,000 Kung Nais kong pasalungat alisin na ang maaari kong sabihin gusto kong 231 00:12:02,000 --> 00:12:09,000 alisin ang mga bagay sa unang lugar sa array o isang bagay. 232 00:12:09,000 --> 00:12:11,000 >> Kabuluhan? 233 00:12:11,000 --> 00:12:14,000 Okay, uri ng ginagamit upang ito square bracket bagay. 234 00:12:14,000 --> 00:12:18,000 Sa pamamagitan ng paraan, sa loob ng maraming mga aklatan ng Apple makikita mo ang NS. 235 00:12:18,000 --> 00:12:21,000 NS Ang aktwal na nakatayo para sa susunod na hakbang, na kung saan ay isa sa Steve Trabaho unang kumpanya, 236 00:12:21,000 --> 00:12:24,000 at na kung saan siya talaga nagsimula ang pagsusulat ng maraming ng code 237 00:12:24,000 --> 00:12:27,000 bilang uri ng batayan para sa Mac OS X at lahat ng iba pang mga bagay-bagay, 238 00:12:27,000 --> 00:12:32,000 at kaya NS ito ay uri ng ito maganda ang legacy shout out sa isa sa mga mas maaga kumpanya 239 00:12:32,000 --> 00:12:34,000 bumalik kapag Apple ay unang nagsisimula ang. 240 00:12:34,000 --> 00:12:36,000 Ito ay lahat ng dako. 241 00:12:36,000 --> 00:12:41,000 Natin tingnan sa isang mas halimbawa holistic Layunin-C. 242 00:12:41,000 --> 00:12:44,000 Narito Ako loob ng XCode. 243 00:12:44,000 --> 00:12:47,000 Upang makarating dito, ako unang-download XCode mula sa App Store, 244 00:12:47,000 --> 00:12:50,000 binuksan ito, at pagkatapos ay nagpunta ako dito sa file, 245 00:12:50,000 --> 00:12:54,000 sa paglipas dito sa bago, at pagkatapos ay proyekto. 246 00:12:54,000 --> 00:12:57,000 Pagkatapos gawin ako na mayroon akong lahat sa mga pagpipiliang ito ng kung ano ang gusto kong lumikha, 247 00:12:57,000 --> 00:12:59,000 at sa gayon ay isasaalang-alang namin ang isang pagtingin sa mga pagpipiliang ito sa ibang pagkakataon, 248 00:12:59,000 --> 00:13:03,000 ngunit para lamang sa mga halimbawang ito, dahil hindi namin ang aktwal na magkaroon ng isang app, 249 00:13:03,000 --> 00:13:06,000 Bumaba ako dito, at sinabi ko ang Command Line Tool, 250 00:13:06,000 --> 00:13:09,000 at ito ay isang app na maaari kong tumakbo sa command line 251 00:13:09,000 --> 00:13:12,000 tulad lang namin ang tumatakbo mula sa C. 252 00:13:12,000 --> 00:13:16,000 Iyon ay kung paano nilikha ko ang proyektong ito, at kaya ngayon ako dito, 253 00:13:16,000 --> 00:13:20,000 kaya sabihin unang pagtingin sa ang file na ito, at ito ay dapat magmukhang medyo pamilyar. 254 00:13:20,000 --> 00:13:24,000 Mayroon akong isang int pangalan. May aking kaibigan argc, ang aking iba pang mga kaibigan sa argv. 255 00:13:24,000 --> 00:13:30,000 At upang maaari naming makita na ito ay ang entry point para sa aking unang Layunin-C application. 256 00:13:30,000 --> 00:13:32,000 Dito maaari naming huwag pansinin ito sa ngayon. 257 00:13:32,000 --> 00:13:35,000 Ito ay isa lamang ilang mga bagay-bagay sa pamamahala ng memory na ikaw ay hindi talagang 258 00:13:35,000 --> 00:13:37,000 kailanman mag-alala tungkol. 259 00:13:37,000 --> 00:13:39,000 >> Tingnan natin sa unang block dito. 260 00:13:39,000 --> 00:13:46,000 Ang unang linya na ito, kung sinasabi ko ng Mag-aaral * Alice = [[Estudyante alloc] init] kung ano ang ang paggawa? 261 00:13:46,000 --> 00:13:50,000 Ito unang mag-aaral dito, ito ay marahil isang klase. 262 00:13:50,000 --> 00:13:54,000 Ito ay hindi isang klase na Apple sinulat ni, ngunit ito ay isang klase na aking sinulat ni. 263 00:13:54,000 --> 00:13:57,000 Ang unang bagay na gusto kong gawin ay gusto kong maglaan ng espasyo para sa isang bagong mag-aaral, 264 00:13:57,000 --> 00:14:00,000 at pagkatapos Gusto kong simulan ito, kaya ito ay nagbibigay sa akin muli 265 00:14:00,000 --> 00:14:05,000 bagong mag-aaral ng bagay na ito, at ako sa pag-iimbak ng ito sa isang variable na tinatawag na Alice. 266 00:14:05,000 --> 00:14:07,000 Saan klase na nanggaling mula? 267 00:14:07,000 --> 00:14:12,000 Well, sa paglipas dito sa kaliwang bahagi ito ay ang lahat ng iba't ibang mga file sa loob ng aking proyekto. 268 00:14:12,000 --> 00:14:16,000 Maaari naming makita dito mayroon akong ng Student.h at isang Student.m. 269 00:14:16,000 --> 00:14:20,000 Ang file na. H, tandaan, kung saan ipinapahayag ko lahat ng mga bagay 270 00:14:20,000 --> 00:14:22,000 na umiiral sa loob ng klase. 271 00:14:22,000 --> 00:14:25,000 >> Natin kumuha ng isang pagtingin sa na. 272 00:14:25,000 --> 00:14:29,000 Lahat ng karapatan, dito mayroon kaming @ interface na ito, at ito sabi ni na dito ay 273 00:14:29,000 --> 00:14:33,000 ang mga pagdeklara ng lahat na umiiral sa loob ng aking klase. 274 00:14:33,000 --> 00:14:36,000 Pagkatapos Mayroon akong ng tutuldok. Pagkatapos Mayroon akong NSObject bagay na ito. 275 00:14:36,000 --> 00:14:40,000 Sumisimbolo na inheritance bit na namin ang tinatalakay ng kaunti mas maaga ang tutuldok na ito. 276 00:14:40,000 --> 00:14:43,000 Ito sabi ni ang lahat ng maaaring gawin ng isang NSObject 277 00:14:43,000 --> 00:14:46,000 kung saan ang NSObject klase na ito na nakasulat sa pamamagitan ng ibang tao, 278 00:14:46,000 --> 00:14:50,000 lahat NSObject na ito ay maaaring gawin gusto ko upang gawin iyon. 279 00:14:50,000 --> 00:14:54,000 Sa pamamagitan ng sinasabi: NSObject na nangangahulugan na ako talaga 280 00:14:54,000 --> 00:14:58,000 minana ang lahat ng pag-andar ng isa pang uri. 281 00:14:58,000 --> 00:15:02,000 Na talagang nagbigay ako ng isang buong grupo ng mga iba't ibang mga pamamaraan at mga katangian na maaari kong gamitin. 282 00:15:02,000 --> 00:15:05,000 Down dito Lumilikha ako ng 2 mga katangian. 283 00:15:05,000 --> 00:15:08,000 Iyon ay nangangahulugan na ang aking mga mag-aaral, kung ito ay isang struct, mga ito ay ang 2 bagay 284 00:15:08,000 --> 00:15:11,000 sa loob ng aking struct, kaya bawat mag-aaral ay may isang pangalan 285 00:15:11,000 --> 00:15:14,000 na isang string, at ang mag-aaral ng isang grado, 286 00:15:14,000 --> 00:15:17,000 na isang int. 287 00:15:17,000 --> 00:15:23,000 >> Panghuli, pababa dito ako pagpunta upang lumikha ng isang paraan para sa aking mga mag-aaral. 288 00:15:23,000 --> 00:15:26,000 Tinatawag ko ang aking paraan ng, initWithName, at ito ay tumatagal ng isang argument, 289 00:15:26,000 --> 00:15:31,000 at ang argument na isang string, at tinatawag ko ito pangalanan. 290 00:15:31,000 --> 00:15:35,000 Ngayon tingnan natin sa kung paano namin aktwal na ipinatupad ng klase na ito. 291 00:15:35,000 --> 00:15:38,000 Dito, ngayon ako sa loob ng aking mga file na. M, 292 00:15:38,000 --> 00:15:40,000 m para sa pagpapatupad, hulaan ko. 293 00:15:40,000 --> 00:15:44,000 Ko ang aking pagpapatupad, ang aking pagtatapos, at dito ay kung saan aktwal ako pagtukoy 294 00:15:44,000 --> 00:15:47,000 ano initWithName ginagawa. 295 00:15:47,000 --> 00:15:50,000 Mayroon akong initWithName, ang pangalan ng aking mga parameter, at pagkatapos na ito 296 00:15:50,000 --> 00:15:53,000 kung saan aktwal na Lumilikha ako ng isang mag-aaral, 297 00:15:53,000 --> 00:15:56,000 at kaya ito ay kaunti misteriyoso, ngunit ito ay uri ng boilerplate 298 00:15:56,000 --> 00:15:58,000 na nais mong isama sa iyong mga constructor. 299 00:15:58,000 --> 00:16:02,000 Function na ito Pinasimulan dito, initWithName, ay isang uri ng constructor. 300 00:16:02,000 --> 00:16:05,000 Talaga mong bumuo ng isang bagong bagay ng mag-aaral 301 00:16:05,000 --> 00:16:07,000 at maaaring pagpapadala ng ilang mga data sa loob nito. 302 00:16:07,000 --> 00:16:11,000 Ang unang bagay na gusto kong gawin ay gusto kong tumawag sa init sa sobrang bagay na ito. 303 00:16:11,000 --> 00:16:15,000 >> Tandaan na kapag sinabi ko bumalik dito sa file na. H 304 00:16:15,000 --> 00:16:21,000 na lahat NSObject ay may isang mag-aaral ay mayroon ding. 305 00:16:21,000 --> 00:16:24,000 Nangangahulugan iyon na kapag lumikha ako ng isang mag-aaral kung ano ang kailangan ko rin na gawin ay 306 00:16:24,000 --> 00:16:28,000 tiyakin na ang NSObject na ako inheriting ang lahat ng data na iyon mula 307 00:16:28,000 --> 00:16:32,000 din ang maayos na nasimulan. 308 00:16:32,000 --> 00:16:36,000 Ano ang kailangan ko upang sabihin ito sobrang ay aktwal na pagpunta sa sumangguni sa klase ng magulang 309 00:16:36,000 --> 00:16:39,000 na ako inheriting mula sa, kaya gusto kong tiyakin ko initialize 310 00:16:39,000 --> 00:16:43,000 lahat na ako depende sa bago sisimulan ko ang sinusubukang gamitin ito. 311 00:16:43,000 --> 00:16:46,000 Pagkatapos kung na nasimulan tama, ito ay tulad ng sinasabi kung malloc 312 00:16:46,000 --> 00:16:50,000 ay hindi bumalik null pagkatapos maaari kong simulan ang pagtatakda ng ilang mga katangian. 313 00:16:50,000 --> 00:16:54,000 >> Sa JavaScript at PHP namin keyword na ito na tinatawag na ito, 314 00:16:54,000 --> 00:16:58,000 at ito ay tinutukoy sa kasalukuyang Halimbawa ng isang klase. 315 00:16:58,000 --> 00:17:00,000 Sa Layunin-C tinatawag naming ito sa sarili. 316 00:17:00,000 --> 00:17:04,000 Kapag sinabi ko self.name, na nangangahulugan na ang bagay 317 00:17:04,000 --> 00:17:07,000 Ko lang nilikha kapag sinabi ko ang mag-aaral alloc init, 318 00:17:07,000 --> 00:17:09,000 na pagpunta upang bigyan ako ng isang bagay. 319 00:17:09,000 --> 00:17:12,000 Iyon ay nangangahulugang gusto ko upang i-set ang pangalan ng bagay na iyon 320 00:17:12,000 --> 00:17:15,000 sa anumang ko lang ang pumasa. 321 00:17:15,000 --> 00:17:18,000 Tulad sa C, hindi namin ma-access ang mga miyembro na may tuldok na ito, 322 00:17:18,000 --> 00:17:21,000 kaya sabi ng self.name ang pangalan ng mag-aaral ang mga bagay 323 00:17:21,000 --> 00:17:24,000 ngayon ang pagpunta sa anumang mo lamang ang pumasa. 324 00:17:24,000 --> 00:17:28,000 At kaya sa wakas, ang maaari kong ibalik ito kaya ko aktwal na makakuha ng isang bagay na pabalik. 325 00:17:28,000 --> 00:17:30,000 >> Mga tanong? 326 00:17:30,000 --> 00:17:34,000 Okay, sa gayon sarili ito = sobrang init, 327 00:17:34,000 --> 00:17:37,000 kung hindi mo lubos na maunawaan ang mga bagay-bagay ng mana huwag mag-alala. 328 00:17:37,000 --> 00:17:40,000 Lang malaman na kung sakaling nais upang gumawa ng iyong sariling paraan ng init lamang 329 00:17:40,000 --> 00:17:42,000 gawin iyon, at ikaw ay handa na upang patakbuhin. 330 00:17:42,000 --> 00:17:44,000 Oo. >> [Mag-aaral] Ano ang ibig sabihin ng kung sarili sabihin? 331 00:17:44,000 --> 00:17:49,000 Nangangahulugan ito na kapag malloc namin ng isang bagay na lagi naming naka-check kung ito ay katumbas ng null, 332 00:17:49,000 --> 00:17:51,000 at kung ito ay null, pagkatapos namin lumabas. 333 00:17:51,000 --> 00:17:55,000 Ito ay ang parehong bagay, dahil kung ito babalik sa null, pagkatapos marahil kami ay pagpunta sa seg fault 334 00:17:55,000 --> 00:17:57,000 kung sinimulan namin ang pagsubok na manipulahin ito. 335 00:17:57,000 --> 00:18:01,000 Na ang aming klase ng mag-aaral. 336 00:18:01,000 --> 00:18:03,000 Ito ay nangangahulugan na maaari naming simulan ang aming mga mag-aaral sa isa sa dalawang paraan. 337 00:18:03,000 --> 00:18:08,000 Kung sinasabi ko ang mag-aaral alloc init hindi ko ginagamit na paraan ng ko lang sinulat ni, 338 00:18:08,000 --> 00:18:11,000 at sa halip ko lang sabihin alice.name, 339 00:18:11,000 --> 00:18:14,000 at ngayon ako i-set na ang pangalan ng ari-arian. 340 00:18:14,000 --> 00:18:17,000 >> Katulad nito, kung gusto kong gamitin na initWithName paraan ng 341 00:18:17,000 --> 00:18:20,000 Ko lamang sabihin ang alloc, at pagkatapos ay sa halip na sinasabi init 342 00:18:20,000 --> 00:18:24,000 Ako pagpunta sa tumawag na paraan ng ko lang nilikha, at ako pagpunta upang pumasa sa Bob. 343 00:18:24,000 --> 00:18:30,000 Sa puntong ito, sa bagay na ito ni Bob ay may pangalan na katumbas ng Bob. 344 00:18:30,000 --> 00:18:35,000 Okay, pababa dito ako gamit na NSMutableArray na namin ay tumingin sa mas maaga. 345 00:18:35,000 --> 00:18:38,000 Ako paglaan space.Then ako Sinisimulan ang isang bagong array. 346 00:18:38,000 --> 00:18:40,000 Ako pagpunta upang magdagdag ng 2 mga bagay na ito. 347 00:18:40,000 --> 00:18:43,000 Ngayon hold ang mga bagay ng mag-aaral ang array na ito. 348 00:18:43,000 --> 00:18:46,000 Pansinin na ay wala saanman kong sabihin na ito ay isang hanay ng mga mag-aaral. 349 00:18:46,000 --> 00:18:48,000 Sinabi ko ito ay isang array, panahon. 350 00:18:48,000 --> 00:18:50,000 Pagkatapos ay maaari ko bang ilagay ang anumang sa loob nito na gusto ko. 351 00:18:50,000 --> 00:18:52,000 Narito Mayroon akong 2 bagay. 352 00:18:52,000 --> 00:18:56,000 >> Panghuli, mayroon akong isa pang bagay dito, ito tf. 353 00:18:56,000 --> 00:18:59,000 Sa paglipas ng dito sa TF.h talaga ang parehong bagay. 354 00:18:59,000 --> 00:19:01,000 Ako inheriting mula sa NSObject, at sa pamamagitan ng ang paraan, 355 00:19:01,000 --> 00:19:03,000 kapag lumikha ka ng klase na ito ay ginawa para sa iyo, 356 00:19:03,000 --> 00:19:06,000 ganitong uri ng interface boilerplate. 357 00:19:06,000 --> 00:19:08,000 Ay isang ari-arian ng mga mag-aaral. 358 00:19:08,000 --> 00:19:15,000 Mayroon akong ilang mga pamamaraan dito na hindi talagang gawin ang isang buong maraming, 359 00:19:15,000 --> 00:19:18,000 at sa gayon ay nangangahulugan na pagkatapos lumikha ko ito tf bagay 360 00:19:18,000 --> 00:19:23,000 Maaari kong tawagan ang pamamaraan na ito ng grado dito tulad nito. 361 00:19:23,000 --> 00:19:26,000 Anumang mga katanungan sa Layunin-C syntax bago simulan namin ang paglipat sa ilang higit pang 362 00:19:26,000 --> 00:19:30,000 kawili-wili apps unlad bagay? 363 00:19:30,000 --> 00:19:34,000 >> Okay, kaya sabihin aktwal na gumawa ng iPhone app. 364 00:19:34,000 --> 00:19:39,000 Ang mga klase ng core na makikita mo gamit sa loob ng iyong iPhone app ay tinatawag na tanawin controllers, 365 00:19:39,000 --> 00:19:42,000 at ng tanawin controller talaga ay kumakatawan sa isang solong screen 366 00:19:42,000 --> 00:19:46,000 sa loob ng iyong app, kaya kung ako sa app ng musika, halimbawa, 367 00:19:46,000 --> 00:19:50,000 isang view controller ay maaaring kumatawan sa view ng kung saan ko tingnan ang lahat ng mga kanta sa aking iPhone. 368 00:19:50,000 --> 00:19:53,000 Isa pang view ng controller ay maaaring kapag ako ay i-click ang isang kanta at simulan ang nagpe-play ito 369 00:19:53,000 --> 00:19:55,000 o bilang ako pagbabarena down sa artist. 370 00:19:55,000 --> 00:19:59,000 Ang bawat isa ng mga iba't ibang mga screen ay maaaring kinakatawan bilang isang iba't ibang mga view ng controller, 371 00:19:59,000 --> 00:20:04,000 at ng tanawin controller ay talagang lamang klase na sinasabi kung paano gumagana ang screen na ito. 372 00:20:04,000 --> 00:20:07,000 Mga bagay sa loob ng isang view ng controller, kami ay pagpunta sa may ang mga katangian ng, 373 00:20:07,000 --> 00:20:10,000 kaya ang mga bagay na tulad ng isang pindutan pagpunta sa isang ari-arian ng aming view ng controller. 374 00:20:10,000 --> 00:20:13,000 >> Rin namin na magkaroon ng mga pamamaraan, at ito ay isa lamang na kaganapan handler. 375 00:20:13,000 --> 00:20:16,000 Sabi ng pamamaraang ito kapag pindutin ang pindutang ito 376 00:20:16,000 --> 00:20:19,000 Gusto kong gawin ang isang bagay, at sa wakas, muli, 377 00:20:19,000 --> 00:20:24,000 kami ay pagpunta sa gamit ang sarili keyword upang ma-access ang kasalukuyang Halimbawa. 378 00:20:24,000 --> 00:20:29,000 Upang bumuo ng mga interface sa iOS ay talagang talagang, talagang madali. 379 00:20:29,000 --> 00:20:32,000 Mayroon silang ito gandang i-drag at i-drop na interface na tinatawag na Interface Builder, 380 00:20:32,000 --> 00:20:37,000 at ang 2 pangunahing konsepto na wire up ang iyong Layunin-C upang Interface Builder 381 00:20:37,000 --> 00:20:40,000 ay IBOutlet at IBAction. 382 00:20:40,000 --> 00:20:44,000 IBOutlet isang simpleng sabi na kung idedeklara ka ng isang ari-arian na ang isang pindutan, 383 00:20:44,000 --> 00:20:47,000 at nais mong Hook up ang mga ito sa isang bagay sa iyong aktwal na UI, 384 00:20:47,000 --> 00:20:49,000 ka upang sabihin ito ay isang outlet. 385 00:20:49,000 --> 00:20:51,000 Gayundin, kung nais mong kinakatawan ang isang kaganapan handler 386 00:20:51,000 --> 00:20:54,000 ka upang sabihin ito ng isang aksyon. 387 00:20:54,000 --> 00:20:57,000 >> Upang aktwal na wire graphical na representasyon na ito 388 00:20:57,000 --> 00:21:00,000 at ang iyong code talaga, talagang simple. 389 00:21:00,000 --> 00:21:03,000 Kung nais mong maglakip ng IBOutlet, ang lahat ng kailangan mong gawin ay kinokontrol mo click, 390 00:21:03,000 --> 00:21:05,000 at makikita namin makita ang isang halimbawa ng mga ito talagang mabilis. 391 00:21:05,000 --> 00:21:07,000 Kinokontrol mo i-click ang kung saan sinasabi nito View Controller. 392 00:21:07,000 --> 00:21:09,000 Ka upang i-drag sa interface, o pasalungat, 393 00:21:09,000 --> 00:21:13,000 kung gusto mong i-hook up ng isang kaganapan handler ka upang i-drag mula sa interface 394 00:21:13,000 --> 00:21:15,000 sa iba pang direksyon. 395 00:21:15,000 --> 00:21:20,000 Natin ng isang pagtingin sa isang talagang simpleng halimbawa iOS. 396 00:21:20,000 --> 00:21:23,000 >> Natin lumikha ng isang bagong proyekto. 397 00:21:23,000 --> 00:21:25,000 Pupunta ako upang makabuo dito upang Application, 398 00:21:25,000 --> 00:21:28,000 at ako pagpunta sa i-click ang Single Tingnan ang Application. 399 00:21:28,000 --> 00:21:31,000 Ako pagpunta sa i-click ang susunod. Bibigyan kita ng aking proyekto ng pangalan. 400 00:21:31,000 --> 00:21:33,000 Tatawag ako ito Hello. 401 00:21:33,000 --> 00:21:36,000 Nang kawili-wili, ang Apple Ipinagpapalagay lumilikha ka ng isang produkto 402 00:21:36,000 --> 00:21:38,000 upang maaari kang magbenta ng ito at maaari silang gumawa ng pera. 403 00:21:38,000 --> 00:21:41,000 Down dito ako upang sabihin na ito ay isang iPhone app. 404 00:21:41,000 --> 00:21:44,000 Maaari kang lumikha ng isang iPad app, o kung nais mong lumikha ng isa ng mga apps 405 00:21:44,000 --> 00:21:47,000 na sumusuporta sa parehong mga aparatong maaari mong gawin na masyadong. 406 00:21:47,000 --> 00:21:49,000 Mga ito ay kung ano ang nais mong iyong mga checkmarks sa hitsura. 407 00:21:49,000 --> 00:21:51,000 >> Na nais mong gamitin ang storyboards, na makikita namin makita mamaya, 408 00:21:51,000 --> 00:21:54,000 at talagang nais upang magamit ang awtomatikong reference nadaragdagan, 409 00:21:54,000 --> 00:21:58,000 kung saan ay isang magaling na tampok na pumipigil sa iyo mula sa pagkakaroon ng sabihin malloc at libreng. 410 00:21:58,000 --> 00:22:03,000 Maliban kung gusto mong tumawag malloc at libreng, nais kong mag-iwan ito naka-check. 411 00:22:03,000 --> 00:22:07,000 Ko i-click ang susunod na, at sa wakas, ito ay pagpunta sa hilingin sa akin kung saan gusto ko upang i-save ang mga ito. 412 00:22:07,000 --> 00:22:14,000 Makikita ko pindutin lumikha, at dito namin pumunta. 413 00:22:14,000 --> 00:22:16,000 Lumikha ako ng bagong proyekto. 414 00:22:16,000 --> 00:22:19,000 Sa paglipas dito sa kaliwa ay ang lahat ng mga file na sa loob ng aking proyekto, 415 00:22:19,000 --> 00:22:22,000 at pansinin na Nakatanggap ako ng buong bungkos, at hindi ko kahit gawin. 416 00:22:22,000 --> 00:22:24,000 IOS ay mahusay. 417 00:22:24,000 --> 00:22:27,000 >> Halimbawa, narito ang ViewController.h, 418 00:22:27,000 --> 00:22:30,000 ito ay kumakatawan sa aking unang view ng controller, 419 00:22:30,000 --> 00:22:32,000 kaya ang unang screen sa loob ng aking app. 420 00:22:32,000 --> 00:22:34,000 Ngayon namin malaman kung ano ito ay sinasabi. 421 00:22:34,000 --> 00:22:36,000 Namin sinasabi na ako pagtawag ito klase ViewController, 422 00:22:36,000 --> 00:22:40,000 at isang ViewController ang lahat na isang UIViewController ginagawa, 423 00:22:40,000 --> 00:22:43,000 at ito, muli, ilang klase na sinulat ni Apple na ginagawa ng maraming mga madaling-gamiting mga bagay-bagay para sa amin 424 00:22:43,000 --> 00:22:46,000 bang ipakita sa screen. 425 00:22:46,000 --> 00:22:50,000 Narito ay kung saan maaari kong aktwal na magsimula sa pagtukoy kung ano ang aking pagtingin ng controller, 426 00:22:50,000 --> 00:22:52,000 at ito ay lumiliko ko talagang hindi na kailangan ang anumang mga ito. 427 00:22:52,000 --> 00:22:55,000 Ito ay boilerplate code na Apple ay nagbibigay sa akin nang libre. 428 00:22:55,000 --> 00:22:59,000 Ko ginawa kailangan na unang linya, o hindi ko magkaroon ng isang klase, 429 00:22:59,000 --> 00:23:02,000 upang maaari naming makakuha ng mapupuksa ng na at mapupuksa ng ito. 430 00:23:02,000 --> 00:23:05,000 Okay, kaya ito ang aking walang laman na screen. 431 00:23:05,000 --> 00:23:08,000 >> Ngayon sabihin i-click ito MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 at ito ay kung saan ito nagsisimula upang makakuha ng kawili-wiling. 433 00:23:11,000 --> 00:23:14,000 Ito ay kumakatawan sa unang screen sa aking app. 434 00:23:14,000 --> 00:23:17,000 Kung gusto kong magdagdag ng isang pindutan, sa HTML ko ay upang lumikha ng isang pindutan tag. 435 00:23:17,000 --> 00:23:20,000 Sa Android mayroon kang lumikha ng isang pindutan tag, 436 00:23:20,000 --> 00:23:23,000 ngunit sa iOS kung ko lang bumaba dito sa kanan ng ibaba 437 00:23:23,000 --> 00:23:27,000 at kung ako mag-click sa ito 3rd isa dito kung saan sinasabi nito Objects, 438 00:23:27,000 --> 00:23:31,000 at maaari ba akong mag-scroll pababa, o maaari kong simulan ang paghahanap para sa pindutan. 439 00:23:31,000 --> 00:23:35,000 At tumingin, isang pindutan, kaya kung aktwal ko i-drag at i-drop sa karapatang ito doon, 440 00:23:35,000 --> 00:23:38,000 Lamang Idinagdag ko na ang isang pindutan sa screen na ito sa aking app. 441 00:23:38,000 --> 00:23:41,000 Kung gusto kong baguhin ang teksto, maaari kong i-double click ito, 442 00:23:41,000 --> 00:23:47,000 sabihin nakakaakit ng isang bagay tulad ng "Pindutin Akin." 443 00:23:47,000 --> 00:23:51,000 Okay, ngayon kung nagpatakbo ako ng app na ito, kaya kami makatipon ito, 444 00:23:51,000 --> 00:23:54,000 upang patakbuhin ito ko i-click ang play button sa itaas na kaliwang, at ang aking app. 445 00:23:54,000 --> 00:23:58,000 Hindi ko gawin, at Nakatanggap ako ng matamis na naghahanap iPhone app. 446 00:23:58,000 --> 00:24:01,000 Kung gusto ko upang ihinto ang mga ito, maaari mong i-click ang pindutan ng stop 447 00:24:01,000 --> 00:24:03,000 dahil ito ay mas masaya. 448 00:24:03,000 --> 00:24:07,000 >> Sabihin natin na gusto ko aktwal na isang bagay na mangyari kapag pindutin ko ang pindutan na ito. 449 00:24:07,000 --> 00:24:09,000 Upang gawin na kung ano ang kailangan kong gawin, kailangan ko upang lumikha ng 450 00:24:09,000 --> 00:24:13,000 isang bagong handler ng kaganapan o ng isang aksyon. 451 00:24:13,000 --> 00:24:16,000 Iyon ay nangangahulugan na kailangan ko upang lumikha ng ilang mga paraan na gusto ko na tinatawag na 452 00:24:16,000 --> 00:24:18,000 kapag pindutin ko ang pindutan, kaya sabihin lumikha ng isang bagong paraan ng. 453 00:24:18,000 --> 00:24:20,000 Ako loob ng ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Kailangan kong sabihin na ang paraan ng isang umiiral. 455 00:24:22,000 --> 00:24:26,000 Kailangan ko ng gitling unang dahil ako pagpunta sa pagtawag na ito sa controller view. 456 00:24:26,000 --> 00:24:28,000 Kailangan ko upang bigyan ito ng isang uri. 457 00:24:28,000 --> 00:24:31,000 Ang uri ng ito ay na IBAction bagay na nakita natin mas maaga. 458 00:24:31,000 --> 00:24:35,000 Ito ay isang kaganapan na handler, kaya ito upang ibalik isang IBAction, 459 00:24:35,000 --> 00:24:38,000 at ito ay isang pahiwatig sa XCode sabihin na 460 00:24:38,000 --> 00:24:40,000 ito ay isang bagay na gusto ko sa wire ng isang bagay sa. 461 00:24:40,000 --> 00:24:45,000 Maaari kong bigyan ito ng isang pangalan, tulad ng buttonPressed, semicolon. 462 00:24:45,000 --> 00:24:48,000 >> Ngayon ko na ipinahayag ng isang bagong paraan sa loob ng aking klase. 463 00:24:48,000 --> 00:24:50,000 Ko na sinabi ang pamamaraang ito ay may umiiral. 464 00:24:50,000 --> 00:24:53,000 Ngayon hayaan ang dumating sa ViewController.m, 465 00:24:53,000 --> 00:24:56,000 at sabihin natin kung ano ang pamamaraang ito ay maaaring gawin. 466 00:24:56,000 --> 00:25:03,000 Kung sisimulan ko ang pag-type, halimbawa, (walang bisa) buttonPressed 467 00:25:03,000 --> 00:25:06,000 abiso XCode ay talagang maganda ang at autocompletes para sa akin. 468 00:25:06,000 --> 00:25:09,000 Na talagang kahanga-hangang. 469 00:25:09,000 --> 00:25:12,000 Mapansin dito na loob ng. M file ko ring sabihin walang bisa, 470 00:25:12,000 --> 00:25:15,000 at ito ay dahil ang IBAction na ay hindi tunay na isang uri. 471 00:25:15,000 --> 00:25:19,000 Aktwal na ito hashtag tinukoy sa isang lugar sa isang walang bisa, 472 00:25:19,000 --> 00:25:22,000 at muli, ito ay isang pahiwatig sa XCode na nagsasabing 473 00:25:22,000 --> 00:25:25,000 Gusto ko ito upang maging isang kaganapan handler, at ipapakita namin makita kung bakit sa loob lamang ng pangalawang. 474 00:25:25,000 --> 00:25:28,000 Kapag ang pindutan na ito ay pinindot ako pagpunta sa gawin ang isang bagay na nakakainis 475 00:25:28,000 --> 00:25:30,000 bang magpakita ng isang popup. 476 00:25:30,000 --> 00:25:35,000 >> Upang magawa Maaari ba akong lumikha ng isang bagong halimbawa ng ganitong klase na tinatawag UIAlertView, 477 00:25:35,000 --> 00:25:39,000 at ito ay isang klase na sinulat ni Apple na nangyayari upang ipakita ang mga nakakainis na popup. 478 00:25:39,000 --> 00:25:43,000 Susubukan naming tumawag ito popup alerto, at mayroon akong 2 hakbang, tandaan, sa paggawa sa bagay na ito. 479 00:25:43,000 --> 00:25:46,000 Ang unang bagay na kailangan kong gawin ay maglaan ng espasyo. 480 00:25:46,000 --> 00:25:48,000 Gusto kong ng UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Gusto kong maglaan ng espasyo. Na ang aking unang paraan. 482 00:25:51,000 --> 00:25:53,000 Aking susunod na paraan Gusto kong simulan ito, 483 00:25:53,000 --> 00:25:58,000 at kaya ko ito malaki, mahaba pamamaraang tinatawag na initWithTitle. 484 00:25:58,000 --> 00:26:01,000 Na talaga upang kontrolin kung ano ang mga sinasabi ng popup. 485 00:26:01,000 --> 00:26:04,000 Ang pamagat ng aking mga popup kumusta. 486 00:26:04,000 --> 00:26:08,000 Ang mensahe na ito popup "Ito ay iOS." 487 00:26:08,000 --> 00:26:10,000 Nakatalagang bagay, hindi ko alam kung ano na. 488 00:26:10,000 --> 00:26:13,000 Ipagpalagay natin na ito ay walang. 489 00:26:13,000 --> 00:26:18,000 Ngayon ang pindutan na upang lumitaw maaaring sabihin na ang isang bagay tulad ng "bang ay," 490 00:26:18,000 --> 00:26:24,000 at hindi ko talagang gusto anumang iba pang mga pindutan, kaya sabihin tanggalin iyon at isara ang bracket. 491 00:26:24,000 --> 00:26:27,000 >> Okay, nilikha ko ang dagdag na isa. Doon kami. 492 00:26:27,000 --> 00:26:30,000 Ito ay kung paano maaari kong lumikha ng isang bagong popup. 493 00:26:30,000 --> 00:26:35,000 Kung gusto kong aktwal na ipakita ang popup Gusto kong tumawag sa palabas na paraan ng. 494 00:26:35,000 --> 00:26:38,000 Upang gawin na maaari kong sabihin ng alerto at palabas, 495 00:26:38,000 --> 00:26:40,000 at muli, autocomplete ay sobrang magaling. 496 00:26:40,000 --> 00:26:42,000 Kung nakalimutan ko ang kung ano ang na, kung ko lang nai-type sa mga, 497 00:26:42,000 --> 00:26:45,000 Maaari ba akong mag-scroll sa dito upang malaman kung ano ito ay, 498 00:26:45,000 --> 00:26:48,000 at sinasala ng mabuti. 499 00:26:48,000 --> 00:26:52,000 Ngayon ko nilikha ang bagong popup. 500 00:26:52,000 --> 00:26:55,000 Susubukan naming bumalik sa kung ano ang nakatalagang ay nangangahulugan sa ibang pagkakataon, 501 00:26:55,000 --> 00:26:58,000 at ngayon ay nais kong sabihin na gusto ko ang pamamaraang ito upang ma-fired 502 00:26:58,000 --> 00:27:01,000 kapag ako pindutin ang pindutan, kaya ako pagpunta upang bumalik sa aking storyboard, 503 00:27:01,000 --> 00:27:04,000 at gusto kong i-attach ito IBAction. 504 00:27:04,000 --> 00:27:06,000 Ang unang bagay na gusto mong gawin ay i-click ang pindutan. 505 00:27:06,000 --> 00:27:08,000 Kapag pindutin ko ang pindutan na ito Gusto ko ng isang bagay na mangyayari. 506 00:27:08,000 --> 00:27:10,000 Hindi ako pagpunta upang i-hold down ang control. 507 00:27:10,000 --> 00:27:13,000 Ako pagpunta sa i-click at i-drag mula sa pindutan 508 00:27:13,000 --> 00:27:15,000 sa paglipas dito kung saan sinasabi nito View Controller. 509 00:27:15,000 --> 00:27:17,000 Maaari naming makita na ito ay mabuti Ilaw. 510 00:27:17,000 --> 00:27:22,000 >> Kung ako ipaalam sa aking mouse ako ngayon ang popup na ito sa paglipas ng dito kung saan mayroon akong ilang mga pagpipilian. 511 00:27:22,000 --> 00:27:24,000 Isa sa mga ito ay ang mga kaganapan na maaari kong magrehistro. 512 00:27:24,000 --> 00:27:28,000 Ito ang lahat ng mga pamamaraan na ipinahayag ko sa aking h file bilang IBActions. 513 00:27:28,000 --> 00:27:31,000 Ito ay kung paano XCode alam kung ano ang dapat na lumitaw sa maliit na listahan na ito, 514 00:27:31,000 --> 00:27:33,000 sa gayon ay isang pahiwatig. 515 00:27:33,000 --> 00:27:37,000 Kung ako mag-click sa pindutan pinindot, ngayon ko na nakarehistro sa kaganapan handler. 516 00:27:37,000 --> 00:27:41,000 Sa JavaScript nagkaroon kami upang sabihin Mayroon akong ilang mga code na nakarehistro sa kaganapan handler. 517 00:27:41,000 --> 00:27:43,000 Sa Layunin-C ay talagang na madaling. 518 00:27:43,000 --> 00:27:46,000 Kung nagpapatakbo ko ito muli 519 00:27:46,000 --> 00:27:49,000 ngayon kapag pindutin ko ang pindutan aking handler ng kaganapan ay pagpunta sa sunog, 520 00:27:49,000 --> 00:27:51,000 at ako pagpunta upang makuha ang popup. 521 00:27:51,000 --> 00:27:54,000 Super, sobrang simpleng doon. 522 00:27:54,000 --> 00:27:57,000 >> Kung sakaling nais upang makita ang lahat ng mga kaganapan na nangyari mang nakarehistro ang 523 00:27:57,000 --> 00:28:00,000 sa isang bahagi kung ako mag-click sa button na ito 524 00:28:00,000 --> 00:28:02,000 at dumating sa paglipas ng ko dito sa kanang bahagi 525 00:28:02,000 --> 00:28:05,000 unang maaari mong makita dito ang maaari kong gawin ang mga bagay tulad ng uri ng pindutan, 526 00:28:05,000 --> 00:28:08,000 kaya kung gusto mo ang isa sa mga ako o magdagdag ng pindutan ng contact 527 00:28:08,000 --> 00:28:10,000 o anumang. 528 00:28:10,000 --> 00:28:13,000 Kung gusto ko upang makita ang lahat ng mga kaganapan na sa button na ito 529 00:28:13,000 --> 00:28:16,000 kung dumating ko ang lahat ng mga paraan sa dito sa kanang bahagi 530 00:28:16,000 --> 00:28:19,000 maaari naming makita dito sa mga kaganapan Mayroon akong lahat ng mga iba't ibang mga kaganapan. 531 00:28:19,000 --> 00:28:23,000 Ko pindutin ang pindutan, kapag ako ay ipaalam sa pumunta ng pindutan, kapag ako ay nag-double tapikin o anumang, 532 00:28:23,000 --> 00:28:26,000 at ang isa ko lang nakarehistro sa kaganapang ito na tinatawag Touch Up Inside, 533 00:28:26,000 --> 00:28:29,000 at ito sabi ni na sa lalong madaling panahon ng aking daliri ay off ang pindutan 534 00:28:29,000 --> 00:28:32,000 na kaganapan ng pagpunta sa sunog, at na eksakto kung ano lamang ang nangyari. 535 00:28:32,000 --> 00:28:36,000 Ito ay uri ng default na kaganapan pindutan pinindot. 536 00:28:36,000 --> 00:28:39,000 >> Anumang mga katanungan sa ngayon? 537 00:28:39,000 --> 00:28:43,000 Okay, na kung paano namin maaaring magsimula sa wire up ng mga bagay sa aming code 538 00:28:43,000 --> 00:28:46,000 sa mga bagay sa loob ng aming interface. 539 00:28:46,000 --> 00:28:49,000 Tandaan ang unang bagay na namin ay may sa gawin ay upang mahanap ang code, 540 00:28:49,000 --> 00:28:54,000 at pagkatapos namin wired ang interface sa code, 541 00:28:54,000 --> 00:28:57,000 at ang aming unang app. 542 00:28:57,000 --> 00:29:00,000 Okay, na talagang cool na, at nilikha namin ang pindutang ito. 543 00:29:00,000 --> 00:29:03,000 Paano kung hindi namin nais upang lumikha ng isang grupo ng mga katangian ng 544 00:29:03,000 --> 00:29:05,000 kumakatawan sa mga button na ito? 545 00:29:05,000 --> 00:29:08,000 Halimbawa, sa pagkimbot ng laman Tac daliri Mayroon akong 9 pindutan, 546 00:29:08,000 --> 00:29:11,000 at nais ito sobrang, sobrang nakakainis sa upang i-drag at i-drop ang mga 9 beses 547 00:29:11,000 --> 00:29:14,000 o kung ako ay upang gumawa ng pagkimbot ng laman Tac daliri na may 81 sa halip ng 9 548 00:29:14,000 --> 00:29:17,000 at ako ay upang i-drag at i-drop ang 81 beses, at na pilay. 549 00:29:17,000 --> 00:29:20,000 Ano ang maaari naming gawin sa halip ay mas tulad ng isang HTML 550 00:29:20,000 --> 00:29:23,000 kapag nagkaroon kami ng mga bagay tulad ng mga ID at pangalan at maaari naming maghanap para sa mga bagay 551 00:29:23,000 --> 00:29:27,000 sa pamamagitan ng kanilang ID, may isang katulad na paniwala sa iOS tinatawag na tag. 552 00:29:27,000 --> 00:29:31,000 >> Ang tag ay lamang isang natatanging numerical identifier para sa isang bahagi. 553 00:29:31,000 --> 00:29:34,000 Kung sinasabi ko ito ay may tag na 0, halimbawa, 554 00:29:34,000 --> 00:29:38,000 kung ako lilikha ng isang pindutan at bigyan ito ng isang tag ng 0, at kami na makita kung paano gawin na sa loob lamang ng pangalawang, 555 00:29:38,000 --> 00:29:41,000 kung gusto ko upang makakuha ng na pindutan ko lang sabihin na gusto kong tumawag sa 556 00:29:41,000 --> 00:29:45,000 viewWithTag paraan sa bagay sa loob dito, 557 00:29:45,000 --> 00:29:48,000 ang self.view, na kumakatawan sa kasalukuyang screen, halimbawa. 558 00:29:48,000 --> 00:29:53,000 Kung tawagan ko na viewWithTag paraan ng, ako pagpunta upang hilahin pabalik ang pindutan na may tag 0. 559 00:29:53,000 --> 00:29:58,000 Natin ng pagtingin sa ito sa pamamagitan ng gusali pagkimbot ng laman Tac daliri ng paa. 560 00:29:58,000 --> 00:30:01,000 Una, ito ay aking storyboard. 561 00:30:01,000 --> 00:30:05,000 Lumikha ako ng mga 10 pindutan UI. 562 00:30:05,000 --> 00:30:07,000 Mapansin sila lahat ang parehong laki. 563 00:30:07,000 --> 00:30:11,000 Kung ako i-click ang isa sa mga ito at dumating ako pabalik sa paglipas dito sa kanang bahagi na ito 564 00:30:11,000 --> 00:30:15,000 makikita mo inaayos ko ang font dito mismo, kaya ginawa ko ang font ng kaunti mas malaking, 565 00:30:15,000 --> 00:30:19,000 ngunit kung ano ang ko din ginawa ay ako magse-set ang tag na ito. 566 00:30:19,000 --> 00:30:23,000 Sinabi ko na ito ay may isang tag ng 1, at na ang kaliwang tuktok. 567 00:30:23,000 --> 00:30:26,000 >> Ngayon, kung nag-click ako ng isa pang pindutan, tulad nito ikalawang isa dito, 568 00:30:26,000 --> 00:30:29,000 ngayon makikita mo na ang aking mga tag ay 2. 569 00:30:29,000 --> 00:30:32,000 Ang bawat isa sa mga button na ito lamang ay isang natatanging tag, 570 00:30:32,000 --> 00:30:35,000 at kaya ito ay mamaya kung paano ako pagpunta upang simulan ang nakikipag-ugnayan 571 00:30:35,000 --> 00:30:38,000 sa aking app. 572 00:30:38,000 --> 00:30:40,000 Ito ay lahat ng loob ng isang view ng controller, 573 00:30:40,000 --> 00:30:42,000 ngunit dito ay kung ano ang mayroon kami. 574 00:30:42,000 --> 00:30:44,000 Mayroon kaming 3 mga katangian dito. 575 00:30:44,000 --> 00:30:49,000 Ang una at huli pagpunta upang kumatawan sa estado ng aking board. 576 00:30:49,000 --> 00:30:53,000 Isa lamang ang unang isa ay isang array na kumakatawan sa kung saan Xs at Os. 577 00:30:53,000 --> 00:30:57,000 Iba pang isa dito na ito Sinasabi sa amin ng may pagliko ito ay. 578 00:30:57,000 --> 00:31:01,000 Mapapansin mo na ako ay mayroon ding mga bagay na ito dito. 579 00:31:01,000 --> 00:31:05,000 Bago kapag ipinahayag namin mga katangian na namin ibinigay sa kanila ng isang pangalan at isang uri. 580 00:31:05,000 --> 00:31:08,000 Maaari din namin bigyan sila ng ilang karagdagang impormasyon dito. 581 00:31:08,000 --> 00:31:11,000 Ang unang sabi nonatomic, at kung ano ang sinasabi 582 00:31:11,000 --> 00:31:16,000 talaga lamang isang bagay ay kailanman sinusubukan upang ma-access ang variable na ito sa isang pagkakataon. 583 00:31:16,000 --> 00:31:19,000 Maaari mong gawin ang mga mas kumplikadong mga application na multi-may sinulid, 584 00:31:19,000 --> 00:31:22,000 at kaya bumalik sa simula nagkaroon kami ng iba't ibang mga thread, 585 00:31:22,000 --> 00:31:25,000 at iba't ibang mga sprites ma-paggawa ng iba't ibang mga bagay sa parehong oras. 586 00:31:25,000 --> 00:31:29,000 >> Kung hindi ito ang kaso, na ito ay hindi sa anumang bagay na gagamitin namin pagtingin sa, 587 00:31:29,000 --> 00:31:33,000 kung sinasabi namin nonatomic aktwal na ito upang gumawa ng mga bagay ng kaunti mas mabilis. 588 00:31:33,000 --> 00:31:37,000 Mayroon din kaming ito bagay na tinatawag na magtalaga, malakas, o mahina. 589 00:31:37,000 --> 00:31:40,000 Ito magtalaga lamang sinasabi na ito ay isang karaniwang uri. 590 00:31:40,000 --> 00:31:43,000 Ito ay hindi isang bagay o isang pointer dahil ito lamang bool, 591 00:31:43,000 --> 00:31:46,000 kaya bool ay binuo sa Layunin-C. 592 00:31:46,000 --> 00:31:49,000 Nagsasabing hindi subukang gawin magarbong na may mga payo dito. 593 00:31:49,000 --> 00:31:51,000 Ito ay isang regular na lumang scaler. 594 00:31:51,000 --> 00:31:54,000 Malakas at mahina, ito mahina sabi na aktwal na 595 00:31:54,000 --> 00:31:57,000 Gusto kong ito na tumuturo sa isang bagay sa controller view. 596 00:31:57,000 --> 00:32:00,000 Hindi ako pagpunta sa aktwal na magtalaga o init na ito sa aking sarili. 597 00:32:00,000 --> 00:32:04,000 Ang tagabuo ng interface, kapag nagpatakbo ako ng app, upang pangasiwaan ang lahat na Pinasimulan. 598 00:32:04,000 --> 00:32:07,000 Kung sinasabi ko mahina, na sinasabi ng ibang tao ay pagpunta sa paglikha ng. 599 00:32:07,000 --> 00:32:09,000 Kung sinasabi ko ng malakas, ito sabi ni na ako na ang isa 600 00:32:09,000 --> 00:32:12,000 na paglikha ng board bagay na ito, 601 00:32:12,000 --> 00:32:14,000 at kaya dito Mayroon akong ilang higit pang mga pamamaraan dito, 602 00:32:14,000 --> 00:32:18,000 Halimbawa, ang isang pagkilos para sa kapag ang bagong pindutan ng laro ay pinindot, 603 00:32:18,000 --> 00:32:20,000 ng isang aksyon para sa kapag anumang ng iba pang mga pindutan ay pinindot, 604 00:32:20,000 --> 00:32:23,000 at iba pa. 605 00:32:23,000 --> 00:32:26,000 >> Hindi namin ay makakuha sa masyadong maraming ng logic ng pagkimbot ng laman Tac daliri ng paa, 606 00:32:26,000 --> 00:32:30,000 kahit na ito ay napaka-kapana-panabik, ngunit sabihin tumingin sa 607 00:32:30,000 --> 00:32:33,000 ilang ng mga bagay na maaari naming gawin sa loob ng iOS. 608 00:32:33,000 --> 00:32:35,000 Ang bagong paraan ng laro ay pagpunta sa-fired 609 00:32:35,000 --> 00:32:37,000 sa tuwing ako pindutin ang bagong pindutan ng laro. 610 00:32:37,000 --> 00:32:41,000 Upang Hook na hanggang ko lamang darating sa aking storyboard. 611 00:32:41,000 --> 00:32:43,000 Ako nag-click sa bagong laro. 612 00:32:43,000 --> 00:32:47,000 Kung ako sa paglipas dito sa kanan ko maaaring makita ang na 613 00:32:47,000 --> 00:32:50,000 Pindutin Up Inside ay wired sa newGame paraan ng. 614 00:32:50,000 --> 00:32:53,000 Iyon ay kung bakit ito ay pagpunta upang fired. 615 00:32:53,000 --> 00:32:56,000 Ang newGame pamamaraan na gawin ang ilang mga set up. 616 00:32:56,000 --> 00:32:59,000 Ito ay upang sabihin na gusto kong mong i-clear ang estado ng board. 617 00:32:59,000 --> 00:33:01,000 Ito ay isang magaling na paraan sa sumpungin array. 618 00:33:01,000 --> 00:33:03,000 Ito ay pagpunta upang sabihin ito ngayon X sa pagliko, 619 00:33:03,000 --> 00:33:07,000 at ngayon ako pagpunta upang samantalahin ng mga ito viewWithTag bagay. 620 00:33:07,000 --> 00:33:11,000 >> Alam ko na ang aking mga pindutan mayroon ang mga tag 1-9, 621 00:33:11,000 --> 00:33:13,000 at ang isang bagay ko mang pinili. 622 00:33:13,000 --> 00:33:15,000 Kung gusto ko upang i-set ang teksto ng bawat pindutan walang laman 623 00:33:15,000 --> 00:33:17,000 dahil ko lang makapagsimula ng bagong laro at hindi ko nais ang anumang 624 00:33:17,000 --> 00:33:20,000 Xs o Os sa natira ang maaari kong gawin ito. 625 00:33:20,000 --> 00:33:24,000 Maaari kong sabihin na gusto ko ang pagtingin sa mga tag, 1, 2, 3, 4 at iba pa. 626 00:33:24,000 --> 00:33:27,000 Ito ay hilahin ng ibang pindutan sa bawat oras. 627 00:33:27,000 --> 00:33:30,000 Narito ako pinalayas ito sa UIButton. 628 00:33:30,000 --> 00:33:33,000 Tulad lamang ay maaaring namin pinalayas ang mga ints sa mga kamay at sa kabaligtaran 629 00:33:33,000 --> 00:33:37,000 sabi ito na gusto kong pinalayas ito sa isang UIButton. 630 00:33:37,000 --> 00:33:40,000 Iyon ay nangangahulugang ang uri ng ito ay isang UIButton * 631 00:33:40,000 --> 00:33:43,000 dahil sa mga payo, ngunit huwag mag-alala, hindi nakakatakot ito. 632 00:33:43,000 --> 00:33:47,000 >> Kapag mayroon akong ang pindutang ito ako pagpunta sa tumawag sa isang paraan dito. 633 00:33:47,000 --> 00:33:50,000 Ang paraan na ito ay tinatawag na setTitle forState, at kaya ito sabi 634 00:33:50,000 --> 00:33:53,000 Gusto kong upang itakda ang teksto ng pindutan sa ang walang laman na string, 635 00:33:53,000 --> 00:33:57,000 at gusto ko ito sa ang walang laman na string kapag hindi ito pinindot. 636 00:33:57,000 --> 00:34:01,000 Kung ako gamit ang pamamaraang ito, maaari ko bang baguhin ang teksto ng pindutan 637 00:34:01,000 --> 00:34:04,000 sa lalong madaling may mga hit ito, ngunit nais naming sabihin na kapag ang pindutan sitting doon 638 00:34:04,000 --> 00:34:07,000 Gusto ko ang teksto blangko. 639 00:34:07,000 --> 00:34:10,000 Sa wakas, kami ay pagpunta sa initialize ang aking board, 640 00:34:10,000 --> 00:34:12,000 at ako pagpunta sa sabihin na ang lahat ng bagay ay kasalukuyang sa 0, 641 00:34:12,000 --> 00:34:15,000 kaya ang board na ito ang mga miyembro walang pagbabago ay nababago array, 642 00:34:15,000 --> 00:34:21,000 na nangangahulugan na maaari kong tumawag sa addObject na paraan ng at lamang 0 loob nito. 643 00:34:21,000 --> 00:34:23,000 Iyon ay kung ano ang mangyayari kapag lumikha ako ng bagong laro. 644 00:34:23,000 --> 00:34:25,000 >> Natin tingnan sa ibang. 645 00:34:25,000 --> 00:34:28,000 Ang pamamaraang ito dito ay ang IBAction na pagpunta sa ay pinindot 646 00:34:28,000 --> 00:34:31,000 sa tuwing ang isa sa mga parisukat ay pinindot. 647 00:34:31,000 --> 00:34:33,000 Ngayon ay mayroon kaming ilang pagkimbot ng laman Tac daliri logic dito. 648 00:34:33,000 --> 00:34:36,000 Nalaman namin may pagliko ito ay, 649 00:34:36,000 --> 00:34:39,000 at batay sa na namin alinman magtakda ng isang X o isang O, 650 00:34:39,000 --> 00:34:43,000 ngunit napansin namin na kami ay reusing ito parehong handler ng kaganapan 651 00:34:43,000 --> 00:34:45,000 para sa bawat solong isa sa mga pindutan. 652 00:34:45,000 --> 00:34:49,000 Nangangahulugan iyon na hindi ko magkaroon ng isang paraan para sa mga tuktok na kaliwang pindutan, 653 00:34:49,000 --> 00:34:52,000 ng ibang paraan para sa mga pindutan sa kanang ibaba, bagaman maaari ba akong magkaroon ng tapos na. 654 00:34:52,000 --> 00:34:54,000 Na hindi talagang mahusay na disenyo. 655 00:34:54,000 --> 00:34:57,000 Ano ako ginagawa dito ay aktwal na ako upang matukoy 656 00:34:57,000 --> 00:35:00,000 kung ano ang tag ng pindutan na pinindot. 657 00:35:00,000 --> 00:35:04,000 Napansin mo na ito paraan ng pag-play ay tumatagal ng isang argument. 658 00:35:04,000 --> 00:35:07,000 Ito ay tinatawag na nagpadala, at kung anong nagpadala ay ay nagpadala ay pagpunta sa 659 00:35:07,000 --> 00:35:10,000 kumakatawan sa eksaktong kung ano ang nagsagawa ng pagkilos kapag. 660 00:35:10,000 --> 00:35:15,000 Kung ako pindutin ng isang pindutan, nagpadala ito na UIButton 661 00:35:15,000 --> 00:35:18,000 na pinindot ko aktwal na, sa gayon ay nangangahulugan na na UIButton 662 00:35:18,000 --> 00:35:20,000 ay isang tag dahil nilikha ko ang isang tag. 663 00:35:20,000 --> 00:35:23,000 >> Kung gusto ko upang makakuha ng sa tag ko lang sabihin 664 00:35:23,000 --> 00:35:26,000 Gusto ko ang tag ng nagpadala, 665 00:35:26,000 --> 00:35:28,000 at muli, lamang ko na casted ito sa isang UIButton. 666 00:35:28,000 --> 00:35:32,000 Mangyayari kong malaman na nagpadala ng UIButton. 667 00:35:32,000 --> 00:35:34,000 Ito ay hindi palaging isang UIButton. 668 00:35:34,000 --> 00:35:36,000 Maaaring ko, halimbawa, magrehistro sa parehong handler ng kaganapan 669 00:35:36,000 --> 00:35:38,000  para sa isa para sa isang pindutan, isa para sa isang slider. 670 00:35:38,000 --> 00:35:40,000 Sa kasong ito, alam ko na ang mga ito ang lahat ng mga pindutan, kaya ako pagpunta sa sabihin 671 00:35:40,000 --> 00:35:43,000 Gusto ko ito sa isang pindutan, at pagkatapos ko makukuha ang tag, 672 00:35:43,000 --> 00:35:48,000 at mula sa tag ko ngayon alam kung nasaan ako sa loob ng board. 673 00:35:48,000 --> 00:35:51,000 Pagkatapos ay maaari ko lamang itakda ang alinman sa X o O, maaaring i-flip ang pagliko, 674 00:35:51,000 --> 00:35:54,000 check na napanalunan, at iba pa. 675 00:35:54,000 --> 00:35:59,000 >> Anumang mga tanong na ito sa ngayon? 676 00:35:59,000 --> 00:36:02,000 Okay, ang lahat ng mga code na namin nai-post online-hindi namin nais upang makakuha ng sa masyadong maraming 677 00:36:02,000 --> 00:36:06,000 ng pagkimbot ng laman Tac daliri logic, ngunit ngayon maaari mong makita na talagang 678 00:36:06,000 --> 00:36:09,000 lahat ng ginagawa namin ay kami ay looping sa ibabaw ito array, 679 00:36:09,000 --> 00:36:13,000 kaya mayroon kaming ilang para sa loop dito, at lang kami ng paghahambing upang makita 680 00:36:13,000 --> 00:36:18,000 kami ng isang tugma sa lahat ng mga hilera, ang isang tugma sa isang hanay o anumang bagay tulad na. 681 00:36:18,000 --> 00:36:21,000 Upang aktwal na patakbuhin ang app na ito, kung ako mag-tap sa isa sa mga button na ito 682 00:36:21,000 --> 00:36:24,000 na-play ng paraan ng fired, kaya nangangahulugan iyon ko lang magtakda ng 683 00:36:24,000 --> 00:36:31,000 ang pindutan ng X, kaya ngayon pindutan na ito ay isang O, at iba pa, 684 00:36:31,000 --> 00:36:35,000 at sa gayon ay kung paano kami ay nagsisimula upang makipag-ugnay sa app ang nag-iisang pahina. 685 00:36:35,000 --> 00:36:38,000 >> Magpo-post kami ng code, kaya huwag mag-atubiling upang bumasang mabuti na, 686 00:36:38,000 --> 00:36:43,000 ngunit sabihin na ngayong makipag-usap tungkol sa ilang apps na higit pa kaysa sa isang pahina lamang. 687 00:36:43,000 --> 00:36:47,000 Tulad ng kapana-panabik na bilang pagkimbot ng laman Tac daliri ng paa, ng maraming ng mga apps sa loob ng iOS 688 00:36:47,000 --> 00:36:50,000 uri ng mga drill pababa sa mga bagay na may maramihang mga screen. 689 00:36:50,000 --> 00:36:54,000 Ang unang konsepto na kakailanganin naming makipag-usap tungkol sa mga protocol, 690 00:36:54,000 --> 00:36:57,000 at ang protocol ng lamang ng isang hanay ng mga pamamaraan 691 00:36:57,000 --> 00:36:59,000 na maaari mong nangangako upang tukuyin. 692 00:36:59,000 --> 00:37:02,000 Kung ako lilikha ito bagong protocol na may 2 pamamaraan, ang unang isa, 693 00:37:02,000 --> 00:37:05,000 ay walang bisa kung ang uri ng return, tinatawag ko ito foo. 694 00:37:05,000 --> 00:37:07,000 Ito ay tumatagal ng mga argumento. Mayroon akong ibang paraan. 695 00:37:07,000 --> 00:37:11,000 Nagbabalik ng isang int. Tinatawag ko ito bar, at ito ay tumatagal ng isang argument. 696 00:37:11,000 --> 00:37:14,000 Lahat ng protocol na ito ay na tinatawag na SomeProtocol dito, 697 00:37:14,000 --> 00:37:19,000 ito ay isang hanay ng mga bagay na ang isang tao ay maaaring ipatupad. 698 00:37:19,000 --> 00:37:22,000 Hindi ko pa sa loob ng protocol na ito sinabi kung ano ang foo ginagawa. 699 00:37:22,000 --> 00:37:26,000 Sa halip, ako sinasabi na maaari mong tukuyin ang foo kung gusto mong. 700 00:37:26,000 --> 00:37:30,000 Kapag ako ay ang paglikha ng isang view ng controller o paglikha ng isang klase 701 00:37:30,000 --> 00:37:33,000 Ko sa loob ng na klase ng pangako na ipapatupad 702 00:37:33,000 --> 00:37:40,000 ilan sa mga pamamaraan na ito, kaya halimbawa, kung sabihin 703 00:37:40,000 --> 00:37:43,000 ito ngayon sabi nagsasagawa ako ng isang pangako sa iyo na loob 704 00:37:43,000 --> 00:37:50,000 ng ganitong klase ng view ng controller ba akong magkaroon ng kahulugan para sa parehong foo at bar. 705 00:37:50,000 --> 00:37:52,000 >> Bakit ay na kapaki-pakinabang? 706 00:37:52,000 --> 00:37:55,000 Isang maraming ng mga bahagi sa loob ng iOS samantalahin ito 707 00:37:55,000 --> 00:37:58,000 disenyo pattern na tinatawag paglalaan, at kung ano ang paglalaan sabi 708 00:37:58,000 --> 00:38:01,000 ay na, halimbawa, kung mayroon akong isang text box 709 00:38:01,000 --> 00:38:04,000 at may ilang mga kaganapan na maaaring nakarehistro sa loob ng aking text box, 710 00:38:04,000 --> 00:38:07,000 halip ng paglikha ng hiwalay na mga kaganapan sa kung ano ang maaari kong gawin ay maaari kong sabihin 711 00:38:07,000 --> 00:38:10,000 pinaglaanan ng text box na ito ay ilang mga bagay. 712 00:38:10,000 --> 00:38:13,000 Kapag sinabi ko na ito ng nakatalagang ngayon na nangangahulugan na 713 00:38:13,000 --> 00:38:16,000 tuwing may kaganapan ilang na-fired sa kahon ng teksto 714 00:38:16,000 --> 00:38:18,000 sa halip ng pagkakaroon upang irehistro ito o anumang bagay tulad na 715 00:38:18,000 --> 00:38:21,000 lamang ito tumawag sa isang paraan sa nakatalagang. 716 00:38:21,000 --> 00:38:24,000 Halimbawa, sa loob ng aking text box mayroon akong isang paraan para sa kapag pindutin ko 717 00:38:24,000 --> 00:38:27,000 na tapos na pindutan sa kanang ibaba, 718 00:38:27,000 --> 00:38:30,000 at kaya sa halip kaysa sa pagrehistro ng kaganapan handler kung ano ang maaari kong sabihin ay 719 00:38:30,000 --> 00:38:34,000 text box, narito ang isang bagay na gusto kong mong tumawag sa isang paraan sa 720 00:38:34,000 --> 00:38:37,000 sa tuwing may pagpindot tapos pindutan, 721 00:38:37,000 --> 00:38:40,000 at na nangangahulugan na ang bagay na ipatupad ang ilang mga protocol 722 00:38:40,000 --> 00:38:45,000 na nagsasabing nangangako ako upang tukuyin na tapos na pagkilos ng pindutan, 723 00:38:45,000 --> 00:38:47,000 dahil kung hindi ito tukuyin na paraan at pindutin ang tapos, 724 00:38:47,000 --> 00:38:49,000 ito na nakalilito. 725 00:38:49,000 --> 00:38:55,000 >> Natin tingnan ang isang halimbawa. 726 00:38:55,000 --> 00:38:58,000 Narito lamang ako ay isang text box, 727 00:38:58,000 --> 00:39:04,000 at isa ng ang mga katangian ng text box na ito sa paglipas dito sa kanang bahagi ay ang nakatalagang. 728 00:39:04,000 --> 00:39:06,000 Ito ay isang ari-arian ng klase. 729 00:39:06,000 --> 00:39:09,000 Ano ang ginawa ko dito ay kontrolin ko click, at drag ko mula sa lugar sa paglipas dito 730 00:39:09,000 --> 00:39:13,000 sa view ng controller, at na nagsasabing ngayon ang nakatalagang ng text box na ito 731 00:39:13,000 --> 00:39:18,000 pagpunta sa view ng controller. 732 00:39:18,000 --> 00:39:20,000 Iyon ay nangangahulugan na kapag ang ilang mga aksyon mangyari, kaysa sa pagrehistro 733 00:39:20,000 --> 00:39:25,000 hiwalay na kaganapan handler gusto ko sa iyo na magpadala ng mga ito sa nakatalagang. 734 00:39:25,000 --> 00:39:28,000 Ngayon sabihin tingnan sa aking pagtingin controller. 735 00:39:28,000 --> 00:39:32,000 Loob ng ang file na. H ako na ginawa ng pangako. 736 00:39:32,000 --> 00:39:36,000 Ipinangako ko na ipatupad ng ilang mga pamamaraan sa loob ng protocol na ito 737 00:39:36,000 --> 00:39:38,000 tinatawag UITextFieldDelegate, at muli, 738 00:39:38,000 --> 00:39:42,000 ito lamang ang ilang mga listahan ng ilang mga bagay na maaari kong piliin na ipapatupad. 739 00:39:42,000 --> 00:39:46,000 >> Kung dumating ako dito sa aking file sa. M, ko na ipinatupad ang isa tulad pamamaraan ng. 740 00:39:46,000 --> 00:39:49,000 Ko na tinatawag na ito textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 dahil na kung ano ito ay tinatawag na sa loob ng protocol. 742 00:39:52,000 --> 00:39:57,000 At ngayon tuwing pindutin ko ang tapos na sa loob ng pindutan na patlang ng teksto 743 00:39:57,000 --> 00:40:00,000 ito ay kung ano ang nangyayari upang tinatawag na, kaya hindi ko magrehistro ng isang kaganapan handler. 744 00:40:00,000 --> 00:40:03,000 Konektado ko ang nakatalagang, at tuwing may kaganapan na ito ay fired 745 00:40:03,000 --> 00:40:08,000 ito ay ang paraan na makapag tinatawag, kaya kung dumating ako sa paglipas dito upang aking storyboard at patakbuhin ito 746 00:40:08,000 --> 00:40:11,000 habang na naglo-load, maaari naming makita kung ano ang ginagawa. 747 00:40:11,000 --> 00:40:13,000 Sa aking screen Mayroon akong 2 bagay. 748 00:40:13,000 --> 00:40:16,000 Mayroon akong ito ng patlang ng teksto, at mayroon akong label na ito. 749 00:40:16,000 --> 00:40:19,000 Lamang ako sinasabi gusto ko ang teksto ng label na ito 750 00:40:19,000 --> 00:40:23,000 katumbas sa anumang gumagamit na nai-type sa loob ng patlang ng teksto. 751 00:40:23,000 --> 00:40:26,000 Ito susunod na linya dito ay simpleng paraan na ako pagtawag 752 00:40:26,000 --> 00:40:29,000 sa patlang ng teksto na nagsasabing gusto kong mong itago ang keyboard. 753 00:40:29,000 --> 00:40:33,000 Ito ay arbitrary paraan na Apple pinili. 754 00:40:33,000 --> 00:40:38,000 >> Muli, bago ko ginawa ang anumang bagay na ako ay may sa wire ang lahat hanggang, kaya ko unang dumating sa paglipas dito. 755 00:40:38,000 --> 00:40:42,000 Mula sa controller view i-drag ako sa kahon ng teksto. 756 00:40:42,000 --> 00:40:46,000 Ipaalam ko pumunta, at ang maaari kong makita dito na maaari kong gawin ito ang field ng teksto ari-arian 757 00:40:46,000 --> 00:40:49,000 dahil sa paglipas dito sa controller view tinukoy ko na ang ari-arian ng 758 00:40:49,000 --> 00:40:52,000 na isang IBOutlet ng isang patlang ng teksto. 759 00:40:52,000 --> 00:40:55,000 Sabi ko wire property na ito 760 00:40:55,000 --> 00:40:59,000 sa isang patlang ng teksto sa aking UI. 761 00:40:59,000 --> 00:41:03,000 Ngayon kapag nag-click ako ito ang maaari kong simulan ang pag-type. 762 00:41:03,000 --> 00:41:06,000 Ngayon kung ako i-click ang tapos na pindutan na ito ay pagpunta sa sunog 763 00:41:06,000 --> 00:41:08,000 isang kaganapan na maaari kong ngayon tumugon sa. 764 00:41:08,000 --> 00:41:10,000 Walang mga handler ng kaganapan. 765 00:41:10,000 --> 00:41:13,000 Kung paano ko lang ang tumugon sa na tapos na pindutan. 766 00:41:13,000 --> 00:41:15,000 Kabuluhan? 767 00:41:15,000 --> 00:41:20,000 >> Ito ay hindi isang disenyo pattern na-hindi ka kailanman maaaring mahanap ang iyong sarili 768 00:41:20,000 --> 00:41:23,000 paglikha ng iyong sariling protocol, ngunit lamang malaman na ang ilang mga 769 00:41:23,000 --> 00:41:27,000 ibang iOS bahagi magrehistro ng mga kaganapan sa iba't ibang paraan. 770 00:41:27,000 --> 00:41:29,000 Pindutan, halimbawa, gamitin ang mga IBActions iyon. 771 00:41:29,000 --> 00:41:32,000 Teksto patlang, sa kabilang banda, ay pagpunta sa gamitin ang mga delegates. 772 00:41:32,000 --> 00:41:36,000 Maaari naming makita at maaari mong tingnan ang lahat ng na up sa loob ng dokumentasyon. 773 00:41:36,000 --> 00:41:41,000 Sa pamamagitan ng paraan, mayroon talagang isang tonelada ng UI bagay na inilagay sa iOS para sa iyo, 774 00:41:41,000 --> 00:41:46,000 kaya halimbawa, ang paraan na ang aking ginawa na nagsasabing tapos sa kanan ng ibaba 775 00:41:46,000 --> 00:41:48,000 ay pinili ko ito ng patlang ng teksto. 776 00:41:48,000 --> 00:41:50,000 Ako dumating sa paglipas dito. 777 00:41:50,000 --> 00:41:53,000 Ko scrolled isang bit upang ibalik ang key, 778 00:41:53,000 --> 00:41:56,000 at maaaring aktwal ko gawin ang isang buong grupo ng mga bagay, tulad ng kung gusto ko na sabihin 779 00:41:56,000 --> 00:42:00,000 emergency tawagan sa halip ang maaari kong gawin na, na kung saan ay lubos na random, 780 00:42:00,000 --> 00:42:02,000 at hindi ko alam kung bakit may built-in pindutan ng tawag ng emergency, 781 00:42:02,000 --> 00:42:06,000 ngunit doon, sinasabi nito ang pang-emergency na tawag sa talagang maliit na titik. 782 00:42:06,000 --> 00:42:08,000 Mayroong kang pumunta. 783 00:42:08,000 --> 00:42:12,000 >> Talagang galugarin ang lahat ng iba't ibang mga pagpipilian sa iOS. 784 00:42:12,000 --> 00:42:14,000 Anumang mga katanungan sa mga delegates? 785 00:42:14,000 --> 00:42:18,000 Muli, isang kawili-wiling pattern disenyo na dapat mong malaman. 786 00:42:18,000 --> 00:42:22,000 Okay, sabihin susunod na tumagal ng isang pagtingin sa mga tanawin ng talahanayan. 787 00:42:22,000 --> 00:42:26,000 Ang pagtingin ng talahanayan ay isa lamang na listahan ng mga item na lahat sa ibabaw ng lugar sa iOS. 788 00:42:26,000 --> 00:42:29,000 Kapag ikaw ay flipping sa pamamagitan ng lahat ng iyong mga contact, tumitingin ka sa 789 00:42:29,000 --> 00:42:34,000 ang pagtatakda ng pahina, at na uri ng listahan ng mga bagay ay tinatawag na isang pagtingin ng talahanayan. 790 00:42:34,000 --> 00:42:37,000 Pagpapatupad ng isang pagtingin sa talahanayan sa iOS ay medyo simple. 791 00:42:37,000 --> 00:42:41,000 Sa halip ng paggawa ng isang klase na descends mula sa na UIViewController 792 00:42:41,000 --> 00:42:44,000 tulad ng ginawa namin bago kailangan lamang namin sabihin kaysa 793 00:42:44,000 --> 00:42:46,000 lahat ng UIViewController ang mga gusto kong gawin, 794 00:42:46,000 --> 00:42:50,000 Sinasabi ko lahat ng UITableViewController isang ay gusto kong gawin, 795 00:42:50,000 --> 00:42:54,000 upang lamang ay nagdadagdag ng ilang mga karagdagang bagay na lubos na ginawa para sa amin. 796 00:42:54,000 --> 00:42:58,000 Kailangan naming gawin napakakaunting sa isa lamang na punan ang mga blangko sa loob ng talahanayan. 797 00:42:58,000 --> 00:43:02,000 >> Upang ipakita ang isang talahanayan na kailangan kong sagutin ang ilang mga katanungan. 798 00:43:02,000 --> 00:43:06,000 Ang unang tanong na kailangan ko upang sagutin ay kung gaano karaming mga seksyon ay sa talahanayan? 799 00:43:06,000 --> 00:43:08,000 Kapag ikaw ay flipping sa pamamagitan ng iyong mga contact ng app mapapansin mo na ang uri ng 800 00:43:08,000 --> 00:43:12,000 isinaayos ng Bilang, mayroon kang BS, at mayroon kang na maliit na sub header. 801 00:43:12,000 --> 00:43:14,000 Ang bawat isa ng mga ay tinatawag na seksyon. 802 00:43:14,000 --> 00:43:16,000 Maaari mo o hindi maaaring kailangan ng mga. 803 00:43:16,000 --> 00:43:19,000 Ang unang bagay na kailangan mong gawin ay ipatupad ang pamamaraan ng 804 00:43:19,000 --> 00:43:22,000 tinatawag na tableView: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 Na nagbabalik lamang kung gaano karaming mga seksyon mayroon kang, 806 00:43:25,000 --> 00:43:29,000 kaya ito ay maaaring sabihin bumalik ang isa kung mayroon kang isang malaking view ng talahanayan. 807 00:43:29,000 --> 00:43:33,000 Ang susunod na tanong na ang iOS kailangang malaman kung gaano karaming mga hilera mayroon ka? 808 00:43:33,000 --> 00:43:36,000 Halimbawa, ikaw ay flipping sa pamamagitan ng pagtingin ng talahanayan. 809 00:43:36,000 --> 00:43:39,000 Mayroon kang isang nakapirming numero ng mga kanta tinitingnan mo o isang nakapirming numero ng mga contact. 810 00:43:39,000 --> 00:43:41,000 Kung ikaw ay akin, siyempre, hindi na maraming, 811 00:43:41,000 --> 00:43:44,000 at sa gayon ay kung paano iOS alam kung gaano karaming mga cell upang ipakita. 812 00:43:44,000 --> 00:43:46,000 >> Muli, ito ay maaaring sabihin na ang isang bagay tulad ng return 3. 813 00:43:46,000 --> 00:43:49,000 Aking pagtingin ng talahanayan ay may 3 mga hilera. 814 00:43:49,000 --> 00:43:52,000 Panghuli, ang iOS ay kailangang malaman kung ano ang cell sa bawat mukhang, 815 00:43:52,000 --> 00:43:54,000 kaya kung ano ang aktwal na ito ay pagpunta sa gawin ay tawagan ang pamamaraan na ito dito, 816 00:43:54,000 --> 00:43:57,000 ito tableView: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 Ito ay tawagan ang pamamaraan na ito sa bawat solong cell sa loob ng iyong talahanayan. 818 00:44:01,000 --> 00:44:03,000 Paano ito alam kung gaano karaming beses na tumawag ito? 819 00:44:03,000 --> 00:44:06,000 Well, sinabi mo ito sa loob ng bilang ng mga hilera sa seksyon. 820 00:44:06,000 --> 00:44:08,000 Kami ay pagpunta sa tumawag ito sa bawat isa sa aming mga cell, 821 00:44:08,000 --> 00:44:11,000 at sa loob ng mga ito ay kung saan maaari mong aktwal na gawin ang mga bagay tulad ng 822 00:44:11,000 --> 00:44:16,000 itakda ang teksto o sabihin sa iyo kung ano ang na maliit na asul na pindutan sa kanang bahagi. 823 00:44:16,000 --> 00:44:19,000 Ang pattern para sa pagkuha ng mga cell na ito, kami ay pagpunta sa gamitin ang pamamaraan na ito 824 00:44:19,000 --> 00:44:22,000 tinatawag dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Layunin-C ay talagang mahusay na kilala para sa katawa-tawa haba ng kanilang mga pangalan sa paraan ng, 826 00:44:29,000 --> 00:44:32,000 at ito ay talagang isang magaling na kaso sa point halimbawa. 827 00:44:32,000 --> 00:44:37,000 Ano ang pamamaraang ito ay ginagawa ito sabi lang gusto ko sa iyo na bigyan ako ng cell. 828 00:44:37,000 --> 00:44:39,000 Lamang ng isang iOS bagay. 829 00:44:39,000 --> 00:44:41,000 Kung mayroon kang isang bagay tulad ng mga 100,000 kanta sa iyong iPod 830 00:44:41,000 --> 00:44:45,000 kung ano ang iOS ay hindi nais na gawin ay maglaan ng 100,000 cell, 831 00:44:45,000 --> 00:44:48,000 dahil kung ikaw ay sa tuktok ng iyong listahan, huwag mo ba talagang kailangan upang magtalaga ng memory 832 00:44:48,000 --> 00:44:51,000 para sa cell na 99,000 hilera pababa? 833 00:44:51,000 --> 00:44:55,000 Hindi, dahil ang ka-scroll maaari mong uri ng magtalaga ng bilang ka sumama. 834 00:44:55,000 --> 00:44:57,000 Ito ay ginawa para sa iyo. 835 00:44:57,000 --> 00:44:59,000 Hindi mo na kailangang mag-alala tungkol sa lahat na bobo pagganap ng mga bagay-bagay. 836 00:44:59,000 --> 00:45:02,000 Ang sinabi mong tawagan ka ang pamamaraang ito dequeueReusableCellWithIdentifier, 837 00:45:02,000 --> 00:45:06,000 at ito sabi, okay, kung kailangan mo ako upang lumikha ng isang bagong cell para sa iyo. 838 00:45:06,000 --> 00:45:09,000 >> Ngunit kung ikaw ay sa ibaba ng talahanayan at nakalikha ka na inilalaan ng ilang mga cell 839 00:45:09,000 --> 00:45:12,000 sa tuktok ng talahanayan na ikaw talaga hindi kailangan sa anumang oras sa lalong madaling panahon 840 00:45:12,000 --> 00:45:15,000 Ako pagpunta sa magbibigay sa iyo ng isa ng mga sa halip ng paglaan ng isang bagong, 841 00:45:15,000 --> 00:45:17,000 at kaya ito ay isang magaling na pagganap alalahanin. 842 00:45:17,000 --> 00:45:21,000 Hindi mo na kailangang maglaan ng mga cell na iyong sarili. 843 00:45:21,000 --> 00:45:23,000 Na pagpunta upang bigyan ka ng isang cell. 844 00:45:23,000 --> 00:45:25,000 Ito ay upang bumalik sa ka ng isang bagay sa cell. 845 00:45:25,000 --> 00:45:28,000 Sa sandaling mayroon kang ang cell bagay na maaari mong gawin ang mga bagay-bagay dito. 846 00:45:28,000 --> 00:45:32,000 Maaari mong itakda ang teksto ng cell sa property na ito na tinatawag na teksto ng label. 847 00:45:32,000 --> 00:45:36,000 Maaari kang magdagdag ng na arrow sa kanan o ilang iba pang mga random na mga bagay-bagay 848 00:45:36,000 --> 00:45:41,000 may iba pang ari-arian na ito ay tinatawag na accessoryType, at iba pa at iba pa. 849 00:45:41,000 --> 00:45:46,000 >> Natin ng pagtingin sa aktwal na pagpapatupad ng isang pagtingin ng talahanayan ngayon. 850 00:45:46,000 --> 00:45:49,000 Kapag nilikha ko ang proyektong ito 851 00:45:49,000 --> 00:45:53,000 kaysa sa sinasabi ng iisang view ng application ko aktwal na dumating sa paglipas dito 852 00:45:53,000 --> 00:45:57,000 master-detalye ng application, at iba pa talaga ito tumutugon sa app mail 853 00:45:57,000 --> 00:46:01,000 sa iPad sa table ng view sa kaliwa at pagkatapos ay ang mga nilalaman sa kanan. 854 00:46:01,000 --> 00:46:07,000 Sa iPod o iPhone na ito ay tumutugma sa isang solong tanawin ng talahanayan. 855 00:46:07,000 --> 00:46:10,000 Na kung saan ko nakuha ang aking code sa starter. 856 00:46:10,000 --> 00:46:13,000 >> Natin munang tingnan sa storyboard. 857 00:46:13,000 --> 00:46:15,000 Lahat ng ito ay ginawa para sa akin, isa lamang nilikha. 858 00:46:15,000 --> 00:46:18,000 Ang navigation bar na ito ay nagpakita sa akin kung ano ang isang halimbawa cell ay maaaring magmukhang, 859 00:46:18,000 --> 00:46:22,000 at ang maaari kong i-double click ito, baguhin ang pamagat. 860 00:46:22,000 --> 00:46:25,000 Anumang iba pang mga alalahanin ng UI ko pangangasiwaan doon. 861 00:46:25,000 --> 00:46:27,000 Sa header ng file ay mukhang talagang simple. 862 00:46:27,000 --> 00:46:30,000 Sa halip na sinasabi ito ay UIViewController ngayon namin sinasabi na ito ay isang 863 00:46:30,000 --> 00:46:35,000 TableViewController, upang malaman namin na gusto naming tawagan ang lahat ng mga pamamaraan ng talahanayan. 864 00:46:35,000 --> 00:46:38,000 Susunod na gusto kong lumikha ng isang ari-arian na upang kumatawan 865 00:46:38,000 --> 00:46:40,000 ang mga bagay sa loob ng aking mga talahanayan. 866 00:46:40,000 --> 00:46:43,000 Ang table na ito ay pagpunta sa mang ipakita 867 00:46:43,000 --> 00:46:46,000 isang listahan ng mga prutas, at kaya kailangan ko upang lumikha ng ilang array 868 00:46:46,000 --> 00:46:49,000 kung saan maaari kong ipasok ang prutas. 869 00:46:49,000 --> 00:46:52,000 Sa loob ng aking pagpapatupad file ang unang bagay na gusto kong gawin 870 00:46:52,000 --> 00:46:55,000 gusto kong tiyakin-initialize ko ito array. 871 00:46:55,000 --> 00:46:58,000 >> Sinabi ko ang alloc init, nilikha aking prutas array, 872 00:46:58,000 --> 00:47:03,000 at ako pagdaragdag ng 4 na bagay na ito, na kung saan ay mas kontrobersyal kaysa sa iba pang mga 3. 873 00:47:03,000 --> 00:47:06,000 At ngayon Mayroon akong isang hanay ng mga laki 4. 874 00:47:06,000 --> 00:47:08,000 Kami ay alog ito sa CS50. 875 00:47:08,000 --> 00:47:11,000 Ako ngayon ay may isang hanay ng mga laki 4. 876 00:47:11,000 --> 00:47:13,000 Ngayon ako pagpunta upang simulan ang pagsagot sa mga tanong, at aktwal na, 877 00:47:13,000 --> 00:47:16,000 kapag nilikha ko ang app na ito ang lahat ng ito ay ginawa para sa akin. 878 00:47:16,000 --> 00:47:19,000 Hindi ko i-type ang bilang ng mga seksyon sa pagtingin ng talahanayan. 879 00:47:19,000 --> 00:47:22,000 Na ito ay doon, at ako pagpuno sa blangko. 880 00:47:22,000 --> 00:47:24,000 Gaano karaming mga seksyon ang mayroon ako? 881 00:47:24,000 --> 00:47:26,000 Isa. Tapos na. 882 00:47:26,000 --> 00:47:28,000 Gaano karaming mga hilera ang mayroon ako? 883 00:47:28,000 --> 00:47:31,000 Well, mayroon akong isang hilera para sa bawat prutas, kaya ito ang bilang ng 884 00:47:31,000 --> 00:47:34,000 ay isang ari-arian ng anumang array na nagsasabing kung gaano kalaki ito? 885 00:47:34,000 --> 00:47:36,000 Iyon ay kung gaano karaming mga hilera na may ko. 886 00:47:36,000 --> 00:47:42,000 Panghuli, kailangan ko upang sabihin kung ano ang cell sa bawat hitsura? 887 00:47:42,000 --> 00:47:46,000 Ako pagpunta sa sabihin ng dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Muli, ito ay isinulat para sa akin. 889 00:47:48,000 --> 00:47:51,000 Hindi ko gawin ito sa aking sarili, at gusto ko upang makabalik 890 00:47:51,000 --> 00:47:54,000 ang cell na ito sa lokasyong ito. 891 00:47:54,000 --> 00:47:57,000 Tandaan na kami ay pagtawag ito parehong paraan sa bawat solong cell, 892 00:47:57,000 --> 00:48:01,000 at ito argument dito, ito indexPath argument, 893 00:48:01,000 --> 00:48:03,000 sinasabi kung ano ang hilera ako. 894 00:48:03,000 --> 00:48:05,000 Kung sinasabi ko indexPath.row pababa dito 895 00:48:05,000 --> 00:48:09,000 ito ay 0, pagkatapos ito ng 1, pagkatapos ay ito ay 2, at ito ay upang malaman ko 896 00:48:09,000 --> 00:48:11,000 ano cell kasalukuyan ako nagpapalabas. 897 00:48:11,000 --> 00:48:15,000 Gusto kong i-set ang teksto ng cell gamit ang textLabel ari-arian 898 00:48:15,000 --> 00:48:19,000 sa loob ng aking array ng prutas at makakuha ng 899 00:48:19,000 --> 00:48:21,000 ang bagay na naaayon sa bawat hilera. 900 00:48:21,000 --> 00:48:24,000 Kung ito ay isang string, ako ngayon pagtatakda ng 901 00:48:24,000 --> 00:48:28,000 teksto ng ari-arian sa isang string. 902 00:48:28,000 --> 00:48:30,000 Ang maaari kong gawin ang isa pang bagay. 903 00:48:30,000 --> 00:48:32,000 Ko ring magparehistro ng handler ng kaganapan sa bawat isa sa mga cell, 904 00:48:32,000 --> 00:48:35,000 kaya kapag ako ay i-tap ang bawat isa sa mga cell na ito 905 00:48:35,000 --> 00:48:39,000 ito didSelectRowAtIndexPath, ito ay pagpunta sa tinatawag na para sa akin, 906 00:48:39,000 --> 00:48:42,000 kaya lamang sa pamamagitan ng pagtukoy ito ako ngayon pangasiwaan ang kung ano ang mangyayari 907 00:48:42,000 --> 00:48:46,000 kapag mong i-tap ang isang cell, at muli, kami ay pagpasa kung saan cell ay tapped 908 00:48:46,000 --> 00:48:50,000 upang maaari naming muling gamitin ang parehong handler ng kaganapan para sa lahat ng aming mga cell. 909 00:48:50,000 --> 00:48:53,000 >> Muli, ito ay isang bagay iOS ay ginagawa para sa akin. 910 00:48:53,000 --> 00:48:55,000 Natin ipakita ang isa pang nakakainis na popup 911 00:48:55,000 --> 00:48:59,000 na lamang sinasabi na pinili mo ang isang bagay kung saan na may isang bagay 912 00:48:59,000 --> 00:49:04,000 ay ang object ng hilera. 913 00:49:04,000 --> 00:49:10,000 Kapag nagpatakbo ako ito, ako pagpunta sa magkaroon ng ang magandang tanawin talahanayan na ito 914 00:49:10,000 --> 00:49:14,000 may isang hilera para sa bawat isa ng mga prutas, at kung ko i-tap ang isang 915 00:49:14,000 --> 00:49:16,000 ito ay nagsasabi sa akin kung ano ang nangyari. 916 00:49:16,000 --> 00:49:21,000 Kabuluhan? 917 00:49:21,000 --> 00:49:24,000 Hayaan ang mga bumuo ng kaunti mas kumplikado ng isang app, 918 00:49:24,000 --> 00:49:28,000 ng maraming bilang ng pag-click na iyong pinili kamatis. 919 00:49:28,000 --> 00:49:31,000 Ang magaling na bahagi tungkol sa storyboarding 920 00:49:31,000 --> 00:49:35,000 ay hindi lamang ito upang matulungan kaming screen ng disenyo indibidwal, 921 00:49:35,000 --> 00:49:38,000 din ito upang matulungan kaming talian ng aming buong app, 922 00:49:38,000 --> 00:49:42,000 kaya ang panghuling app na kami ay gusali ito magaling na sports news reader, 923 00:49:42,000 --> 00:49:45,000 at kaya pagpunta sa magkaroon ng maramihang mga screen, at sa gayon ay maaari ko aktwal na kumakatawan sa 924 00:49:45,000 --> 00:49:48,000 sa bawat isa ng mga maramihang mga screen sa storyboard, 925 00:49:48,000 --> 00:49:52,000 at maaari ba akong mag-zoom out at makita ang aking app mula sa isang mataas na antas. 926 00:49:52,000 --> 00:49:55,000 >> Upang lumikha ng isang bagong elemento sa loob ng aking storyboard 927 00:49:55,000 --> 00:49:59,000 ito ay talagang simple sa loob ng Interface Builder. 928 00:49:59,000 --> 00:50:01,000 Kung gusto ko upang magdagdag ng isa pang screen na ito, halimbawa, 929 00:50:01,000 --> 00:50:06,000 Ko munang mag-zoom out may pakurot zoom na Apple nagmamahal kaya magkano, 930 00:50:06,000 --> 00:50:09,000 at pababa dito bago ako maghanap para sa isang pindutan 931 00:50:09,000 --> 00:50:12,000 at ako ay i-drag at i-drop ang isang pindutan 932 00:50:12,000 --> 00:50:15,000 kung gusto kong lumikha ng isang bagong screen ko aktwal na i-drag lamang at i-drop 933 00:50:15,000 --> 00:50:19,000 isang buong view ng controller, kaya kung ako pipili ito, hilahin ito sa dito, 934 00:50:19,000 --> 00:50:23,000 hey, may ibang screen, at kaya ngayon gamit ang parehong file na ito sa storyboard 935 00:50:23,000 --> 00:50:26,000 Ko ang lahat ng screen sa loob ng aking app, at maaari ba akong mag-zoom out 936 00:50:26,000 --> 00:50:28,000 at makita kung paano sila nakikipag-ugnay. 937 00:50:28,000 --> 00:50:32,000 Mga ito ay hindi nakikipag-ugnayan pa. 938 00:50:32,000 --> 00:50:36,000 Ang paraan kung saan nakikipag-ugnayan ang mga ang 2 screen mong tukuyin ang relasyon. 939 00:50:36,000 --> 00:50:39,000 Maaari mo talaga sabihin ang screen na ito, kung kailan mo pindutin ang pindutan na ito, 940 00:50:39,000 --> 00:50:42,000 Gusto ko sa slide sa bagong screen na ito. 941 00:50:42,000 --> 00:50:44,000 Nangangahulugan iyon na may ganitong uri ng ugnayan sa pagitan ng 942 00:50:44,000 --> 00:50:46,000  ang unang screen at ang pangalawang screen. 943 00:50:46,000 --> 00:50:49,000 Magkakaroon ka talaga ng isang arrow mula sa na pindutan sa pangalawang screen 944 00:50:49,000 --> 00:50:53,000 na nagsasabi na kapag pindutin ang pindutang ito na kung saan gusto ko ang umalis. 945 00:50:53,000 --> 00:50:57,000 Tulad lamang ng aming kontrol click at drag upang tukuyin ang mga outlet 946 00:50:57,000 --> 00:51:01,000 kami ay pagpunta sa gawin ang parehong bagay upang tukuyin ang mga segues. 947 00:51:01,000 --> 00:51:05,000 >> Susubukan naming makita ang isang halimbawa para sa na, at bago aktwal na namin transition 948 00:51:05,000 --> 00:51:08,000 mula sa isang screen sa isa pang iOS maganda sapat upang tawagan ang pamamaraan na ito 949 00:51:08,000 --> 00:51:11,000 tinatawag prepareForSegue, at ito ay kung saan maaari naming magsimula 950 00:51:11,000 --> 00:51:14,000 pagpapadala ng mga data mula sa isang app sa isa pang. 951 00:51:14,000 --> 00:51:17,000 Sa halimbawa sa hindi namin upang tingnan ito ay isa lamang payagan kaming 952 00:51:17,000 --> 00:51:20,000 upang i-filter ang mga koponan ng baseball sa pamamagitan ng mga liga at dibisyon. 953 00:51:20,000 --> 00:51:23,000 Kapag pumili ako ng liga, halimbawa, gusto kong i-transition 954 00:51:23,000 --> 00:51:25,000 sa aking susunod na screen kung saan maaari kong ipakita ang lahat ng mga dibisyon 955 00:51:25,000 --> 00:51:27,000 na liga o lahat ng iba't ibang mga koponan. 956 00:51:27,000 --> 00:51:31,000 Kailangan kong ipadala sa na screen kung ano ang koponan ang dapat mong ipakita. 957 00:51:31,000 --> 00:51:35,000 Upang gawin na ako pagpunta sa samantalahin ng ang paraan na ito dito. 958 00:51:35,000 --> 00:51:39,000 >> Sa wakas, ang isang random na punto sa iOS. 959 00:51:39,000 --> 00:51:41,000 Kung nais mong i-imbak ng data ito bagay na tinatawag na core data, 960 00:51:41,000 --> 00:51:44,000 na talagang uri ng kumplikado upang gumana sa. 961 00:51:44,000 --> 00:51:47,000 Maaari mo ring gamitin ang SQL upang mag-imbak ng data, 962 00:51:47,000 --> 00:51:51,000 kung saan, muli, ay magaling ngunit uri ng sa mas kumplikadong bahagi upang gumana sa, 963 00:51:51,000 --> 00:51:55,000 ngunit iOS din sumusuporta sa mga talagang cool na bagay na tinatawag na ari-arian listahan, 964 00:51:55,000 --> 00:52:00,000 at isang listahan ng ari-arian ay isang file na kumakatawan sa pangunahing mga pares ng halaga. 965 00:52:00,000 --> 00:52:03,000 Mong tukuyin ang isang listahan ng mga susi, at sabihin mo ang key na ito ay pagpunta sa isang array. 966 00:52:03,000 --> 00:52:06,000 Ang key na ito ay isang string, at talaga anumang bagay na maaari mong gawin 967 00:52:06,000 --> 00:52:10,000 sa JSON na maaari mong gawin sa loob ng isang listahan ng ari-arian, 968 00:52:10,000 --> 00:52:14,000 at kaya ito talagang mabuti ay nagbibigay-daan sa amin upang gumana sa ilang mga data. 969 00:52:14,000 --> 00:52:18,000 Halimbawa, mayroon akong ito Teams.plist na aking nilikha. 970 00:52:18,000 --> 00:52:22,000 Lumikha ako ng bagong file plist, at maaari ba akong mag-drill down. 971 00:52:22,000 --> 00:52:26,000 Ito ay isang diksyunaryo, ito ay isang diksyunaryo, ito ay string, 972 00:52:26,000 --> 00:52:30,000 at kaya ito ay gandang graphical na representasyon ng isang dokumento ng JSON 973 00:52:30,000 --> 00:52:33,000 o lamang ng isang set ng mga pangunahing mga pares ng halaga, 974 00:52:33,000 --> 00:52:37,000 at kaya ito ay ang data na ako nagtatrabaho sa loob ng aking app. 975 00:52:37,000 --> 00:52:40,000 >> Natin ang unang darating sa paglipas dito. Mayroon kaming ng maraming higit pang mga file sa ngayon. 976 00:52:40,000 --> 00:52:44,000 Ngunit sabihin unang darating sa paglipas dito sa storyboard. 977 00:52:44,000 --> 00:52:48,000 Sa storyboard dito-kung maaari ba akong mag-zoom out 978 00:52:48,000 --> 00:52:51,000 maaari na namin ngayon makita na ito ay ang daloy ng aking app. 979 00:52:51,000 --> 00:52:53,000 Muna ako pagpunta sa magsimula sa screen na ito. 980 00:52:53,000 --> 00:52:55,000 Pupunta ako upang mag-drill down sa screen na ito, 981 00:52:55,000 --> 00:52:58,000 at ako upang mag-drill down sa screen na ito, at maaari naming makita dito na kung ako uri ng 982 00:52:58,000 --> 00:53:04,000 ilipat ang isa sa mga ito sa paligid namin ang mga arrow ng pagpunta mula dito sa dito, 983 00:53:04,000 --> 00:53:08,000 at ang paraan tukuyin ko na arrow ay kung ako mag-zoom sa ilang sandali, 984 00:53:08,000 --> 00:53:12,000 at kung dumating ako sa view na ito controller, 985 00:53:12,000 --> 00:53:16,000 at narito ang isang cell, at gusto kong sabihin na kapag mong i-tap ang isang cell 986 00:53:16,000 --> 00:53:18,000 Gusto ko sa slide sa isa pang screen. 987 00:53:18,000 --> 00:53:21,000 Ko lang pindutin ng matagal kontrol, 988 00:53:21,000 --> 00:53:26,000 mag-scroll sa paglipas ng ilang sandali, pindutin nang matagal control, i-drag ang cell na ito sa paglipas ng at bitawan. 989 00:53:26,000 --> 00:53:30,000 >> At mahigit dito sinasabi namin kung ano ang transition na nais mong gamitin? 990 00:53:30,000 --> 00:53:32,000 Nais mo bang gamitin na slide bagay na tinatawag na push? 991 00:53:32,000 --> 00:53:34,000 Gusto mo bang sa slide mula sa ibaba? 992 00:53:34,000 --> 00:53:36,000 Na tinatawag na modal. 993 00:53:36,000 --> 00:53:40,000 At sabay-sabay ko i-click ang isa sa mga ito, ito ay pagpunta upang gumuhit ang arrow para sa akin, 994 00:53:40,000 --> 00:53:44,000 at na nangangahulugan na aktwal na ako mapangasiwaan kung ano ang mangyayari kapag pindutin ko graphically ang pindutan na ito. 995 00:53:44,000 --> 00:53:48,000 Hindi ko isulat ang anumang code sa aktwal na slide mula sa isang screen sa sa susunod. 996 00:53:48,000 --> 00:53:51,000 Na tinukoy ko ito biswal sa loob ng Interface Builder. 997 00:53:51,000 --> 00:53:55,000 Kung ako mag-click sa arrow na ito, maaari naming makita na ibinigay ko ito bagay ng pangalan. 998 00:53:55,000 --> 00:53:59,000 Tinatawag ko ito mga showDivisions, at ito ay sa gayon ay maaari kong malaman 999 00:53:59,000 --> 00:54:03,000 kung ano ang transition ay tungkol sa mangyari, at ipapakita namin makita kung bakit sa loob lamang ng segundo. 1000 00:54:03,000 --> 00:54:06,000 Kung paano ko na naka-wire na ang iba't ibang mga screen sa aking app. 1001 00:54:06,000 --> 00:54:09,000 Kung ito ay isang pindutan, halimbawa, sa halip na pagtingin ng talahanayan, 1002 00:54:09,000 --> 00:54:11,000 Ko makokontrol i-click ang pindutan, kaladkarin sa susunod na screen, 1003 00:54:11,000 --> 00:54:16,000 at na kung paano ang maaari kong gawin navigation na paraan. 1004 00:54:16,000 --> 00:54:19,000 >> Talagang mabilis, kung dumating kami sa MasterViewController, 1005 00:54:19,000 --> 00:54:22,000 muli, kailangan lang namin ay upang tukuyin ang isang listahan ng mga bagay 1006 00:54:22,000 --> 00:54:26,000 na ipinapakita sa view ng table. 1007 00:54:26,000 --> 00:54:29,000 Narito ako sinasabi gusto ko sa iyo na plist file, 1008 00:54:29,000 --> 00:54:32,000 at gusto ko sa iyo upang i-load ito sa isang diksyunaryo, 1009 00:54:32,000 --> 00:54:35,000 at sa sandaling mayroon ka na diksyunaryo, ako pagpunta upang sagutin ang mga parehong katanungan muli. 1010 00:54:35,000 --> 00:54:37,000 Narito ang bilang ng mga seksyon. 1011 00:54:37,000 --> 00:54:41,000 One, mayroong isang hilera para sa bawat liga, at ang teksto ng bawat cell 1012 00:54:41,000 --> 00:54:46,000 ay dapat na alinman sa unang isa, ang unang liga, ang ikalawang liga, at iba pa. 1013 00:54:46,000 --> 00:54:51,000 Sa wakas, ako pagpunta sa gamitin ang pamamaraang ito na lang namin nakita tinatawag prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 at ito ay ang paraan na ang nangyayari na fired kapag nag-click ako 1015 00:54:54,000 --> 00:54:57,000 sa isa ng mga hilera at samakatuwid ay na-activate na transition 1016 00:54:57,000 --> 00:54:59,000 na itinakda ko na may mga arrow. 1017 00:54:59,000 --> 00:55:02,000 Na ito ay nagsasabi na ang maaari kong magkaroon ng maramihang 1018 00:55:02,000 --> 00:55:05,000 relasyon mula sa isang screen sa isa pang. 1019 00:55:05,000 --> 00:55:08,000 Kung mayroon akong 2 mga pindutan at mga pindutan sa bawat dadalhin ka sa ibang screen 1020 00:55:08,000 --> 00:55:10,000 Ako 2 segues, 1 para sa bawat pindutan. 1021 00:55:10,000 --> 00:55:14,000 Ngunit prepareForSegue ito ay, muli, na reused 1022 00:55:14,000 --> 00:55:17,000 para sa bawat isa ng ang iba't ibang mga relasyon, kaya na nangangahulugan na kailangan ko ang isang paraan 1023 00:55:17,000 --> 00:55:21,000 ng pagkilala kung ikaw pindutin ang unang pindutan o pindutin ang pangalawang pindutan. 1024 00:55:21,000 --> 00:55:25,000 >> Tandaan kapag ibinigay ko na segue ng pangalan, ito showDivisions, 1025 00:55:25,000 --> 00:55:29,000 na kung paano alam ko na ngayon na ito ay segue na-activate. 1026 00:55:29,000 --> 00:55:32,000 Ang gusto kong gawin ay gusto kong sabihin 1027 00:55:32,000 --> 00:55:35,000 Gusto kong malaman kung ano ang ko lang pindutin, 1028 00:55:35,000 --> 00:55:38,000 at iba pa upang makakuha ng na, maaari kong sabihin na gusto ko ang indexPath para sa mga napiling mga hilera, 1029 00:55:38,000 --> 00:55:42,000 maalala ang indexPath lang sabi kung saan ko lang nai-click, 1030 00:55:42,000 --> 00:55:47,000 at pagkatapos ay gusto kong sabihin gusto kong malaman kung saan ako pupunta. 1031 00:55:47,000 --> 00:55:50,000 DestinationViewController ito, na isang ari-arian ng segue. 1032 00:55:50,000 --> 00:55:53,000 Iyon ang screen na pupuntahan ko, 1033 00:55:53,000 --> 00:55:56,000 kaya alam ko na ang screen na ako pagpunta sa ay tinatawag na DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 dahil nilikha ko na klase, 1035 00:55:59,000 --> 00:56:02,000 at kaya ngayon kung sinasabi ko ang mga d.divisions 1036 00:56:02,000 --> 00:56:06,000 Ako ngayon ng pagtatakda ng isang ari-arian ng view ng controller na ako tungkol sa upang pumunta sa. 1037 00:56:06,000 --> 00:56:10,000 Ito ay kung paano ako sa pagpapadala ng data mula sa isang screen sa isa pang screen. 1038 00:56:10,000 --> 00:56:13,000 >> Lamang ng pagtingin sa ito DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 maaari mong makita dito sa file na. h 1040 00:56:16,000 --> 00:56:20,000 may na dibisyon ng ari-arian, at na kung ano talaga ako populating, 1041 00:56:20,000 --> 00:56:25,000 sa gayon ay kung paano alam ko na ako nagpapalabas ng mga dibisyon na naaayon sa 1042 00:56:25,000 --> 00:56:28,000 ang liga na click ko, at muli, 1043 00:56:28,000 --> 00:56:31,000 ang aktwal na pagtingin sa talahanayan ay mukhang medyo magkano ang parehong, lamang ng pagsagot sa mga 1044 00:56:31,000 --> 00:56:34,000 3 simpleng tanong at pati na rin ng pagkilala 1045 00:56:34,000 --> 00:56:37,000 kung ano ang mangyayari kapag nilipat mo sa susunod na screen. 1046 00:56:37,000 --> 00:56:40,000 Lamang ng ilang mga iba pang mga bagay dito. 1047 00:56:40,000 --> 00:56:43,000 Napansin mo sa tuktok dito kaysa sa sinasabi # include 1048 00:56:43,000 --> 00:56:45,000 Ngayon ako sinasabi # import. 1049 00:56:45,000 --> 00:56:47,000 Ito ay lamang ng isang bagay na Layunin-C. 1050 00:56:47,000 --> 00:56:52,000 Import ay isa lamang isang nicer na bersyon ng ang, 1051 00:56:52,000 --> 00:56:57,000 at halimbawa, kailangan naming malaman kung ano ang klase ito, 1052 00:56:57,000 --> 00:57:00,000 kaya hindi lang ako sabihin DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 Kung hindi namin ginawa hashtag standardio.c loob ng aming mga file na. C 1054 00:57:05,000 --> 00:57:07,000 tagatala ay walang ideya kung ano ang printf ay. 1055 00:57:07,000 --> 00:57:12,000 Gayundin, kung hindi ko import ang DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 tagatala ang talagang ay walang ideya kung ano ang DivisionsViewController ng. 1057 00:57:16,000 --> 00:57:19,000 Tiyakin lamang na ang loob ng iyong iba. File ng m tiyakin mong i-import ang 1058 00:57:19,000 --> 00:57:25,000 naaayon. h file kaya na tagatala alam kung anong nangyayari sa. 1059 00:57:25,000 --> 00:57:31,000 >> Panghuli, kung ano ang Apple sa huli ay ang ipakita ang ilang mga data gamit ang isang web view, 1060 00:57:31,000 --> 00:57:35,000 at sa gayon ay isang bagay kung saan maaari mong i-embed ang isang web view 1061 00:57:35,000 --> 00:57:37,000 isang maliit na web browser sa loob ng iyong app. 1062 00:57:37,000 --> 00:57:40,000 Ang kailangan mong gawin ay magbigay ng URL sa iyong web browser, 1063 00:57:40,000 --> 00:57:43,000 kaya Gusto kong upang pumunta sa mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 at ito ay kung paano ko ma-access ang home page para sa bawat koponan, 1065 00:57:46,000 --> 00:57:49,000 at iba pa sa pamamagitan ng pagpasa sa URL na ito 1066 00:57:49,000 --> 00:57:52,000 maaaring ipakita ang web view na ito para sa akin, at maaari ba akong mag-browse sa paligid, 1067 00:57:52,000 --> 00:58:01,000 at simulator sa paggamit ng na ang isa. 1068 00:58:01,000 --> 00:58:03,000 Ngayon ito ay dumating mula sa aking plist. 1069 00:58:03,000 --> 00:58:07,000 Kung ako i-click ito ito din ay dumating mula sa aking plist, at ito ay mapangasiwaan ang sliding 1070 00:58:07,000 --> 00:58:09,000 sa pamamagitan ng pagtukoy ng mga segues. 1071 00:58:09,000 --> 00:58:12,000 Ko i-click ito at isa pa, 1072 00:58:12,000 --> 00:58:15,000 at ngayon dito ay aking UIWebView, kaya tulad na 1073 00:58:15,000 --> 00:58:19,000 dito ang website para sa URL ko lang naka-embed, 1074 00:58:19,000 --> 00:58:21,000 at hindi ko upang pangasiwaan ang anumang mabaliw. 1075 00:58:21,000 --> 00:58:24,000 Ito ay kung paano upang magpakita ng isang web page. 1076 00:58:24,000 --> 00:58:27,000 Mga bagay tulad ng ito back button dito ay ibinigay din sa akin 1077 00:58:27,000 --> 00:58:33,000 lubos nang libre dahil tinukoy ko ang mga relasyon na ito gamit ang segues. 1078 00:58:33,000 --> 00:58:37,000 >> Anumang mga katanungan? Oo. 1079 00:58:37,000 --> 00:58:40,000 [Mag-aaral] Kaya kapag gumamit ka ng alloc, hindi mo kailangang mag-libreng anumang? 1080 00:58:40,000 --> 00:58:43,000 Eksakto, kapag tumawag ka alloc at init hindi mo magbakante ito. 1081 00:58:43,000 --> 00:58:46,000 IOS ay pagpunta upang pangasiwaan ang lahat ng na para sa iyo. 1082 00:58:46,000 --> 00:58:51,000 Ito ay kahanga-hanga, at hindi ka paglabag ng anumang panuntunan. Oo. 1083 00:58:51,000 --> 00:58:54,000 [Mag-aaral] Kung ikaw ay upang isama ang higit pang mga koponan na maaaring umangkop sa screen, 1084 00:58:54,000 --> 00:58:58,000 awtomatiko itong may scroll pagpipilian, o na may isang bagay na kailangan mong idagdag? 1085 00:58:58,000 --> 00:59:01,000 Eksakto, kung ako ay may higit pang mga koponan, halimbawa, ay awtomatiko nitong pangasiwaan ang 1086 00:59:01,000 --> 00:59:04,000 ang scroll para sa akin, at lahat ang pagganap alalahanin 1087 00:59:04,000 --> 00:59:08,000 na may malaking table din mapangasiwaan lubos na para sa akin. 1088 00:59:08,000 --> 00:59:11,000 >> Iba pang mga tanong? 1089 00:59:11,000 --> 00:59:13,000 Lahat ng ang code na ito ay pagpunta sa-post. 1090 00:59:13,000 --> 00:59:16,000 Namin uri ng glossed sa ibabaw ng kaunti ng higit pang mga menor de edad mga detalye, 1091 00:59:16,000 --> 00:59:19,000 ngunit ang mga bagay tulad ng pagtatakda ng ilang mga katangian sa web view ng 1092 00:59:19,000 --> 00:59:22,000 lamang ang mga bagay na maaari kang makakuha sa pamamagitan ng pag-browse ng Apple ng dokumentasyon, 1093 00:59:22,000 --> 00:59:24,000 na talaga, talagang mahusay inilatag. 1094 00:59:24,000 --> 00:59:27,000 Ang mga ito ay may maraming sample apps at Halimbawa usages 1095 00:59:27,000 --> 00:59:34,000 ng iba't ibang mga API, kaya tiyak na bumasang mabuti ang mga kung maaari mong. 1096 00:59:34,000 --> 00:59:36,000 Ilang kapaki-pakinabang na mga link baka gusto mong tingnan ang. 1097 00:59:36,000 --> 00:59:38,000 Ito ang ilang mga madaling-magamit na gabay na dokumentasyon. 1098 00:59:38,000 --> 00:59:41,000 Ang mga URL ay napakalaking, kaya sila ay pinaikling. 1099 00:59:41,000 --> 00:59:44,000 Ang unang isa ay ang buong library ng dokumentasyon. 1100 00:59:44,000 --> 00:59:46,000 Mayroong maliit na search bar, kaya kung simulan mo ang pagta-type pindutan 1101 00:59:46,000 --> 00:59:50,000 ito ay simulan ang nagbibigay sa iyo ang lahat ng impormasyon tungkol sa lahat ng mga bagay na maaari mong gawin sa isang pindutan. 1102 00:59:50,000 --> 00:59:53,000 Nagsama ako rin ang Table Tingnan ang Gabay sa Programming. 1103 00:59:53,000 --> 00:59:56,000 Nito pinangangasiwaan mga tanawin ng talahanayan sa mas higit pang detalye, 1104 00:59:56,000 --> 01:00:00,000 kung paano gawin ang mga bagay tulad ng mga dynamic na magdagdag ng mga cell o i-edit ng mga cell o alisin ang mga ito. 1105 01:00:00,000 --> 01:00:02,000 >> Mayroong maraming sample apps mula sa Apple na ay magpapakita sa iyo kung paano upang gawin iyon, 1106 01:00:02,000 --> 01:00:05,000 at sa wakas, ang huling isa ay ang Human Interface Alituntunin ng, 1107 01:00:05,000 --> 01:00:09,000 at ito ay isa lamang ilang mga talakayan ng UI bahagi, 1108 01:00:09,000 --> 01:00:12,000 huwag gumawa ng mga bagay tulad ng isang pindutan na 4 na pixels ng 4 pixels. 1109 01:00:12,000 --> 01:00:15,000 Na ang isang masamang ideya, at iba pang mga bagay na Apple ay nais mong gawin 1110 01:00:15,000 --> 01:00:18,000 upang hikayatin ang magandang disenyo. 1111 01:00:18,000 --> 01:00:23,000 >> Anumang mga huling tanong bago namin tapusin up? 1112 01:00:23,000 --> 01:00:27,000 Lahat ng karapatan, talagang huwag mag-atubiling-lubos pagpunta sa espesyal na label sa talakayin. 1113 01:00:27,000 --> 01:00:30,000 Magkakaroon kami ng iOS isa, kaya talagang huwag mag-atubiling gamitin na. 1114 01:00:30,000 --> 01:00:34,000 Kung nais mo upang gumana sa iyong mga kaklase sa mga proyekto 1115 01:00:34,000 --> 01:00:37,000 o makatulong na malaman ang ilang mga random na mga bagay-bagay sa iOS 1116 01:00:37,000 --> 01:00:40,000 huwag mag-atubili na mag-email sa akin, at tiyak na bumasang mabuti ang lahat ng mga code online dahil 1117 01:00:40,000 --> 01:00:43,000 lamang sa interes ng panahon namin uri ng glossed sa ibabaw ng higit pa 1118 01:00:43,000 --> 01:00:45,000 haspe detalye ng mas pinong ng mga bagay. 1119 01:00:45,000 --> 01:00:47,000 Ngunit kung hindi, pagkatapos ay good luck sa iyong mga proyekto sa iOS, at Umaasa ako na mayroon kami 1120 01:00:47,000 --> 01:00:53,000 isang malaking pag-agos ng mga apps sa App Store. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]