1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminar] [IOS: Skryf Apps soos 'n baas] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Harvard Universiteit] 3 00:00:04,000 --> 00:00:08,000 [Hierdie is CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Alle reg, almal, welkom by IOS: Skryf Apps soos 'n baas. 5 00:00:12,000 --> 00:00:16,000 Hierdie seminaar is gaan om te fokus op die skryf van programme vir die iPhone 6 00:00:16,000 --> 00:00:19,000 en op sy beurt die skryf van programme vir die iPad, en so het ons basies gaan om te loop deur 7 00:00:19,000 --> 00:00:23,000 'n paar verskillende voorbeelde van hoe om 'n app te maak, 'n eenvoudige spel soos Tic Tac Toe, 8 00:00:23,000 --> 00:00:26,000 of as jy meer belangstel in die maak van 'n app soos 'n soort van nuus-leser 9 00:00:26,000 --> 00:00:30,000 of iets wat in wisselwerking met die Internet wat ek sal praat oor wat as goed. 10 00:00:30,000 --> 00:00:32,000 Hier is ons kort agenda. 11 00:00:32,000 --> 00:00:36,000 >> IOS apps is geskryf in 'n taal, die sogenaamde Objective-C, 12 00:00:36,000 --> 00:00:39,000 en so dit is 'n bietjie soortgelyk aan C, maar nie regtig op alle, 13 00:00:39,000 --> 00:00:41,000 so sal ons praat 'n bietjie oor die taal self 14 00:00:41,000 --> 00:00:45,000 en dan hoe iPhone apps te bou met behulp van hierdie inligting program genaamd Xcode, 15 00:00:45,000 --> 00:00:48,000 wat, indien jy dit nog nie afgelaai nog voel vry om die aflaai te begin nou. 16 00:00:48,000 --> 00:00:50,000 Dit is n paar gigagrepe. 17 00:00:50,000 --> 00:00:54,000 Dit moet vry wees op die App Store, sodat jy nodig het om 'n Mac te hê 18 00:00:54,000 --> 00:00:57,000 ideaal loop van die nuutste weergawe van OS X. 19 00:00:57,000 --> 00:00:59,000 As jy nie, geen probleem. 20 00:00:59,000 --> 00:01:02,000 Ons het Macs in die wetenskap sentrum beskikbaar vir u gebruik 21 00:01:02,000 --> 00:01:05,000 met Xcode geïnstalleer is, en so voel vry om diegene te gebruik vir ontwikkeling. 22 00:01:05,000 --> 00:01:07,000 As jy wil om 'n app te maak, maar het nie 'n Mac, moenie worry nie. 23 00:01:07,000 --> 00:01:09,000 Daar is baie van kampus hulpbronne vir daardie. 24 00:01:09,000 --> 00:01:15,000 En so dan gaan ons te dek 2 groter voorbeelde van verskillende apps wat jy kan maak. 25 00:01:15,000 --> 00:01:19,000 Objective-C is tegnies wat genoem word 'n super stel van C. 26 00:01:19,000 --> 00:01:24,000 Dit beteken dat 'n C-kode is ook geldig Objective-C-kode. 27 00:01:24,000 --> 00:01:29,000 Dit beteken dat ons soort buis op band opgeneem op 'n paar ekstra funksies te C. 28 00:01:29,000 --> 00:01:33,000 Sommige van hierdie eienskappe sluit nie om ooit weer skryf malloc, dank God, 29 00:01:33,000 --> 00:01:36,000 nie hoef te bekommer oor daardie dom wenke en bevry hulle en al daardie dinge 30 00:01:36,000 --> 00:01:40,000 jy haat oor C, en dit is soort van weg in Objective-C. 31 00:01:40,000 --> 00:01:43,000 >> Nou, Objective-C het ook 'n baie groter standaard biblioteek, 32 00:01:43,000 --> 00:01:47,000 so daar is 'n baie meer funksies wat jy kry gratis binnekant van Objective-C. 33 00:01:47,000 --> 00:01:50,000 Onthou wanneer ons skryf PHP het ons opgemerk dat ons het van 34 00:01:50,000 --> 00:01:54,000 die kleinste taal aan die reuse biblioteek van al hierdie gek dinge wat jy kan doen. 35 00:01:54,000 --> 00:01:56,000 Dieselfde ding gebeur in IOS. 36 00:01:56,000 --> 00:01:59,000 Daar is voorwerpe vir dinge soos die Boeddhistiese kalender, en regtig iets 37 00:01:59,000 --> 00:02:05,000 kan jy dalk dink waarskynlik bestaan ​​reeds in Objective-C se implementering. 38 00:02:05,000 --> 00:02:08,000 Die objektiewe deel van Objective-C verwysingstegnieke iets 39 00:02:08,000 --> 00:02:11,000 objek-georiënteerde programmering genoem. 40 00:02:11,000 --> 00:02:14,000 Dit is 'n soort van 'n nuwe konsep, maar ons het eintlik meestal geleer 41 00:02:14,000 --> 00:02:17,000 'n baie van hierdie konsepte reeds. 42 00:02:17,000 --> 00:02:19,000 Die idee agter objek-georiënteerde programmeringsvaardighede is dat jy gaan om te struktureer 43 00:02:19,000 --> 00:02:23,000 'n baie van jou kode om hierdie dinge genoem klasse, 44 00:02:23,000 --> 00:02:26,000 en hierdie klasse is regtig structs verheerlik. 45 00:02:26,000 --> 00:02:30,000 Binnekant van 'n struct ons basies gesê hier is 'n ding, 46 00:02:30,000 --> 00:02:32,000 en hierdie ding kan lede hê. 47 00:02:32,000 --> 00:02:35,000 Byvoorbeeld, kan 'n nodus in 'n geskakelde lys het ander dinge 48 00:02:35,000 --> 00:02:38,000 soos 'n waarde, 'n wyser na die volgende nodus in die lys, 49 00:02:38,000 --> 00:02:44,000 en saam dat pointer en dat die waarde gekomponeer hierdie een geval van 'n struct. 50 00:02:44,000 --> 00:02:47,000 Klasse is baie soortgelyk, behalwe 51 00:02:47,000 --> 00:02:50,000 klasse kan ook funksies binnekant van hulle. 52 00:02:50,000 --> 00:02:54,000 Wanneer ons 'n struct verklaar, kan ons net sê int N of node * volgende. 53 00:02:54,000 --> 00:02:57,000 >> Objective-C kan ons eintlik sit funksies 54 00:02:57,000 --> 00:02:59,000 binnekant van daardie dinge. 55 00:02:59,000 --> 00:03:03,000 Nog 'n ding wat klasse kan doen is om hulle data uit ander klasse kan beërwe. 56 00:03:03,000 --> 00:03:07,000 Byvoorbeeld, sal ons kyk na 'n klomp van die ingeboude in Objective-C klasse. 57 00:03:07,000 --> 00:03:11,000 Een van hulle kon die klas wat verteenwoordig die oog vir 'n skerm, 58 00:03:11,000 --> 00:03:14,000 en so deur te sê ek wil my eie siening te implementeer 59 00:03:14,000 --> 00:03:18,000 ons basies sê iemand oor by Apple, waarskynlik regtig nice mense, 60 00:03:18,000 --> 00:03:21,000 hierdie klas vir my geskryf het, en dit hanteer dinge soos vertoon knoppies 61 00:03:21,000 --> 00:03:25,000 of die lewering van die skerm, en sou ons dit baie angs 62 00:03:25,000 --> 00:03:28,000 al die funksies om onsself te voer, en so deur eenvoudig 63 00:03:28,000 --> 00:03:31,000 erfgename van data wat ons kan sê alles wat jy gedoen het in daardie klas 64 00:03:31,000 --> 00:03:34,000 Ek wil ook binnekant van my klas, en dan gaan ek n paar ander dinge om te doen, 65 00:03:34,000 --> 00:03:37,000 naamlik 'n program te implementeer. 66 00:03:37,000 --> 00:03:40,000 Dit is wat die woord erfenis beteken. Ons sal sien 'n meer konkrete voorbeeld. 67 00:03:40,000 --> 00:03:42,000 >> En laastens, die sleutel met objek-georiënteerde programmeringsvaardighede is dat 68 00:03:42,000 --> 00:03:45,000 dit lei tot data inkapseling. 69 00:03:45,000 --> 00:03:48,000 In sommige van ons probleem sit, kan ons hierdie groot, globale veranderlikes 70 00:03:48,000 --> 00:03:51,000 en globals oral, en dit is hoe ons wil track hou van die staat. 71 00:03:51,000 --> 00:03:55,000 Ons kan begin met klasse vat inligting binnekant van 'n voorwerp. 72 00:03:55,000 --> 00:03:58,000 As ons 'n skerm op ons app, doen ons nie regtig nodig om enige data te hê 73 00:03:58,000 --> 00:04:01,000 nog 'n skerm in ons app binnekant van daardie, 74 00:04:01,000 --> 00:04:04,000 en so deur dinge in klasse te vat dit lei eintlik 75 00:04:04,000 --> 00:04:08,000 na 'n baie beter kode ontwerp, en dit is moontlik met 'n paar van die bykomende funksies 76 00:04:08,000 --> 00:04:11,000 Objective-C. 77 00:04:11,000 --> 00:04:15,000 , Sal die sintaks vir Objective-C is Forewarning piesangs. 78 00:04:15,000 --> 00:04:19,000 Dit is soos niks wat ons nog nooit gesien, 79 00:04:19,000 --> 00:04:22,000 so dit is 'n bietjie van 'n leerkurwe om gewoond te raak 80 00:04:22,000 --> 00:04:24,000 wat die heck beteken dit? 81 00:04:24,000 --> 00:04:27,000 Maar sodra jy verby dat die aanvanklike leerkurwe dit is regtig, regtig gladde 82 00:04:27,000 --> 00:04:29,000 om te begin skryf apps. 83 00:04:29,000 --> 00:04:33,000 >> 'N klas te verklaar, om hier te sê, is my klas nie, dit bestaan, 84 00:04:33,000 --> 00:04:35,000 en miskien hier is 'n paar dinge wat ek gaan later te definieer, 85 00:04:35,000 --> 00:04:38,000 Ek gaan @ koppelvlak om te sê. 86 00:04:38,000 --> 00:04:41,000 Ek gaan @ koppelvlak om te sê. Ek gaan na my klas 'n naam gee. 87 00:04:41,000 --> 00:04:43,000 En dan later iewers anders gaan ek @ einde om te sê, 88 00:04:43,000 --> 00:04:46,000 en alles wat daar tussen die @ koppelvlak en die @ einde 89 00:04:46,000 --> 00:04:48,000 gaan my klas te wees. 90 00:04:48,000 --> 00:04:51,000 Wat gaan om te wees wat binne in ons h lêers. 91 00:04:51,000 --> 00:04:55,000 Net soos in C ons h lêers. Basies gesê hier is 'n paar dinge wat sal bestaan. 92 00:04:55,000 --> 00:04:57,000 Ek is nie noodwendig wat jy vertel wat hulle nog doen, 93 00:04:57,000 --> 00:04:59,000 maar die vertaler nodig om te weet dat hulle bestaan. 94 00:04:59,000 --> 00:05:04,000 Later binnekant van ons m lêers want m vir Objective-C 95 00:05:04,000 --> 00:05:08,000 is waar ons eintlik gaan om te definieer wat hierdie klasse doen. 96 00:05:08,000 --> 00:05:11,000 Baie soos ons c lêers, het ons 'n implementeringsplan vir funksies. 97 00:05:11,000 --> 00:05:15,000 Binne van ons m lêer wat ons hier gaan sê is wat al die funksies 98 00:05:15,000 --> 00:05:18,000 binnekant van my klas wat hulle almal doen. 99 00:05:18,000 --> 00:05:22,000 En laastens, binnekant van 'n struct ons kan binne sê van daardie kode tussen krulhakies 100 00:05:22,000 --> 00:05:25,000 int n of node * volgende, 101 00:05:25,000 --> 00:05:28,000 en in Objective-C gaan ons gebruik maak van die term @ eiendom, 102 00:05:28,000 --> 00:05:31,000 en dit is wat gaan om die eienskappe te definieer, 103 00:05:31,000 --> 00:05:36,000 of die nie-funksies wat is 'n deel van my klasse. 104 00:05:36,000 --> 00:05:40,000 >> Funksies aan te roep in Objective-C is ook piesangs. 105 00:05:40,000 --> 00:05:43,000 Wanneer ons funksies in C verklaar ons het iets gesê soos int foo 106 00:05:43,000 --> 00:05:46,000 en oop hakie en dan het dit 'n lys van argumente. 107 00:05:46,000 --> 00:05:51,000 Dit is wat verklaar metodes of funksies lyk in Objective-C. 108 00:05:51,000 --> 00:05:54,000 As ek wil 'n funksie of 'n metode te verklaar 109 00:05:54,000 --> 00:05:58,000 waar ek sê metode is regtig net 'n funksie wat 'n lid van 'n klas is, 110 00:05:58,000 --> 00:06:01,000 so 'n soort van verwissel, maar nie regtig, 111 00:06:01,000 --> 00:06:03,000 binnekant van my metode Ek wil 'n nuwe metode te skep. 112 00:06:03,000 --> 00:06:06,000 Dit gaan niks om terug te keer, so dit gaan te wees van die tipe leemte. 113 00:06:06,000 --> 00:06:08,000 Dit is die terugkeer tipe van my funksie. 114 00:06:08,000 --> 00:06:11,000 Nou het ons parens hier omdat ek weet nie. 115 00:06:11,000 --> 00:06:14,000 Volgende gaan na die naam van my funksie, 116 00:06:14,000 --> 00:06:17,000 en dan uiteindelik het ons 'n kommapunt net soos ons gehad het in C. 117 00:06:17,000 --> 00:06:19,000 Wat is nuut hier is hierdie man hier. 118 00:06:19,000 --> 00:06:22,000 Hierdie koppelteken is eintlik nodig is, en wat dit sê, is dat 119 00:06:22,000 --> 00:06:26,000 hierdie metode hier op 'n geval van 'n klas moet genoem word. 120 00:06:26,000 --> 00:06:29,000 >> Nadat ons verklaar ons structs waarskynlik iets gesê soos 121 00:06:29,000 --> 00:06:32,000 struct node n, en wat eintlik geskep 122 00:06:32,000 --> 00:06:35,000 of aangehaal een van daardie structs sodat ek kon eintlik begin werk 123 00:06:35,000 --> 00:06:38,000 wat is binnekant van dit, so hierdie streep beteken dat ons moet 124 00:06:38,000 --> 00:06:41,000 instansieer die klas net soos ons aangehaal dat struct 125 00:06:41,000 --> 00:06:43,000 voordat ons kan noem hierdie metode op dit. 126 00:06:43,000 --> 00:06:46,000 As ek wil om te begin byvoeg argumente te my metodes 127 00:06:46,000 --> 00:06:48,000 raak dit selfs meer piesangs. 128 00:06:48,000 --> 00:06:50,000 Hier is die naam van my metode. 129 00:06:50,000 --> 00:06:53,000 Dan gaan ek 'n dubbelpunt te hê, en na hierdie kolon dit sê hier kom n paar argumente. 130 00:06:53,000 --> 00:06:56,000 Hierdie metode neem een ​​argument. 131 00:06:56,000 --> 00:06:59,000 Die tipe van sy argument is 'n int, en die naam van daardie argument 132 00:06:59,000 --> 00:07:03,000 of die veranderlike wat ek gaan om te begin met behulp van die binnekant van die metode genoem word i. 133 00:07:03,000 --> 00:07:05,000 Weereens, hierdie is 'n metode. Dit neem 'n argument. 134 00:07:05,000 --> 00:07:10,000 >> As jy wil begin toe te voeg meer argumente raak dit meer piesangs 135 00:07:10,000 --> 00:07:13,000 in die sin dat ons hierdie kolon wat sê hier kom my lys van argumente. 136 00:07:13,000 --> 00:07:15,000 Die eerste argument is 'n heelgetal. 137 00:07:15,000 --> 00:07:17,000 Nou, hierdie tweede argument is interessant. 138 00:07:17,000 --> 00:07:20,000 Die veranderlike wat ek gaan om te word binne deur middel van my funksie 139 00:07:20,000 --> 00:07:23,000 word genoem f, so binnekant van my funksie wat ek kan sê 140 00:07:23,000 --> 00:07:25,000 f + = 1 of iets. 141 00:07:25,000 --> 00:07:30,000 Hierdie ding hier is basies 'n sleutel vir daardie argument of parameter. 142 00:07:30,000 --> 00:07:34,000 Net soos ons het sleutel waarde pare en iets soos into of assosiatiewe skikkings 143 00:07:34,000 --> 00:07:37,000 Objective-C het die besluit gemaak om te sê, okay, net sodat dit is regtig duidelik 144 00:07:37,000 --> 00:07:39,000 wanneer jy noem 'n metode wat al hierdie parameters is 145 00:07:39,000 --> 00:07:41,000 Ek het eintlik gaan hulle almal te noem. 146 00:07:41,000 --> 00:07:45,000 Wanneer jy 'n metode noem, sal jy eintlik sê andFloat, 147 00:07:45,000 --> 00:07:47,000 en dan sal jy slaag. 148 00:07:47,000 --> 00:07:50,000 >> Interessant genoeg, is hierdie een nie genoem nie, maar al die ander parameters is, 149 00:07:50,000 --> 00:07:53,000 so as ons het 'n 3de argument wat ek kan sê andFloat 150 00:07:53,000 --> 00:07:56,000 en 'n ander float en so aan. 151 00:07:56,000 --> 00:08:01,000 Toe ek hierdie metodes noem dit natuurlik piesangs, 152 00:08:01,000 --> 00:08:04,000 so as ek 'n voorwerp, en ek 'n metode met die naam foo gedefinieer, 153 00:08:04,000 --> 00:08:09,000 en ek wil om dit te noem, eerder as om te sê foo oop / naby parens 154 00:08:09,000 --> 00:08:11,000 Ek gaan 'n bracket oop te maak. 155 00:08:11,000 --> 00:08:13,000 Hier is die naam van my metode. 156 00:08:13,000 --> 00:08:17,000 Ek gaan die bracket te sluit, en dit is die voorwerp Ek noem dit op. 157 00:08:17,000 --> 00:08:20,000 Onthou, almal van hierdie metodes bestaan ​​binne klasse 158 00:08:20,000 --> 00:08:23,000 omdat klasse metodes gedefinieer binnekant van hulle kan hê. 159 00:08:23,000 --> 00:08:26,000 >> Hier het ek na willekeur 'n voorwerp van 'n paar klas, 160 00:08:26,000 --> 00:08:28,000 en dit is die sintaksis vir om dit te doen. 161 00:08:28,000 --> 00:08:31,000 Daar is 2 stappe tot die skep van 'n voorwerp. 162 00:08:31,000 --> 00:08:34,000 Die eerste stap is om te sê ek wil ruimte toe te ken. 163 00:08:34,000 --> 00:08:37,000 Dit is die ekwivalent van 'n malloc. Ons het nie 'malloc meer te sê. 164 00:08:37,000 --> 00:08:42,000 Ons laat val die m, het dit alloc, en vervang die c. M. 165 00:08:42,000 --> 00:08:47,000 Nadat ons alloc iets het ons dan nodig het om dit te inisialiseer. 166 00:08:47,000 --> 00:08:49,000 Basies as jy voorwerpe te skep wat jy wil dalk 'n paar logika te hê 167 00:08:49,000 --> 00:08:53,000 wat voer wanneer hulle geskep is, sodat jy kan slaag in 'n paar verstek waardes 168 00:08:53,000 --> 00:08:57,000 of iets soos dit, en so hierdie init metode is wat eintlik die voorwerp skep. 169 00:08:57,000 --> 00:08:59,000 Ons het eers die toekenning van ruimte, net soos ons gedoen het in C, 170 00:08:59,000 --> 00:09:04,000 en dan het ons inisialiseer, wat mag of nie mag doen nie 'n hele klomp. 171 00:09:04,000 --> 00:09:07,000 Dan het ons hierdie ding terug in 'n voorwerp o. 172 00:09:07,000 --> 00:09:09,000 Daar is 'n ster hier, want dit is tegnies 'n wyser, 173 00:09:09,000 --> 00:09:12,000 maar moenie worry nie, wysers is nie so 'n groot deal in Objective-C nie. 174 00:09:12,000 --> 00:09:15,000 >> Nou het ons geïnstansieer hierdie klas met die naam NSObject, 175 00:09:15,000 --> 00:09:19,000 en dit is net 'n ewekansige klas wat Apple het. 176 00:09:19,000 --> 00:09:22,000 Ons het aangehaal, en nou het ek 'n voorbeeld van hierdie klas 177 00:09:22,000 --> 00:09:25,000 in hierdie voorwerp o, so dit beteken dat as ek gedefinieer 178 00:09:25,000 --> 00:09:29,000 hierdie metodes het ek hulle so kan noem. 179 00:09:29,000 --> 00:09:31,000 Net so, as ek wou om 'n metode te roep met een argument, 180 00:09:31,000 --> 00:09:34,000 so dit is die bar metode, neem een ​​argument, 181 00:09:34,000 --> 00:09:38,000 en hier is die Baz: qux metode, so dit neem 2 argumente. 182 00:09:38,000 --> 00:09:44,000 Dit roep een funksie op hierdie item o. 183 00:09:44,000 --> 00:09:46,000 Sin maak? 184 00:09:46,000 --> 00:09:50,000 Die sintaks moet sin maak, maar jy soort van gewoond raak aan dit. 185 00:09:50,000 --> 00:09:54,000 >> Goed, kom ons praat oor 'n paar dinge wat gebou is in Objective-C 186 00:09:54,000 --> 00:09:56,000 wat nie noodwendig in C. gebou 187 00:09:56,000 --> 00:09:59,000 In C ons soort van het om te gaan met stringe as hierdie dom karakter skikkings, 188 00:09:59,000 --> 00:10:01,000 en dit het regtig irriterende. 189 00:10:01,000 --> 00:10:04,000 Objective-C het dié gebou in vir ons, en dit is gebou in 190 00:10:04,000 --> 00:10:06,000 die gebruik van hierdie klas met die naam NSString. 191 00:10:06,000 --> 00:10:10,000 Wanneer ek wil 'n NSString ons het meer arcane sintaksis te skep. 192 00:10:10,000 --> 00:10:15,000 Eerder as om te sê "cs50" ons sê @ "cs50" 193 00:10:15,000 --> 00:10:17,000 en dit is net die sintaksis vir die verklaring van snare in Objective-C. 194 00:10:17,000 --> 00:10:21,000 Dit is baie maklik om te vergeet nie, so moenie. 195 00:10:21,000 --> 00:10:24,000 Nou, wanneer ek het dit, dit is 'n string nie, maar let 196 00:10:24,000 --> 00:10:26,000 dit is regtig net 'n voorwerp. 197 00:10:26,000 --> 00:10:30,000 Ek het gesê NSString, wat beteken dat ek geïnstansieer die klas 198 00:10:30,000 --> 00:10:32,000 genoem NSString, wat iemand anders geskryf het vir my, 199 00:10:32,000 --> 00:10:35,000 en hulle was baie lekker daaroor, en so nou 200 00:10:35,000 --> 00:10:37,000 Ek kan begin bel metodes op dit. 201 00:10:37,000 --> 00:10:40,000 As ek roep die metode lengte op hierdie item s 202 00:10:40,000 --> 00:10:43,000 dit gaan om terug te keer na my die lengte van die string. 203 00:10:43,000 --> 00:10:45,000 Dit is net soos strlen in C. 204 00:10:45,000 --> 00:10:47,000 Dit sou terugkeer 4. 205 00:10:47,000 --> 00:10:51,000 >> Net so is, 'n ander metode wat ek dalk wil om te bekommer oor hierdie characterAtIndex. 206 00:10:51,000 --> 00:10:54,000 Dit is 'n metode wat sê dat op hierdie string s 207 00:10:54,000 --> 00:10:57,000 Ek wil hê dat jy die nulde karakter te kry, 208 00:10:57,000 --> 00:10:59,000 en so sal dit terugkeer na my die karakter c, 209 00:10:59,000 --> 00:11:02,000 en daar is 'n hele klomp meer van hierdie metodes wat jy kan regtig maklik Google. 210 00:11:02,000 --> 00:11:07,000 Apple se dokumentasie is groot, en ons neem 'n blik op wat in 'n bietjie. 211 00:11:07,000 --> 00:11:09,000 Dit is strings. 212 00:11:09,000 --> 00:11:11,000 Ons het ook veranderlike grootte skikkings gebou. 213 00:11:11,000 --> 00:11:13,000 Onthou in C toe ons 'n skikking verklaar 214 00:11:13,000 --> 00:11:16,000 ons het om te sê jy het 5 elemente, die einde van die storie. 215 00:11:16,000 --> 00:11:18,000 Toe ons by JavaScript en PHP kan ons begin 216 00:11:18,000 --> 00:11:20,000 om dinge te doen soos om elemente of bewegende dele. 217 00:11:20,000 --> 00:11:22,000 Ons kan dit doen dieselfde in Objective-C. 218 00:11:22,000 --> 00:11:26,000 Skep eerder as om 'n skikking in die normale C manier 219 00:11:26,000 --> 00:11:30,000 Ons het weer ander klas genoem NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 Daar is ook NSArray, 221 00:11:33,000 --> 00:11:35,000 en dit gaan basies kapselt sommige skikking. 222 00:11:35,000 --> 00:11:38,000 Dit sê die eerste ding wat ek wil doen, is ek wil toeken 223 00:11:38,000 --> 00:11:41,000 ruimte vir 'n nuwe skikking, en nadat ek toewys 224 00:11:41,000 --> 00:11:43,000 Ek dan nodig om dit te inisialiseer. 225 00:11:43,000 --> 00:11:45,000 Weer, net die roeping van hierdie 2 metodes. 226 00:11:45,000 --> 00:11:48,000 Nou dit beteken dat die binnekant van hierdie voorwerp 'n 227 00:11:48,000 --> 00:11:50,000 Ek het 'n leë skikking sit daar. 228 00:11:50,000 --> 00:11:54,000 As ek iets wil byvoeg by hierdie skikking, kan ek noem die addObject metode. 229 00:11:54,000 --> 00:11:59,000 Ek wil 'n voorwerp te voeg aan die skikking 'n, en ek wil die tou CS50 te voeg. 230 00:11:59,000 --> 00:12:02,000 As ek wou omgekeerd verwyder wat ek kan sê wat ek wil 231 00:12:02,000 --> 00:12:09,000 verwyder die voorwerp in die eerste plek op die skikking of beswaar. 232 00:12:09,000 --> 00:12:11,000 >> Sin maak? 233 00:12:11,000 --> 00:12:14,000 Goed, jy het soort van gewoond raak aan hierdie vierkante bracket ding. 234 00:12:14,000 --> 00:12:18,000 By the way, binnekant van 'n baie van Apple se biblioteke sal jy sien hierdie NS. 235 00:12:18,000 --> 00:12:21,000 Die NS staan ​​eintlik vir die volgende stap, wat was een van Steve Jobs eerste maatskappye, 236 00:12:21,000 --> 00:12:24,000 en dit is waar hy werklik begin met die skryf van 'n baie van die kode 237 00:12:24,000 --> 00:12:27,000 as soort van die basis vir Mac OS X en al die ander dinge, 238 00:12:27,000 --> 00:12:32,000 en so die NS is soort van hierdie pragtige nalatenskap skreeu uit na een van die vroegste maatskappye 239 00:12:32,000 --> 00:12:34,000 terug wanneer Apple die eerste keer begin. 240 00:12:34,000 --> 00:12:36,000 Dit is oral. 241 00:12:36,000 --> 00:12:41,000 Kom ons neem 'n blik op 'n meer holistiese Objective-C voorbeeld. 242 00:12:41,000 --> 00:12:44,000 Hier is ek binnekant van Xcode. 243 00:12:44,000 --> 00:12:47,000 Om hier te kom, het ek die eerste van die App Store afgelaai Xcode, 244 00:12:47,000 --> 00:12:50,000 het dit oopgemaak het, en dan het ek hier na lêer, 245 00:12:50,000 --> 00:12:54,000 hier nuwe, en dan projek. 246 00:12:54,000 --> 00:12:57,000 Nadat ek doen, dat ek al hierdie opsies van wat ek wil hê om te skep, 247 00:12:57,000 --> 00:12:59,000 en so sal ons 'n blik op hierdie opsies later, 248 00:12:59,000 --> 00:13:03,000 maar net vir hierdie voorbeeld, want ons is eintlik nie van plan om 'n app nog, 249 00:13:03,000 --> 00:13:06,000 Ek het gekom hier, en ek het gesê Command Line Tool, 250 00:13:06,000 --> 00:13:09,000 en dit is 'n app wat ek kon loop op die command line 251 00:13:09,000 --> 00:13:12,000 net soos ons het is die loop van C. 252 00:13:12,000 --> 00:13:16,000 Dit is hoe ek hierdie projek geskep, en so nou is ek hier, 253 00:13:16,000 --> 00:13:20,000 se eerste blik op hierdie lêer so laat, en dit behoort redelik vertroud lyk. 254 00:13:20,000 --> 00:13:24,000 Ek het 'n 'n int naam. Daar is my vriend argc, my ander buddy bevat SPASIES. 255 00:13:24,000 --> 00:13:30,000 En so kan ons sien dat dit is die beginpunt vir my eerste Objective-C aansoek. 256 00:13:30,000 --> 00:13:32,000 Hier kan ons ignoreer dit vir nou. 257 00:13:32,000 --> 00:13:35,000 Dit is basies 'n paar geheue bestuur dinge wat jy wil nie regtig 258 00:13:35,000 --> 00:13:37,000 ooit sal hê om oor bekommerd te wees nie. 259 00:13:37,000 --> 00:13:39,000 >> Kom ons kyk na hierdie eerste blokkie hier. 260 00:13:39,000 --> 00:13:46,000 Die eerste lyn, as ek sê Student * alice = [[Student alloc] init] wat is dit doen? 261 00:13:46,000 --> 00:13:50,000 Die eerste student hier, is dit waarskynlik 'n klas. 262 00:13:50,000 --> 00:13:54,000 Dit is nie 'n klas dat Apple geskryf het, maar dit is 'n klas wat ek geskryf het. 263 00:13:54,000 --> 00:13:57,000 Die eerste ding wat ek wil doen, wil ek ruimte vir 'n nuwe student toe te ken, 264 00:13:57,000 --> 00:14:00,000 en dan wil ek dit te inisialiseer, so dit gee my terug 265 00:14:00,000 --> 00:14:05,000 hierdie nuwe student voorwerp, en ek stoor dit in 'n veranderlike genaamd Alice. 266 00:14:05,000 --> 00:14:07,000 Waar het daardie klas vandaan? 267 00:14:07,000 --> 00:14:12,000 Wel, hier aan die linkerkant is al die verskillende lêers binnekant van my projek. 268 00:14:12,000 --> 00:14:16,000 Ons kan hier sien dat Ek het 'n Student.h en 'n Student.m. 269 00:14:16,000 --> 00:14:20,000 Die H-lêer, onthou, is waar ek verklaar al die dinge 270 00:14:20,000 --> 00:14:22,000 wat sal bestaan ​​in die klas. 271 00:14:22,000 --> 00:14:25,000 >> Kom ons neem 'n blik op dit. 272 00:14:25,000 --> 00:14:29,000 Goed, hier het ons hierdie @ koppelvlak, en dit sê wat hier kom 273 00:14:29,000 --> 00:14:33,000 die verklarings van alles wat binne-in my klas sal bestaan. 274 00:14:33,000 --> 00:14:36,000 Dan het ek 'n dubbelpunt. Dan het ek hierdie NSObject ding. 275 00:14:36,000 --> 00:14:40,000 Hierdie kolon te kenne dat erfdeel bietjie ons was 'n bietjie vroeër bespreek. 276 00:14:40,000 --> 00:14:43,000 Dit sê alles wat 'n NSObject kan doen 277 00:14:43,000 --> 00:14:46,000 waar NSObject is hierdie klas wat deur iemand anders geskryf is, 278 00:14:46,000 --> 00:14:50,000 alles hierdie NSObject kan doen Ek wil in staat wees om dit te doen. 279 00:14:50,000 --> 00:14:54,000 Deur te sê: NSObject wat beteken dat ek basies 280 00:14:54,000 --> 00:14:58,000 geërf van die funksies van 'n ander klas. 281 00:14:58,000 --> 00:15:02,000 Wat werklik het my 'n hele klomp van verskillende metodes en eienskappe wat ek kan gebruik. 282 00:15:02,000 --> 00:15:05,000 Down hier is ek 2 eiendomme te skep. 283 00:15:05,000 --> 00:15:08,000 Dit beteken dat my student, as dit was 'n struct, sou hierdie die 2 dinge 284 00:15:08,000 --> 00:15:11,000 binnekant van my struct, sodat elke student het 'n naam 285 00:15:11,000 --> 00:15:14,000 wat is 'n string, en 'n student ook 'n graad, 286 00:15:14,000 --> 00:15:17,000 wat is 'n int. 287 00:15:17,000 --> 00:15:23,000 >> Ten slotte, hier neer Ek gaan 'n metode vir my student te skep. 288 00:15:23,000 --> 00:15:26,000 Ek het my metode, initWithName, en dit neem een ​​argument, 289 00:15:26,000 --> 00:15:31,000 en dat die argument is 'n tou, en ek noem dit noem. 290 00:15:31,000 --> 00:15:35,000 Nou laat ons kyk na hoe ons eintlik hierdie klas geïmplementeer. 291 00:15:35,000 --> 00:15:38,000 Hier, nou is ek binnekant van my m-lêer. 292 00:15:38,000 --> 00:15:40,000 m vir implementering, dink ek. 293 00:15:40,000 --> 00:15:44,000 Ek het my implementering, my einde, en dit is hier waar ek eintlik die definisie van 294 00:15:44,000 --> 00:15:47,000 watter initWithName nie. 295 00:15:47,000 --> 00:15:50,000 Ek het initWithName, die naam van my parameter, en dan is dit 296 00:15:50,000 --> 00:15:53,000 is waar ek eintlik 'n student te skep, 297 00:15:53,000 --> 00:15:56,000 en so dit is 'n bietjie kripties, maar dit is 'n soort van boiler 298 00:15:56,000 --> 00:15:58,000 wat jy wil in te sluit in jou vervaardigerskampioenskap. 299 00:15:58,000 --> 00:16:02,000 Hierdie inisialisering funksie hier initWithName, is 'n tipe van die constructor. 300 00:16:02,000 --> 00:16:05,000 Jy basies die bou van 'n nuwe student voorwerp 301 00:16:05,000 --> 00:16:07,000 en miskien die stuur van sommige data binnekant van dit. 302 00:16:07,000 --> 00:16:11,000 Die eerste ding wat ek wil doen is ek wil noem init op hierdie super ding. 303 00:16:11,000 --> 00:16:15,000 >> Onthou dat toe ek gesê het terug hier in die h-lêer. 304 00:16:15,000 --> 00:16:21,000 dat alles 'n NSObject het 'n student ook. 305 00:16:21,000 --> 00:16:24,000 Dit beteken dat wanneer ek 'n student wat ek nodig het om te doen is 306 00:16:24,000 --> 00:16:28,000 maak seker dat die NSObject dat ek al dat die data is erfgename van 307 00:16:28,000 --> 00:16:32,000 is ook behoorlik geïnisialiseer. 308 00:16:32,000 --> 00:16:36,000 Wat ek nodig het om te sê, is hierdie super eintlik gaan om te verwys na die ouer klas 309 00:16:36,000 --> 00:16:39,000 dat ek erf uit, so ek wil om seker te maak ek inisialiseer 310 00:16:39,000 --> 00:16:43,000 alles wat ek afhangende van voor ek begin probeer om dit te gebruik. 311 00:16:43,000 --> 00:16:46,000 Dan as dit geïnisialiseer korrek dit is net soos om te sê as malloc 312 00:16:46,000 --> 00:16:50,000 het nie weer null dan kan ek begin met die opstel van 'n paar eienskappe. 313 00:16:50,000 --> 00:16:54,000 >> In JavaScript en PHP het ons hierdie navraag genoem, 314 00:16:54,000 --> 00:16:58,000 en dit verwys na die huidige geval van 'n klas. 315 00:16:58,000 --> 00:17:00,000 In Objective-C noem ons dit self. 316 00:17:00,000 --> 00:17:04,000 Toe ek sê self.name, wat beteken dat die voorwerp 317 00:17:04,000 --> 00:17:07,000 Ek het nou net gemaak het toe ek gesê student alloc init, 318 00:17:07,000 --> 00:17:09,000 wat gaan my terug te gee 'n voorwerp. 319 00:17:09,000 --> 00:17:12,000 Dit beteken dat ek wil die naam van daardie voorwerp te stel 320 00:17:12,000 --> 00:17:15,000 alles wat ek net verby. 321 00:17:15,000 --> 00:17:18,000 Net soos in C, het ons toegang tot lede met hierdie dot, 322 00:17:18,000 --> 00:17:21,000 so self.name sê die naam van die student voorwerp 323 00:17:21,000 --> 00:17:24,000 gaan nou alles wat jy net verby. 324 00:17:24,000 --> 00:17:28,000 En uiteindelik, kan ek dit terug sodat ek eintlik iets terug te kry. 325 00:17:28,000 --> 00:17:30,000 >> Vrae? 326 00:17:30,000 --> 00:17:34,000 Okay, so dit self = super init, 327 00:17:34,000 --> 00:17:37,000 Moenie bekommerd wees as jy nie heeltemal die erfdeel dinge verstaan ​​nie. 328 00:17:37,000 --> 00:17:40,000 Weet net dat as jy ooit wil jou eie init metode om net 329 00:17:40,000 --> 00:17:42,000 doen, en jy sal goed wees om te gaan. 330 00:17:42,000 --> 00:17:44,000 Ja >> [Studente]. Wat doen as self gemiddelde? 331 00:17:44,000 --> 00:17:49,000 Dit beteken wanneer ons malloc iets wat ons altyd nagegaan word as dit was wat gelyk is aan null 332 00:17:49,000 --> 00:17:51,000 en as dit was null, dan is ons opgewonde. 333 00:17:51,000 --> 00:17:55,000 Dit is dieselfde ding, omdat indien dit opbrengste null, dan het ons is waarskynlik gaan om te seg skuld 334 00:17:55,000 --> 00:17:57,000 as ons begin probeer om dit te manipuleer. 335 00:17:57,000 --> 00:18:01,000 Dit is ons student klas. 336 00:18:01,000 --> 00:18:03,000 Dit beteken dat ons ons studente kan inisialiseer in een van twee maniere. 337 00:18:03,000 --> 00:18:08,000 As ek sê student alloc init ek nie met behulp van die metode wat ek net geskryf, 338 00:18:08,000 --> 00:18:11,000 en in plaas daarvan het ek kan net sê alice.name, 339 00:18:11,000 --> 00:18:14,000 en nou gaan ek daardie eiendom naam in te stel. 340 00:18:14,000 --> 00:18:17,000 >> Net so, as ek wil hê dat initWithName metode te gebruik 341 00:18:17,000 --> 00:18:20,000 Ek kan net sê alloc, en dan eerder as sê init 342 00:18:20,000 --> 00:18:24,000 Ek gaan dat die metode wat ek nou net gemaak het, te roep, en ek gaan om te slaag in Bob. 343 00:18:24,000 --> 00:18:30,000 Op hierdie punt, hierdie voorwerp Bob het 'n naam gelyk aan Bob. 344 00:18:30,000 --> 00:18:35,000 Okay, hier neer ek NSMutableArray wat ons verwag het vroeër gebruik. 345 00:18:35,000 --> 00:18:38,000 Ek toekenning space.Then ek die inisialisering van 'n nuwe skikking. 346 00:18:38,000 --> 00:18:40,000 Ek gaan 2 dinge by te voeg. 347 00:18:40,000 --> 00:18:43,000 Hierdie skikking hou nou student voorwerpe. 348 00:18:43,000 --> 00:18:46,000 Let op dat daar nêrens het ek het om te sê dit is 'n verskeidenheid van studente. 349 00:18:46,000 --> 00:18:48,000 Ek het gesê dit is 'n skikking, tydperk. 350 00:18:48,000 --> 00:18:50,000 Dan kan ek alles wat binnekant van dit wat ek wil. 351 00:18:50,000 --> 00:18:52,000 Hier het ek het 2 voorwerpe. 352 00:18:52,000 --> 00:18:56,000 >> Ten slotte, ek het 'n ander voorwerp hier, hierdie TF. 353 00:18:56,000 --> 00:18:59,000 Hier in TF.h basies dieselfde ding. 354 00:18:59,000 --> 00:19:01,000 Ek erfgename van NSObject, en op die pad, 355 00:19:01,000 --> 00:19:03,000 wanneer jy skep klasse dit is alles vir jou gedoen het, 356 00:19:03,000 --> 00:19:06,000 hierdie soort van die koppelvlak boiler. 357 00:19:06,000 --> 00:19:08,000 Dit het 'n eiendom van studente. 358 00:19:08,000 --> 00:19:15,000 Ek het hier 'n paar metodes wat nie regtig 'n hele klomp te doen, 359 00:19:15,000 --> 00:19:18,000 en so dit beteken dat nadat ek hierdie TF voorwerp 360 00:19:18,000 --> 00:19:23,000 Ek kan hierdie metode graad op dit noem soos hierdie. 361 00:19:23,000 --> 00:19:26,000 Enige vrae oor Objective-C sintaksis voordat ons begin beweeg in 'n paar meer 362 00:19:26,000 --> 00:19:30,000 interessante apps ontwikkeling stuff? 363 00:19:30,000 --> 00:19:34,000 >> Okay, so laat ons eintlik 'n iPhone app. 364 00:19:34,000 --> 00:19:39,000 Die kern klasse wat jy binne sal word deur gebruik te maak van jou iPhone app oog controllers genoem, 365 00:19:39,000 --> 00:19:42,000 en 'n oog kontroleerder verteenwoordig basies 'n enkele skerm 366 00:19:42,000 --> 00:19:46,000 binnekant van jou jeug, so as ek op die musiek app, byvoorbeeld, 367 00:19:46,000 --> 00:19:50,000 een oog kontroleerder kan verteenwoordig die mening wat ek sien al die liedjies op my iPhone. 368 00:19:50,000 --> 00:19:53,000 N ander siening kontroleerder kan wees wanneer ek op 'n lied en begin speel 369 00:19:53,000 --> 00:19:55,000 of as ek boor af in kunstenaars. 370 00:19:55,000 --> 00:19:59,000 Elk van daardie verskillende skerms kan voorgestel word as 'n ander siening kontroleerder, 371 00:19:59,000 --> 00:20:04,000 en 'n oog kontroleerder is regtig net 'n klas wat sê hoe hierdie skerm werk. 372 00:20:04,000 --> 00:20:07,000 Dinge binnekant van 'n oog kontroleerder, ons gaan om eienskappe te hê, 373 00:20:07,000 --> 00:20:10,000 so gaan dinge soos 'n knoppie op 'n eiendom van ons siening kontroleerder. 374 00:20:10,000 --> 00:20:13,000 >> Ons gaan ook metodes te hê, en dit is basies geval hanteerders. 375 00:20:13,000 --> 00:20:16,000 Hierdie metode sê wanneer jy druk die knoppie 376 00:20:16,000 --> 00:20:19,000 Ek wil om iets te doen, en uiteindelik, weer, 377 00:20:19,000 --> 00:20:24,000 ons gaan om te word deur gebruik te maak van hierdie self navraag om toegang te verkry tot die huidige geval. 378 00:20:24,000 --> 00:20:29,000 Koppelvlakke te bou in IOS is regtig, regtig maklik. 379 00:20:29,000 --> 00:20:32,000 Hulle het hierdie mooi sleep en koppelvlak genoem Interface Bouwer, 380 00:20:32,000 --> 00:20:37,000 en die 2 kernbegrippe wat draad up jou Objective-C Interface Bouwer 381 00:20:37,000 --> 00:20:40,000 is IBOutlet en IBAction. 382 00:20:40,000 --> 00:20:44,000 'N IBOutlet sê eenvoudig dat as jy verklaar 'n eiendom wat 'n knoppie, 383 00:20:44,000 --> 00:20:47,000 en jy wil dit te haak tot iets in jou werklike UI, 384 00:20:47,000 --> 00:20:49,000 jy gaan om te sê dit is 'n uitlaat. 385 00:20:49,000 --> 00:20:51,000 Net so, as jy wil 'n event handler te verteenwoordig 386 00:20:51,000 --> 00:20:54,000 dan is jy gaan om te sê dit is 'n aksie. 387 00:20:54,000 --> 00:20:57,000 >> Om werklik te bedraad hierdie grafiese voorstelling 388 00:20:57,000 --> 00:21:00,000 en jou kode is dit is regtig, regtig eenvoudig. 389 00:21:00,000 --> 00:21:03,000 As jy wil 'n IBOutlet aan te heg, al wat jy hoef te doen, is jy beheer kliek, 390 00:21:03,000 --> 00:21:05,000 en ons sal sien 'n voorbeeld van hierdie regtig vinnig. 391 00:21:05,000 --> 00:21:07,000 Jy het die beheer Kliek op die plek waar dit sê View Controller. 392 00:21:07,000 --> 00:21:09,000 Jy gaan in die koppelvlak te sleep, of omgekeerd, 393 00:21:09,000 --> 00:21:13,000 as jy wil om te haak tot 'n event handler jy gaan om te sleep van die koppelvlak 394 00:21:13,000 --> 00:21:15,000 in die ander rigting. 395 00:21:15,000 --> 00:21:20,000 Kom ons neem 'n blik op 'n baie eenvoudige IOS voorbeeld. 396 00:21:20,000 --> 00:21:23,000 >> Kom ons skep 'n nuwe projek. 397 00:21:23,000 --> 00:21:25,000 Ek gaan om te kom hier na Toepassing 398 00:21:25,000 --> 00:21:28,000 en ek gaan Single View Aansoek te kliek. 399 00:21:28,000 --> 00:21:31,000 Ek gaan om te kliek Volgende. Ek sal my projek 'n naam gee. 400 00:21:31,000 --> 00:21:33,000 Ek sal dit noem Hello. 401 00:21:33,000 --> 00:21:36,000 Interessant genoeg, het Apple veronderstel jy is die skep van 'n produk 402 00:21:36,000 --> 00:21:38,000 sodat jy kan dit verkoop en hulle kan geld maak. 403 00:21:38,000 --> 00:21:41,000 Down hier ek gaan om te sê dat hierdie is 'n iPhone app. 404 00:21:41,000 --> 00:21:44,000 Jy kan 'n iPad app skep, of as jy wil een van daardie programme te skep 405 00:21:44,000 --> 00:21:47,000 wat ondersteuning bied vir beide toestelle kan jy dit ook doen. 406 00:21:47,000 --> 00:21:49,000 Dit is wat jy wil hê jou regmerkies te lyk. 407 00:21:49,000 --> 00:21:51,000 >> Jy wil storieborde te gebruik, wat ons later sal sien, 408 00:21:51,000 --> 00:21:54,000 en jy beslis wil outomatiese verwysing tel te gebruik, 409 00:21:54,000 --> 00:21:58,000 wat is 'n mooi eienskap wat jou verhinder om te sê malloc en gratis. 410 00:21:58,000 --> 00:22:03,000 Tensy jy wil bel malloc en vry, sou ek hierdie afgegeven verlaat. 411 00:22:03,000 --> 00:22:07,000 Ek sal Klik op Volgende en laastens, dit gaan om my te vra waar ek wil om dit te red. 412 00:22:07,000 --> 00:22:14,000 Ek sal tref skep, en hier gaan ons. 413 00:22:14,000 --> 00:22:16,000 Ek het 'n nuwe projek. 414 00:22:16,000 --> 00:22:19,000 Hier aan die linkerkant is al die lêers wat is binnekant van my projek, 415 00:22:19,000 --> 00:22:22,000 en let op dat ek 'n hele klomp, en ek het nie eens iets te doen. 416 00:22:22,000 --> 00:22:24,000 IOS is 'n groot. 417 00:22:24,000 --> 00:22:27,000 >> Byvoorbeeld, hier ViewController.h, 418 00:22:27,000 --> 00:22:30,000 dit gaan my eerste siening kontroleerder te stel, 419 00:22:30,000 --> 00:22:32,000 sodat die eerste skerm binnekant van my app. 420 00:22:32,000 --> 00:22:34,000 Nou weet ons wat dit sê. 421 00:22:34,000 --> 00:22:36,000 Ons sê dat ek hierdie klas ViewController ek roep, 422 00:22:36,000 --> 00:22:40,000 en 'n ViewController doen alles wat 'n UIViewController doen, 423 00:22:40,000 --> 00:22:43,000 en dit, weer, is 'n paar klas dat Apple het geskryf dat 'n baie handige dinge vir ons 424 00:22:43,000 --> 00:22:46,000 soos vertoon op die skerm. 425 00:22:46,000 --> 00:22:50,000 Hier is waar ek kan eintlik begin met die definisie van wat my oog kontroleerder, 426 00:22:50,000 --> 00:22:52,000 en dit blyk dat ek regtig nodig het nie enige van hierdie. 427 00:22:52,000 --> 00:22:55,000 Dit is boiler-kode dat Apple gee my vir gratis. 428 00:22:55,000 --> 00:22:59,000 Ek het nodig dat die eerste reël, of Ek het nie 'n klas, 429 00:22:59,000 --> 00:23:02,000 sodat ons kan ontslae raak van daardie en ontslae te raak van hierdie. 430 00:23:02,000 --> 00:23:05,000 Okay, so dit is my leë skerm. 431 00:23:05,000 --> 00:23:08,000 >> Laat ons nou op hierdie MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 en dit is waar dit begin nou regtig interessant raak. 433 00:23:11,000 --> 00:23:14,000 Dit verteenwoordig die eerste skerm op my app. 434 00:23:14,000 --> 00:23:17,000 As ek wil 'n knoppie by te voeg in die HTML-Ek het 'n knoppie tag te skep. 435 00:23:17,000 --> 00:23:20,000 In Android jy het 'n knoppie tag te skep, 436 00:23:20,000 --> 00:23:23,000 maar in IOS as ek net neerdaal hier aan die onderkant regs 437 00:23:23,000 --> 00:23:27,000 en as ek kliek op hierdie 3de een hier waar dit sê voorwerpe, 438 00:23:27,000 --> 00:23:31,000 en ek kan scroll down of ek kan begin soek vir die knoppie. 439 00:23:31,000 --> 00:23:35,000 En kyk, 'n knoppie, so as ek eintlik sleep en drop hierdie reg daar, 440 00:23:35,000 --> 00:23:38,000 Ek het net 'n knoppie om hierdie skerm op my app. 441 00:23:38,000 --> 00:23:41,000 As ek wil die teks te verander, kan ek dit dubbel kliek, 442 00:23:41,000 --> 00:23:47,000 sê iets soos "aanlok Druk My." 443 00:23:47,000 --> 00:23:51,000 Okay, nou as ek loop hierdie inligting, sodat ons stel dit, 444 00:23:51,000 --> 00:23:54,000 so om dit uit te voer Ek kliek op die afspeel knoppie in die boonste linker, en daar is my app. 445 00:23:54,000 --> 00:23:58,000 Ek het nie iets te doen, en ek het 'n soet op soek na iPhone app. 446 00:23:58,000 --> 00:24:01,000 As ek wil om dit te stop, kan jy kliek op die stop knoppie 447 00:24:01,000 --> 00:24:03,000 want dit is meer pret. 448 00:24:03,000 --> 00:24:07,000 >> Kom ons sê dat ek eintlik wil iets om te gebeur wanneer ek druk die knoppie. 449 00:24:07,000 --> 00:24:09,000 Om dit te doen wat ek nodig het om te doen, is wat ek nodig het om te skep 450 00:24:09,000 --> 00:24:13,000 'n nuwe event handler of 'n aksie. 451 00:24:13,000 --> 00:24:16,000 Dit beteken dat ek nodig het om te skep 'n metode wat ek wil genoem word 452 00:24:16,000 --> 00:24:18,000 toe ek die knoppie druk, so laat ons skep 'n nuwe metode. 453 00:24:18,000 --> 00:24:20,000 Ek is binnekant van ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Ek nodig het om te sê dat 'n metode bestaan. 455 00:24:22,000 --> 00:24:26,000 Ek het 'n koppelteken eerste omdat ek gaan roep dit op die oog kontroleerder. 456 00:24:26,000 --> 00:24:28,000 Ek nodig het om te gee dit 'n tipe. 457 00:24:28,000 --> 00:24:31,000 Die soort van hierdie gaan dat IBAction ding wat ons vroeër gesien het. 458 00:24:31,000 --> 00:24:35,000 Dit is 'n event handler, so dit gaan 'n IBAction om terug te keer, 459 00:24:35,000 --> 00:24:38,000 en dit is 'n wenk te Xcode om te sê dat 460 00:24:38,000 --> 00:24:40,000 dit is iets wat ek wil iets te bedraad. 461 00:24:40,000 --> 00:24:45,000 Ek kan gee dit 'n naam, soos buttonPressed, kommapunt. 462 00:24:45,000 --> 00:24:48,000 >> Nou het ek 'n nuwe metode binnekant van my klas verklaar. 463 00:24:48,000 --> 00:24:50,000 Ek het gesê dat hierdie metode het om te bestaan. 464 00:24:50,000 --> 00:24:53,000 Nou laat kom in ViewController.m, 465 00:24:53,000 --> 00:24:56,000 en laat ons sê wat hierdie metode kan doen. 466 00:24:56,000 --> 00:25:03,000 As ek begin tik, byvoorbeeld, (void) buttonPressed 467 00:25:03,000 --> 00:25:06,000 kennisgewing Xcode is regtig mooi en vir my autocompletes. 468 00:25:06,000 --> 00:25:09,000 Dit is regtig wonderlik. 469 00:25:09,000 --> 00:25:12,000 Let op dat die binnekant van die m lêer Ek kan ook sê nietig, 470 00:25:12,000 --> 00:25:15,000 en dit is omdat dat IBAction is nie eintlik 'n tipe. 471 00:25:15,000 --> 00:25:19,000 Dit is eintlik hashtag iewers gedefinieer om 'n leemte te wees, 472 00:25:19,000 --> 00:25:22,000 en weer, dit is net 'n wenk te Xcode wat sê 473 00:25:22,000 --> 00:25:25,000 Ek wil dit 'n event handler wees, en ons sal sien waarom net 'n tweede. 474 00:25:25,000 --> 00:25:28,000 Wanneer hierdie knoppie gedruk word Ek gaan iets irriterende te doen 475 00:25:28,000 --> 00:25:30,000 soos vertoon 'n pop-up. 476 00:25:30,000 --> 00:25:35,000 >> Te doen wat ek kan 'n nuwe geval van hierdie klas genoem UIAlertView skep, 477 00:25:35,000 --> 00:25:39,000 en dit is 'n klas wat Apple het geskryf dat gaan irriterende "pop-ups te vertoon. 478 00:25:39,000 --> 00:25:43,000 Ons sal die pop-up waarskuwing noem, en ek het 2 stappe, onthou, die skep van hierdie item. 479 00:25:43,000 --> 00:25:46,000 Die eerste ding wat ek nodig het om te doen, is die toekenning van ruimte. 480 00:25:46,000 --> 00:25:48,000 Ek wil 'n UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Ek wil ruimte toe te ken. Dit is my eerste metode. 482 00:25:51,000 --> 00:25:53,000 My volgende metode is wat ek wil om dit te inisialiseer, 483 00:25:53,000 --> 00:25:58,000 en so ek het hierdie groot, lang metode genoem initWithTitle. 484 00:25:58,000 --> 00:26:01,000 Dit is basies gaan om te beheer wat hierdie popup sê. 485 00:26:01,000 --> 00:26:04,000 Die titel van my popup kan hallo. 486 00:26:04,000 --> 00:26:08,000 Die boodskap van hierdie popup kan wees "Dit is IOS." 487 00:26:08,000 --> 00:26:10,000 Afgevaardigde ding, ek weet nie wat dit is nie. 488 00:26:10,000 --> 00:26:13,000 Kom ons sê dit is niks. 489 00:26:13,000 --> 00:26:18,000 Nou is die knoppie wat gaan verskyn kan sê iets soos "dit is verseker," 490 00:26:18,000 --> 00:26:24,000 en ek wil nie regtig enige ander knoppies, so laat verwyder en maak die bracket. 491 00:26:24,000 --> 00:26:27,000 >> Okay, ek het 'n ekstra een geskep. Daar gaan ons. 492 00:26:27,000 --> 00:26:30,000 Dit is hoe ek kan 'n nuwe pop te skep. 493 00:26:30,000 --> 00:26:35,000 As ek wil eintlik toon die popup Ek wil die show metode te roep. 494 00:26:35,000 --> 00:26:38,000 Te doen wat ek kan sê waarskuwing en toon, 495 00:26:38,000 --> 00:26:40,000 en weer outomaties was super nice. 496 00:26:40,000 --> 00:26:42,000 As ek het vergeet wat dit was, as ek net in s getik, 497 00:26:42,000 --> 00:26:45,000 Ek kan blaai deur hier om uit te vind wat dit was, 498 00:26:45,000 --> 00:26:48,000 en filters mooi. 499 00:26:48,000 --> 00:26:52,000 Nou het ek hierdie nuwe pop. 500 00:26:52,000 --> 00:26:55,000 Ons sal later terug te kom na wat afgevaardigde beteken, 501 00:26:55,000 --> 00:26:58,000 en nou wil ek om te sê dat ek wil jy hierdie metode afgedank word 502 00:26:58,000 --> 00:27:01,000 toe ek die knoppie druk, so ek gaan om terug te kom na my storielyn, 503 00:27:01,000 --> 00:27:04,000 en ek wil te heg dit IBAction. 504 00:27:04,000 --> 00:27:06,000 Die eerste ding wat jy wil doen is kliek op die knoppie. 505 00:27:06,000 --> 00:27:08,000 Wanneer ek druk die knoppie Ek wil iets om te gebeur. 506 00:27:08,000 --> 00:27:10,000 Ek gaan nie af te hou beheer. 507 00:27:10,000 --> 00:27:13,000 Ek gaan om van die knoppie te kliek en sleep 508 00:27:13,000 --> 00:27:15,000 hier waar dit sê View Controller. 509 00:27:15,000 --> 00:27:17,000 Ons kan sien dat dit mooi steek. 510 00:27:17,000 --> 00:27:22,000 >> As ek laat gaan met my muis Ek het nou hierdie popup hier waar ek het 'n paar opsies. 511 00:27:22,000 --> 00:27:24,000 Een van hierdie is die gebeure wat ek kan registreer. 512 00:27:24,000 --> 00:27:28,000 Dit is al van die metodes wat ek in my h lêer as IBActions verklaar. 513 00:27:28,000 --> 00:27:31,000 Dit is hoe Xcode weet wat moet verskyn in hierdie klein lys, 514 00:27:31,000 --> 00:27:33,000 so dit is net 'n wenk. 515 00:27:33,000 --> 00:27:37,000 As ek kliek op die knoppie gedruk, ek het nou die event handler geregistreer. 516 00:27:37,000 --> 00:27:41,000 In JavaScript ons het om te sê ek het 'n paar kode wat die event handler geregistreer. 517 00:27:41,000 --> 00:27:43,000 In Objective-C was dit regtig so maklik nie. 518 00:27:43,000 --> 00:27:46,000 As ek loop dit weer 519 00:27:46,000 --> 00:27:49,000 nou wanneer ek die knoppie druk my event handler gaan om te brand, 520 00:27:49,000 --> 00:27:51,000 en ek gaan die pop-up te kry. 521 00:27:51,000 --> 00:27:54,000 Super, super eenvoudige daar. 522 00:27:54,000 --> 00:27:57,000 >> As jy ooit wil al van die gebeure wat geregistreer moet word om te sien 523 00:27:57,000 --> 00:28:00,000 op 'n komponent as ek kliek op hierdie knoppie 524 00:28:00,000 --> 00:28:02,000 en Ek kom hier aan die regterkant 525 00:28:02,000 --> 00:28:05,000 die eerste wat jy hier kan sien ek dinge kan doen soos die tipe van die knoppie, 526 00:28:05,000 --> 00:28:08,000 so as jy wil een van wat ek se of die add kontak knoppie 527 00:28:08,000 --> 00:28:10,000 of wat ookal. 528 00:28:10,000 --> 00:28:13,000 As ek wil al van die gebeure wat op hierdie knoppie om te sien 529 00:28:13,000 --> 00:28:16,000 as ek kom al die pad hier na die regte kant 530 00:28:16,000 --> 00:28:19,000 ons hier kan sien op die gebeure Ek het al hierdie verskillende gebeurtenisse. 531 00:28:19,000 --> 00:28:23,000 Kan ek die knoppie druk, toe ek laat gaan van die knoppie, as ek dubbel tap of wat ook al, 532 00:28:23,000 --> 00:28:26,000 en die een wat ek net geregistreer is hierdie gebeurtenis genaamd Touch Up Inside, 533 00:28:26,000 --> 00:28:29,000 en dit sê dat sodra my vinger kom die knoppie af 534 00:28:29,000 --> 00:28:32,000 daardie geval gaan die vuur, en dit is presies wat nou net gebeur. 535 00:28:32,000 --> 00:28:36,000 Dit is 'n soort van die standaard-knoppie gedruk gebeurtenis. 536 00:28:36,000 --> 00:28:39,000 >> Enige vrae tot dusver? 537 00:28:39,000 --> 00:28:43,000 Goed, dit is hoe ons kan begin om te bedraad dinge in ons kode 538 00:28:43,000 --> 00:28:46,000 in dinge binnekant van ons koppelvlak. 539 00:28:46,000 --> 00:28:49,000 Onthou die eerste ding wat ons moes doen, was om die kode te vind, 540 00:28:49,000 --> 00:28:54,000 en dan het ons bedraad die koppelvlak na die kode, 541 00:28:54,000 --> 00:28:57,000 en daar is ons eerste app. 542 00:28:57,000 --> 00:29:00,000 Goed, dit was regtig cool, en ons geskep hierdie knoppie. 543 00:29:00,000 --> 00:29:03,000 Wat gebeur as ons nie wil hê om 'n klomp van eiendomme te skep 544 00:29:03,000 --> 00:29:05,000 verteenwoordig hierdie knoppies? 545 00:29:05,000 --> 00:29:08,000 Byvoorbeeld, in Tic Tac Toe Ek het 9 knoppies, 546 00:29:08,000 --> 00:29:11,000 en dit sou wees super, super irriterende te hê om te sleep en 9 keer 547 00:29:11,000 --> 00:29:14,000 of as ek moes Tic Tac Toe te maak met 81 in plaas van 9 548 00:29:14,000 --> 00:29:17,000 en ek het 81 keer te sleep en te daal, en dit is lame. 549 00:29:17,000 --> 00:29:20,000 Wat kan ons plaas doen, is baie soos 'n HTML 550 00:29:20,000 --> 00:29:23,000 wanneer ons dinge soos ID's en name gehad het en ons kan soek vir dinge 551 00:29:23,000 --> 00:29:27,000 deur hul ID, daar is 'n soortgelyke idee in IOS tags genoem. 552 00:29:27,000 --> 00:29:31,000 >> 'N tag is eenvoudig 'n unieke numeriese identifiseerder vir 'n komponent. 553 00:29:31,000 --> 00:29:34,000 As ek sê dit het 'n merker van 0, byvoorbeeld, 554 00:29:34,000 --> 00:29:38,000 as ek 'n knoppie en gee dit 'n merker van 0, en ons sal sien hoe om dit te doen in net 'n tweede, 555 00:29:38,000 --> 00:29:41,000 as ek wil hê dat die knoppie te kry, kan ek net sê ek wil om te bel 556 00:29:41,000 --> 00:29:45,000 die viewWithTag metode hier op die voorwerp, 557 00:29:45,000 --> 00:29:48,000 die self.view, wat verteenwoordig die huidige skerm, byvoorbeeld. 558 00:29:48,000 --> 00:29:53,000 As ek noem dat viewWithTag metode, ek gaan om te trek terug die knoppie met tag 0. 559 00:29:53,000 --> 00:29:58,000 Kom ons neem 'n blik op hierdie gebou Tic Tac Toe. 560 00:29:58,000 --> 00:30:01,000 Eerstens, dit is my storielyn. 561 00:30:01,000 --> 00:30:05,000 Ek het hierdie 10 UI knoppies geskep. 562 00:30:05,000 --> 00:30:07,000 Let op hulle is almal dieselfde grootte. 563 00:30:07,000 --> 00:30:11,000 As ek op een van hulle en ek kom terug hier op die regterkant 564 00:30:11,000 --> 00:30:15,000 jy sal sien ek die skrif aangepas reg hier, so ek het die skrif 'n bietjie groter, 565 00:30:15,000 --> 00:30:19,000 maar wat ek ook gedoen het was ek hierdie merker. 566 00:30:19,000 --> 00:30:23,000 Ek het gesê dat dit 'n tag van 1, en dit is die boonste linkerkantste. 567 00:30:23,000 --> 00:30:26,000 >> Nou, as ek op 'n ander knoppie, soos hierdie tweede een hier, 568 00:30:26,000 --> 00:30:29,000 nou sal jy sien dat my tag is 2. 569 00:30:29,000 --> 00:30:32,000 Elkeen van hierdie knoppies het net 'n unieke tag, 570 00:30:32,000 --> 00:30:35,000 en so is dit hoe later ek gaan om te begin interaksie 571 00:30:35,000 --> 00:30:38,000 met my app. 572 00:30:38,000 --> 00:30:40,000 Dit is al die binnekant van een siening kontroleerder, 573 00:30:40,000 --> 00:30:42,000 maar hier is wat ons het. 574 00:30:42,000 --> 00:30:44,000 Ons het 3 eiendomme hier. 575 00:30:44,000 --> 00:30:49,000 Die eerste een en die laaste een is die toestand van my raad te verteenwoordig. 576 00:30:49,000 --> 00:30:53,000 Basies is hierdie eerste een is 'n skikking waar die XS en Os is. 577 00:30:53,000 --> 00:30:57,000 Die ander een vertel ons wie se beurt dit is. 578 00:30:57,000 --> 00:31:01,000 Jy sal sien dat ek ook hierdie dinge hier. 579 00:31:01,000 --> 00:31:05,000 Voor wanneer ons eiendomme verklaar ons het vir hulle 'n naam en 'n tipe. 580 00:31:05,000 --> 00:31:08,000 Ons kan hulle ook 'n paar ekstra inligting hier. 581 00:31:08,000 --> 00:31:11,000 Die eerste sê nonatomic, en wat dit sê 582 00:31:11,000 --> 00:31:16,000 net een ding is basies ooit sal probeer word om hierdie veranderlike op 'n tyd om toegang te verkry tot. 583 00:31:16,000 --> 00:31:19,000 Jy kan doen om meer komplekse toepassings wat multi-threaded, 584 00:31:19,000 --> 00:31:22,000 en so terug in die Scratch ons verskillende drade gehad het, 585 00:31:22,000 --> 00:31:25,000 en verskillende sprites kan doen verskillende dinge op dieselfde tyd. 586 00:31:25,000 --> 00:31:29,000 >> As dit is nie die geval nie, en dit is nie iets wat ons sal kyk na, 587 00:31:29,000 --> 00:31:33,000 as ons sê nonatomic dit eintlik gaan maak dinge 'n bietjie vinniger. 588 00:31:33,000 --> 00:31:37,000 Ons het ook hierdie ding genoem assign, sterk of swak. 589 00:31:37,000 --> 00:31:40,000 Hierdie toewys sê net dat dit is 'n standaard tipe. 590 00:31:40,000 --> 00:31:43,000 Dit is nie 'n voorwerp of 'n wyser, want dit is net 'n Bool, 591 00:31:43,000 --> 00:31:46,000 so Bool is gebou in Objective-C. 592 00:31:46,000 --> 00:31:49,000 Dit sê nie probeer om enigiets fancy met wysers hier te doen. 593 00:31:49,000 --> 00:31:51,000 Dit is 'n gereelde ou scaler. 594 00:31:51,000 --> 00:31:54,000 Sterk en swak, swak sê dat eintlik 595 00:31:54,000 --> 00:31:57,000 Ek wil om dit te wys word om iets in die oog kontroleerder. 596 00:31:57,000 --> 00:32:00,000 Ek gaan nie om werklik te ken of init dit self. 597 00:32:00,000 --> 00:32:04,000 Die koppelvlak bouer, toe ek die app hardloop, gaan alles wat inisialisering te hanteer. 598 00:32:04,000 --> 00:32:07,000 As ek sê swak, wat sê dat iemand anders gaan word die skep van hierdie. 599 00:32:07,000 --> 00:32:09,000 As ek sê 'n sterk, dit sê dat ek gaan die een wees wat 600 00:32:09,000 --> 00:32:12,000 wat die skep van hierdie raad voorwerp, 601 00:32:12,000 --> 00:32:14,000 en so hier is ek nog 'n aantal metodes, 602 00:32:14,000 --> 00:32:18,000 byvoorbeeld, 'n aksie vir wanneer die nuwe spel knoppie gedruk word, 603 00:32:18,000 --> 00:32:20,000 'n aksie vir wanneer enige van die ander knoppies is gedruk, 604 00:32:20,000 --> 00:32:23,000 en ensovoorts. 605 00:32:23,000 --> 00:32:26,000 >> Ons sal nie in te veel van die logika van Tic Tac Toe, 606 00:32:26,000 --> 00:32:30,000 maar dit is baie opwindend, maar laat ons 'n blik op 607 00:32:30,000 --> 00:32:33,000 sommige van die dinge wat ons kan doen binnekant van IOS. 608 00:32:33,000 --> 00:32:35,000 Hierdie nuwe spel metode gaan word afgedank 609 00:32:35,000 --> 00:32:37,000 wanneer ek die nuwe spel knoppie druk. 610 00:32:37,000 --> 00:32:41,000 Te haak dat het ek net te kom na my storielyn. 611 00:32:41,000 --> 00:32:43,000 Ek het op 'n nuwe spel. 612 00:32:43,000 --> 00:32:47,000 As Ek kom hier aan die regterkant Ek kan sien dat 613 00:32:47,000 --> 00:32:50,000 Raak Up Inside is bedraad aan die newGame metode. 614 00:32:50,000 --> 00:32:53,000 Dit is waarom dit gaan kry afgevuur. 615 00:32:53,000 --> 00:32:56,000 Die newGame metode gaan stel om te doen. 616 00:32:56,000 --> 00:32:59,000 Dit gaan om te sê ek wil hê dat jy skoon te maak van die stand van die raad. 617 00:32:59,000 --> 00:33:01,000 Dit is 'n mooi metode op wispelturig skikkings. 618 00:33:01,000 --> 00:33:03,000 Dit gaan om te sê dit is nou X se beurt, 619 00:33:03,000 --> 00:33:07,000 en nou gaan ek voordeel te neem van hierdie viewWithTag ding. 620 00:33:07,000 --> 00:33:11,000 >> Ek weet dat my knoppies die tags 1-9, 621 00:33:11,000 --> 00:33:13,000 en dit is iets wat ek na willekeur gekies. 622 00:33:13,000 --> 00:33:15,000 As ek wil die teks van elke knoppie te stel om leeg te wees 623 00:33:15,000 --> 00:33:17,000 want ek het net begin 'n nuwe spel, en ek wil nie 624 00:33:17,000 --> 00:33:20,000 Xs of Os oorbly Ek kan dit doen. 625 00:33:20,000 --> 00:33:24,000 Ek kan sê ek wil die oog met die tag, 1, 2, 3, 4 ensovoorts. 626 00:33:24,000 --> 00:33:27,000 Dit sal 'n ander knoppie trek elke keer. 627 00:33:27,000 --> 00:33:30,000 Hier is ek gaan dit te gooi UIButton. 628 00:33:30,000 --> 00:33:33,000 Net soos ons kan gooi ints te dryf en vice versa 629 00:33:33,000 --> 00:33:37,000 dit sê wat ek wil om dit te gooi na 'n UIButton. 630 00:33:37,000 --> 00:33:40,000 Dit beteken dat die tipe van 'n UIButton * 631 00:33:40,000 --> 00:33:43,000 as gevolg van wysers, maar moenie worry nie, hulle is nie scary nie. 632 00:33:43,000 --> 00:33:47,000 >> Sodra ek hierdie knoppie Ek gaan 'n metode om 'n beroep op dit. 633 00:33:47,000 --> 00:33:50,000 Hierdie metode word genoem setTitle forState, en so dit sê 634 00:33:50,000 --> 00:33:53,000 Ek wil die teks van die knoppie in te stel na die leë string wees, 635 00:33:53,000 --> 00:33:57,000 en ek wil dit na die leë string wanneer dit nie gedruk wees. 636 00:33:57,000 --> 00:34:01,000 As ek die gebruik van hierdie metode, kan ek die teks van die knoppie te verander 637 00:34:01,000 --> 00:34:04,000 sodra iemand tref, maar ons wil sê wanneer die knoppie is net daar sit 638 00:34:04,000 --> 00:34:07,000 Ek wil die teks te leeg wees. 639 00:34:07,000 --> 00:34:10,000 Ten slotte, ons gaan my raad te inisialiseer, 640 00:34:10,000 --> 00:34:12,000 en ek gaan om te sê dat alles is tans 0, 641 00:34:12,000 --> 00:34:15,000 sodat hierdie bord lede onveranderlik is 'n wispelturig skikking, 642 00:34:15,000 --> 00:34:21,000 wat beteken ek kan die addObject metode en noem net 'n 0 binnekant van dit. 643 00:34:21,000 --> 00:34:23,000 Dit is wat gebeur wanneer ek 'n nuwe spel. 644 00:34:23,000 --> 00:34:25,000 >> Kom ons neem 'n blik op 'n ander een. 645 00:34:25,000 --> 00:34:28,000 Hierdie metode is hier die IBAction wat gedruk gaan word 646 00:34:28,000 --> 00:34:31,000 elke keer as een van daardie blokkies gedruk word. 647 00:34:31,000 --> 00:34:33,000 Nou het ons 'n paar Tic Tac Toe logika hier. 648 00:34:33,000 --> 00:34:36,000 Ons uitvind wie se beurt dit is, 649 00:34:36,000 --> 00:34:39,000 en gebaseer op wat ons óf 'n X of 'n O, 650 00:34:39,000 --> 00:34:43,000 maar ons sien dat ons hierdie selfde event handler is hergebruik 651 00:34:43,000 --> 00:34:45,000 vir elke enkele een van die knoppies. 652 00:34:45,000 --> 00:34:49,000 Dit beteken dat ek nie 'n metode vir die boonste linkerkantste knoppie, 653 00:34:49,000 --> 00:34:52,000 'n ander metode vir die onderste regterkantste knoppie, maar ek kon gedoen het. 654 00:34:52,000 --> 00:34:54,000 Dit sou werklik nie goeie ontwerp. 655 00:34:54,000 --> 00:34:57,000 Wat ek hier doen, is ek eintlik gaan om vas te stel 656 00:34:57,000 --> 00:35:00,000 wat die etiket van die knoppie wat gedruk is. 657 00:35:00,000 --> 00:35:04,000 Jy agterkom dat hierdie drama metode neem een ​​argument. 658 00:35:04,000 --> 00:35:07,000 Dit is genoem sender, en watter sender is sender gaan 659 00:35:07,000 --> 00:35:10,000 stel presies watter stappe gedoen is op. 660 00:35:10,000 --> 00:35:15,000 As ek 'n knoppie druk, is hierdie sender te wees dat UIButton 661 00:35:15,000 --> 00:35:18,000 dat ek eintlik gedruk, so dit beteken dat UIButton 662 00:35:18,000 --> 00:35:20,000 het 'n tag, want ek het 'n tag. 663 00:35:20,000 --> 00:35:23,000 >> As ek wil kry by die tag, ek kan net sê 664 00:35:23,000 --> 00:35:26,000 Ek wil die etiket van die sender, 665 00:35:26,000 --> 00:35:28,000 en weer, ek het net gegote dit na 'n UIButton. 666 00:35:28,000 --> 00:35:32,000 Ek gebeur om te weet wat die sender sal 'n UIButton wees. 667 00:35:32,000 --> 00:35:34,000 Dit hoef nie altyd te 'n UIButton wees. 668 00:35:34,000 --> 00:35:36,000 Ek kon, byvoorbeeld, dieselfde event handler 669 00:35:36,000 --> 00:35:38,000  vir een vir 'n knoppie, een vir 'n schuifbalk. 670 00:35:38,000 --> 00:35:40,000 In hierdie geval, ek weet hulle is al die knoppies, so ek gaan om te sê 671 00:35:40,000 --> 00:35:43,000 Ek wil dit 'n knoppie, en dan kan ek die tag, 672 00:35:43,000 --> 00:35:48,000 en van die tag ek nou weet waar ek is binnekant van die raad. 673 00:35:48,000 --> 00:35:51,000 Dan kan ek eenvoudig stel die X of die O, kan die draai flip, 674 00:35:51,000 --> 00:35:54,000 seker wat, ensovoorts het. 675 00:35:54,000 --> 00:35:59,000 >> Enige vrae oor dit so ver? 676 00:35:59,000 --> 00:36:02,000 Okay, al die kode wat ons opgelaai aanlyn ons wil nie te kry in te veel 677 00:36:02,000 --> 00:36:06,000 van die Tic Tac Toe logika, maar nou kan jy sien wat werklik 678 00:36:06,000 --> 00:36:09,000 al wat ons doen is ons herhaling oor hierdie skikking, 679 00:36:09,000 --> 00:36:13,000 so ons het 'n paar vir loops hier, en ons is net te vergelyk om te sien 680 00:36:13,000 --> 00:36:18,000 het ons nie 'n wedstryd in al die rye, 'n wedstryd in 'n kolom of iets soos dit. 681 00:36:18,000 --> 00:36:21,000 Om werklik te loop hierdie inligting, as ek tik op een van hierdie knoppies 682 00:36:21,000 --> 00:36:24,000 dat die spel metode is afgevuur, so dit beteken dat ek net sit 683 00:36:24,000 --> 00:36:31,000 die knoppie om 'n X, so moet julle nou hierdie knoppie sal wees 'n O, en so aan, 684 00:36:31,000 --> 00:36:35,000 en so dit is hoe ons begin met hierdie enkele bladsy app. 685 00:36:35,000 --> 00:36:38,000 >> Ons sal die kode post, so voel vry om te lees, 686 00:36:38,000 --> 00:36:43,000 maar laat ons nou praat oor 'n paar programme wat is meer as net een bladsy. 687 00:36:43,000 --> 00:36:47,000 So opwindend soos Tic Tac Toe was, 'n baie van die apps binnekant van IOS 688 00:36:47,000 --> 00:36:50,000 is soort van hierdie boor af dinge met verskeie skerms. 689 00:36:50,000 --> 00:36:54,000 Die eerste konsep wat ons nodig het om oor te praat is protokolle, 690 00:36:54,000 --> 00:36:57,000 en 'n protokol is bloot 'n stel metodes 691 00:36:57,000 --> 00:36:59,000 dat jy kan jou belowe om te definieer. 692 00:36:59,000 --> 00:37:02,000 As ek skep hierdie nuwe protokol met 2 metodes, hierdie eerste een, 693 00:37:02,000 --> 00:37:05,000 indien die opgawe tipe is nietig, ek noem dit cat. 694 00:37:05,000 --> 00:37:07,000 Dit neem geen argumente nie. Ek het 'n ander metode. 695 00:37:07,000 --> 00:37:11,000 Dit gee 'n int. Ek noem dit bar, en dit neem een ​​argument. 696 00:37:11,000 --> 00:37:14,000 Al hierdie protokol is dat SomeProtocol genoem hier, 697 00:37:14,000 --> 00:37:19,000 dit is 'n stel van die dinge wat iemand kan implementeer. 698 00:37:19,000 --> 00:37:22,000 Ek binnekant van hierdie protokol het nie gesê wat foo doen. 699 00:37:22,000 --> 00:37:26,000 In plaas daarvan, is ek net sê dat jy foo kan definieer as jy wil. 700 00:37:26,000 --> 00:37:30,000 As ek die skep van 'n oog kontroleerder of die skep van 'n klas 701 00:37:30,000 --> 00:37:33,000 Ek kan binnekant van daardie klas belofte te implementeer 702 00:37:33,000 --> 00:37:40,000 sommige van hierdie metodes, so byvoorbeeld, indien sê 703 00:37:40,000 --> 00:37:43,000 dit sê nou Ek het 'n belofte is vir julle wat binne 704 00:37:43,000 --> 00:37:50,000 Ek sal van hierdie siening kontroleerder klas definisies vir beide foo en 'n bar. 705 00:37:50,000 --> 00:37:52,000 >> Hoekom is dit nuttig? 706 00:37:52,000 --> 00:37:55,000 'N baie van die komponente binnekant van IOS neem voordeel van hierdie 707 00:37:55,000 --> 00:37:58,000 ontwerp patroon genoem delegasie, en wat die afvaardiging sê 708 00:37:58,000 --> 00:38:01,000 is dat, byvoorbeeld, as ek 'n tekskassie 709 00:38:01,000 --> 00:38:04,000 en daar is 'n paar gebeure wat binnekant van my tekskassie geregistreer kon word, 710 00:38:04,000 --> 00:38:07,000 eerder as die skep van afsonderlike gebeurtenisse wat ek kan doen wat ek kan sê 711 00:38:07,000 --> 00:38:10,000 die afgevaardigde van hierdie teksboks sal 'n voorwerp. 712 00:38:10,000 --> 00:38:13,000 Wanneer ek sê dat dit 'n afgevaardigde nou wat beteken dat 713 00:38:13,000 --> 00:38:16,000 wanneer 'n gebeurtenis afgedank sou gewees het in die tekskassie 714 00:38:16,000 --> 00:38:18,000 eerder as om dit te registreer of iets soos dit 715 00:38:18,000 --> 00:38:21,000 dit net gaan om 'n metode te roep op die afgevaardigde. 716 00:38:21,000 --> 00:38:24,000 Byvoorbeeld, binnekant van my tekskassie Ek het 'n metode vir wanneer ek 717 00:38:24,000 --> 00:38:27,000 dit gedoen knoppie in die onderste regterkantste, 718 00:38:27,000 --> 00:38:30,000 en so eerder as om te registreer event handler wat ek kan sê is 719 00:38:30,000 --> 00:38:34,000 tekskassie, hier is 'n voorwerp wat Ek wil hê dat jy 'n metode om 'n beroep op 720 00:38:34,000 --> 00:38:37,000 elke keer as iemand druk op die knoppie "Klaar", 721 00:38:37,000 --> 00:38:40,000 en dit beteken dat die voorwerp 'n protokol te implementeer 722 00:38:40,000 --> 00:38:45,000 wat sê ek belowe dat gedoen "knoppie aksie te definieer, 723 00:38:45,000 --> 00:38:47,000 want as dit nie bepaal dat die metode en jy druk gedoen het, 724 00:38:47,000 --> 00:38:49,000 dan is dit gaan verwarrend wees. 725 00:38:49,000 --> 00:38:55,000 >> Kom ons neem 'n blik op 'n voorbeeld. 726 00:38:55,000 --> 00:38:58,000 Hier is ek net 'n tekskassie, 727 00:38:58,000 --> 00:39:04,000 en een van die eienskappe van hierdie teks boks hier op die regterkant is die afgevaardigde. 728 00:39:04,000 --> 00:39:06,000 Dit is 'n eienskap van die klas. 729 00:39:06,000 --> 00:39:09,000 Wat ek hier gedoen het is ek beheer gekliek, en ek van hierdie plek gesleep hier 730 00:39:09,000 --> 00:39:13,000 die siening kontroleerder, en dit sê nou die afgevaardigde van hierdie teks boks 731 00:39:13,000 --> 00:39:18,000 gaan die oog kontroleerder. 732 00:39:18,000 --> 00:39:20,000 Dit beteken dat wanneer 'n paar stappe gebeur, eerder as om te registreer 733 00:39:20,000 --> 00:39:25,000 aparte gebeurtenis hanteerders Ek wil jou om dit te stuur aan die afgevaardigde. 734 00:39:25,000 --> 00:39:28,000 Nou laat ons neem 'n blik op my mening kontroleerder. 735 00:39:28,000 --> 00:39:32,000 Binnekant van die h-lêer Ek het 'n belofte gemaak. 736 00:39:32,000 --> 00:39:36,000 Ek het belowe om 'n paar metodes te implementeer binnekant van hierdie protokol 737 00:39:36,000 --> 00:39:38,000 genoem UITextFieldDelegate, en weer, 738 00:39:38,000 --> 00:39:42,000 dit is net 'n lys van 'n paar dinge wat ek kan kies om te implementeer. 739 00:39:42,000 --> 00:39:46,000 >> As ek hier kom in my m lêer, het ek een so 'n metode geïmplementeer. 740 00:39:46,000 --> 00:39:49,000 Ek het dit genoem: textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 want dit is wat dit genoem is binnekant van die protokol. 742 00:39:52,000 --> 00:39:57,000 En nou wanneer ek druk die knoppie "Klaar" binnekant van die teks veld 743 00:39:57,000 --> 00:40:00,000 dit is wat geroep gaan kry, so ek het nie 'n event handler. 744 00:40:00,000 --> 00:40:03,000 Ek verbind die gedelegeerde, en wanneer hierdie gebeurtenis is afgedank 745 00:40:03,000 --> 00:40:08,000 Dit is die metode wat genoem sal raak, so as ek kom hier na my storyboard en voer dit uit- 746 00:40:08,000 --> 00:40:11,000 Terwyl dit is laai ons kan sien wat dit beteken. 747 00:40:11,000 --> 00:40:13,000 Op my skerm Ek het 2 dinge. 748 00:40:13,000 --> 00:40:16,000 Ek het hierdie teks veld, en ek het hierdie etiket. 749 00:40:16,000 --> 00:40:19,000 Ek net sê ek wil die teks van hierdie etiket 750 00:40:19,000 --> 00:40:23,000 te wees gelyk aan wat die gebruiker in die binnekant van die teks veld getik. 751 00:40:23,000 --> 00:40:26,000 Hierdie volgende reël hier is eenvoudig 'n metode wat ek vra 752 00:40:26,000 --> 00:40:29,000 op die teks veld wat sê ek wil hê dat jy die sleutelbord om weg te steek. 753 00:40:29,000 --> 00:40:33,000 Dit is net die arbitrêre metode wat Apple verkies. 754 00:40:33,000 --> 00:40:38,000 >> Weereens, voordat ek enigiets wat ek het alles te bedraad het, sodat ek die eerste keer hier. 755 00:40:38,000 --> 00:40:42,000 Uit die oog kontroleerder Ek sleep oor na die tekskassie. 756 00:40:42,000 --> 00:40:46,000 Ek laat gaan, en ek kan hier sien dat ek kan die teks veld eiendom 757 00:40:46,000 --> 00:40:49,000 sedert meer as hier in die oog kontroleerder Ek het 'n eiendom omskryf 758 00:40:49,000 --> 00:40:52,000 wat 'n IBOutlet van 'n teks-veld. 759 00:40:52,000 --> 00:40:55,000 Dit sê dat ek kan hierdie eiendom bedraad 760 00:40:55,000 --> 00:40:59,000 aan 'n teks-veld in my UI. 761 00:40:59,000 --> 00:41:03,000 En toe ek op hierdie kan ek begin tik. 762 00:41:03,000 --> 00:41:06,000 Nou as ek klik op die knoppie "Klaar" dit gaan brand 763 00:41:06,000 --> 00:41:08,000 'n gebeurtenis wat ek nou kan reageer. 764 00:41:08,000 --> 00:41:10,000 No event hanteerders. 765 00:41:10,000 --> 00:41:13,000 Dit is hoe ek net gereageer het op dit gedoen "knoppie. 766 00:41:13,000 --> 00:41:15,000 Sin maak? 767 00:41:15,000 --> 00:41:20,000 >> Dit is nie 'n ontwerp patroon dat-jy ooit kan vind nie jouself 768 00:41:20,000 --> 00:41:23,000 die skep van jou eie protokol, maar weet net dat sommige 769 00:41:23,000 --> 00:41:27,000 verskillende IOS komponente registreer gebeure op verskillende maniere. 770 00:41:27,000 --> 00:41:29,000 Knoppies, byvoorbeeld, gebruik daardie IBActions. 771 00:41:29,000 --> 00:41:32,000 Teks velde, aan die ander kant, gaan afgevaardigdes te gebruik. 772 00:41:32,000 --> 00:41:36,000 Ons kan sien en jy kan sien al van daardie up binnekant van die dokumentasie. 773 00:41:36,000 --> 00:41:41,000 By the way, daar is eintlik 'n ton van die UI dinge gebou in IOS vir jou, 774 00:41:41,000 --> 00:41:46,000 so byvoorbeeld, die manier wat ek gemaak het wat sê dat aan die onderkant regs 775 00:41:46,000 --> 00:41:48,000 is wat ek gekies het hierdie teks veld. 776 00:41:48,000 --> 00:41:50,000 Ek het gekom hier. 777 00:41:50,000 --> 00:41:53,000 Ek scrolled af 'n bietjie sleutel om terug te keer, 778 00:41:53,000 --> 00:41:56,000 en ek kan eintlik maak dit 'n hele klomp van die dinge, soos as ek wil om te sê dat 779 00:41:56,000 --> 00:42:00,000 nood noem maar ek kan dit doen, wat is heeltemal random, 780 00:42:00,000 --> 00:42:02,000 en ek weet nie hoekom is daar 'n ingeboude in noodoproep knoppie, 781 00:42:02,000 --> 00:42:06,000 maar daar, dit sê noodoproep in baie klein letters. 782 00:42:06,000 --> 00:42:08,000 Daar gaan jy. 783 00:42:08,000 --> 00:42:12,000 >> Beslis al hierdie verskillende opsies in IOS verken. 784 00:42:12,000 --> 00:42:14,000 Enige vrae oor afgevaardigdes? 785 00:42:14,000 --> 00:42:18,000 Weereens, net 'n interessante ontwerp patroon wat jy moet bewus wees van. 786 00:42:18,000 --> 00:42:22,000 Ok, laat ons die volgende neem 'n blik op die tafel views. 787 00:42:22,000 --> 00:42:26,000 'N table view is basies dat die lys van items wat oor die hele plek in IOS is. 788 00:42:26,000 --> 00:42:29,000 As jy daarby deur al jou kontakte, is jy op soek na 789 00:42:29,000 --> 00:42:34,000 die instelling bladsy, en daardie soort van die lys van dinge wat genoem word 'n table view. 790 00:42:34,000 --> 00:42:37,000 Implementering van 'n table view in IOS is redelik eenvoudig. 791 00:42:37,000 --> 00:42:41,000 In plaas van om 'n klas wat uit daardie UIViewController daal 792 00:42:41,000 --> 00:42:44,000 soos ons gedoen het voordat ons net nodig om te sê, eerder as 793 00:42:44,000 --> 00:42:46,000 alles wat 'n UIViewController nie wat ek wil doen, 794 00:42:46,000 --> 00:42:50,000 Ek sê alles wat 'n UITableViewController nie wat ek wil doen, 795 00:42:50,000 --> 00:42:54,000 sodat voeg net 'n paar ekstra dinge wat heeltemal vir ons gedoen het. 796 00:42:54,000 --> 00:42:58,000 Ons moet baie min basies te vul die spasies in binnekant van die tabel te doen. 797 00:42:58,000 --> 00:43:02,000 >> Ten einde 'n tabel om te wys wat ek nodig het 'n paar vrae te beantwoord. 798 00:43:02,000 --> 00:43:06,000 Die eerste vraag wat ek nodig het om te beantwoord, is hoeveel artikels is in die tabel? 799 00:43:06,000 --> 00:43:08,000 As jy daarby deur jou kontakte app sal jy sien dat dit is soort van 800 00:43:08,000 --> 00:43:12,000 georganiseer deur die As, dan is jy het die Bs, en jy het daardie klein sub header. 801 00:43:12,000 --> 00:43:14,000 Elkeen van daardie is 'n artikel genoem. 802 00:43:14,000 --> 00:43:16,000 Jy kan of mag nie nodig het om hierdie. 803 00:43:16,000 --> 00:43:19,000 Die eerste ding wat jy hoef te doen is om 'n metode te implementeer 804 00:43:19,000 --> 00:43:22,000 genoem Tableview: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 Dat opbrengste net hoeveel artikels wat jy het, 806 00:43:25,000 --> 00:43:29,000 so dit kan sê terugkeer een as jy het 'n groot Table View. 807 00:43:29,000 --> 00:43:33,000 Die volgende vraag wat IOS nodig het om te weet, is hoeveel rye het jy? 808 00:43:33,000 --> 00:43:36,000 Byvoorbeeld, jy daarby deur middel van 'n tabel vertoning. 809 00:43:36,000 --> 00:43:39,000 Jy 'n vaste aantal van die liedjies wat jy is op soek na of 'n vaste aantal van kontakte. 810 00:43:39,000 --> 00:43:41,000 As jy my, natuurlik, nie dat baie, 811 00:43:41,000 --> 00:43:44,000 en so dit is hoe IOS weet hoeveel selle te vertoon. 812 00:43:44,000 --> 00:43:46,000 >> Weereens, kan dit sê iets soos terugkeer 3. 813 00:43:46,000 --> 00:43:49,000 My Table View het 3 rye. 814 00:43:49,000 --> 00:43:52,000 Ten slotte, IOS nodig het om te weet wat elke sel lyk, 815 00:43:52,000 --> 00:43:54,000 so wat dit eintlik gaan om dit te doen is noem hierdie metode hier onder, 816 00:43:54,000 --> 00:43:57,000 hierdie Tableview: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 Dit gaan hierdie metode 'n beroep op elke enkele sel binnekant van jou tafel. 818 00:44:01,000 --> 00:44:03,000 Hoe werk dit weet hoeveel keer om dit te noem? 819 00:44:03,000 --> 00:44:06,000 Wel, jy het dit binnekant van die getal rye in artikel. 820 00:44:06,000 --> 00:44:08,000 Ons gaan hierdie 'n beroep op elkeen van ons selle, 821 00:44:08,000 --> 00:44:11,000 en binnekant van hierdie is die plek waar jy kan eintlik dinge soos doen 822 00:44:11,000 --> 00:44:16,000 stel die teks of vertel wat bietjie blou knoppie aan die regterkant. 823 00:44:16,000 --> 00:44:19,000 Die patroon vir die kry van hierdie selle, gaan ons hierdie metode te gebruik 824 00:44:19,000 --> 00:44:22,000 genoem dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Objective-C is eintlik baie bekende vir die belaglike lengte van die metode name, 826 00:44:29,000 --> 00:44:32,000 en dit is regtig 'n mooi geval in punt voorbeeld. 827 00:44:32,000 --> 00:44:37,000 Wat hierdie metode nie, is dit sê net ek wil hê jy gee my 'n sel. 828 00:44:37,000 --> 00:44:39,000 Net 'n IOS-ding. 829 00:44:39,000 --> 00:44:41,000 As jy iets soos 100,000 liedjies op jou iPod 830 00:44:41,000 --> 00:44:45,000 wat IOS nie wil hê om dit te doen, is die toekenning van 100.000 selle, 831 00:44:45,000 --> 00:44:48,000 want as jy op die top van jou lys, jy werklik nodig geheue toeken 832 00:44:48,000 --> 00:44:51,000 vir die sel wat is 99.000 rye af? 833 00:44:51,000 --> 00:44:55,000 Nee, want as jy blaai wat jy kan soort ken as jy gaan saam. 834 00:44:55,000 --> 00:44:57,000 Dit is vir jou gedoen. 835 00:44:57,000 --> 00:44:59,000 Jy hoef nie bekommerd te wees oor alles wat dom prestasie stuff. 836 00:44:59,000 --> 00:45:02,000 Al wat jy sê is jy bel hierdie metode dequeueReusableCellWithIdentifier, 837 00:45:02,000 --> 00:45:06,000 en dit sê, okay, as jy wil ek gaan 'n nuwe sel vir jou te skep. 838 00:45:06,000 --> 00:45:09,000 >> Maar as jy aan die onderkant van die tafel en jy het reeds sommige selle toegeken 839 00:45:09,000 --> 00:45:12,000 op die top van die tabel wat jy regtig is nie van plan om enige tyd gou moet 840 00:45:12,000 --> 00:45:15,000 Ek gaan vir jou een van daardie terug in plaas van die toekenning van 'n nuwe een, 841 00:45:15,000 --> 00:45:17,000 en so dit is 'n mooi prestasie kommer. 842 00:45:17,000 --> 00:45:21,000 Jy hoef nie die selle self te ken. 843 00:45:21,000 --> 00:45:23,000 Dit gaan jou terug te gee 'n sel. 844 00:45:23,000 --> 00:45:25,000 Dit gaan om 'n sel voorwerp na julle terugkeer. 845 00:45:25,000 --> 00:45:28,000 Sodra jy die sel voorwerp dinge wat jy kan doen om dit te. 846 00:45:28,000 --> 00:45:32,000 U kan die teks van die sel met hierdie eiendom genoem teks etiket stel. 847 00:45:32,000 --> 00:45:36,000 Jy kan voeg dat die pyl op die reg of 'n ander random stuff 848 00:45:36,000 --> 00:45:41,000 met hierdie ander eiendom genoem accessoryType, en so aan en so aan. 849 00:45:41,000 --> 00:45:46,000 >> Kom ons neem 'n blik op die eintlik die uitvoering van 'n table view nou. 850 00:45:46,000 --> 00:45:49,000 Toe ek hierdie projek geskep 851 00:45:49,000 --> 00:45:53,000 eerder as enkele uitsig aansoek te sê ek het eintlik gekom om hier 852 00:45:53,000 --> 00:45:57,000 meester-detail aansoek, en so basies hierdie stem ooreen met die e-pos app 853 00:45:57,000 --> 00:46:01,000 op die iPad met die Table View aan die linkerkant en dan die inhoud aan die regterkant. 854 00:46:01,000 --> 00:46:07,000 Op die iPod of iPhone dit gaan om ooreen te stem tot 'n enkele Table View. 855 00:46:07,000 --> 00:46:10,000 Dit is waar ek my starters kode. 856 00:46:10,000 --> 00:46:13,000 >> Laat ons eers 'n blik op die storyboard. 857 00:46:13,000 --> 00:46:15,000 Al hierdie dinge vir my gedoen het, basies geskep. 858 00:46:15,000 --> 00:46:18,000 Hierdie navigatiebalk het vir my gewys wat 'n voorbeeld sel kan soos volg lyk: 859 00:46:18,000 --> 00:46:22,000 en ek kan dubbel kliek, verander die titel. 860 00:46:22,000 --> 00:46:25,000 Enige ander UI bekommernisse wat ek daar kan hanteer. 861 00:46:25,000 --> 00:46:27,000 Die header-lêer lyk regtig eenvoudig. 862 00:46:27,000 --> 00:46:30,000 Eerder as om te sê dit is UIViewController ons nou sê dit is 'n 863 00:46:30,000 --> 00:46:35,000 TableViewController, so weet ons dat ons wil al die tabel metodes te roep. 864 00:46:35,000 --> 00:46:38,000 Volgende wil ek 'n eiendom te skep wat gaan verteenwoordig 865 00:46:38,000 --> 00:46:40,000 die dinge wat binnekant van my tafel. 866 00:46:40,000 --> 00:46:43,000 Hierdie tabel gaan na willekeur te vertoon 867 00:46:43,000 --> 00:46:46,000 'n lys van vrugte, en so het ek 'n skikking te skep 868 00:46:46,000 --> 00:46:49,000 wat ek kan plaas vrugte. 869 00:46:49,000 --> 00:46:52,000 Binnekant van my implementering lêer die eerste ding wat ek wil doen 870 00:46:52,000 --> 00:46:55,000 is Ek wil om seker te maak ek inisialiseer hierdie skikking. 871 00:46:55,000 --> 00:46:58,000 >> Ek het gesê alloc init, geskep my vrugte verskeidenheid, 872 00:46:58,000 --> 00:47:03,000 en ek 4 dinge toe te voeg om dit te, waarvan een is veel meer omstrede as die ander 3. 873 00:47:03,000 --> 00:47:06,000 En nou het ek 'n skikking van grootte 4. 874 00:47:06,000 --> 00:47:08,000 Ons skud dit in CS50. 875 00:47:08,000 --> 00:47:11,000 Ek het nou 'n verskeidenheid van grootte 4. 876 00:47:11,000 --> 00:47:13,000 Nou gaan ek om te begin met die beantwoording van hierdie vrae, en eintlik, 877 00:47:13,000 --> 00:47:16,000 wanneer ek hierdie inligting geskep het al hierdie dinge is reeds vir my gedoen het. 878 00:47:16,000 --> 00:47:19,000 Ek het nie uit te tik die aantal artikels in Table View. 879 00:47:19,000 --> 00:47:22,000 Dit was reeds daar, en ek is om die spasies in te vul. 880 00:47:22,000 --> 00:47:24,000 Hoeveel artikels het ek? 881 00:47:24,000 --> 00:47:26,000 Een. Al gedoen. 882 00:47:26,000 --> 00:47:28,000 Hoeveel rye het ek? 883 00:47:28,000 --> 00:47:31,000 Wel, ek het een ry vir elke vrug, so dit tel 884 00:47:31,000 --> 00:47:34,000 is 'n eienskap van 'n skikking wat sê hoe groot is dit? 885 00:47:34,000 --> 00:47:36,000 Dit is hoeveel rye Ek het. 886 00:47:36,000 --> 00:47:42,000 Ten slotte, ek nodig het om te sê wat elke sel lyk? 887 00:47:42,000 --> 00:47:46,000 Ek gaan om te sê dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Weereens, is reeds vir my geskryf. 889 00:47:48,000 --> 00:47:51,000 Ek het nie om dit te doen myself nie, en ek wil terug te kry 890 00:47:51,000 --> 00:47:54,000 hierdie sel by hierdie plek. 891 00:47:54,000 --> 00:47:57,000 Onthou dat ons hierdie metode is 'n beroep op elke enkele sel, 892 00:47:57,000 --> 00:48:01,000 en hierdie argument hier, hierdie indexPath argument, 893 00:48:01,000 --> 00:48:03,000 sê watter ry ek. 894 00:48:03,000 --> 00:48:05,000 As ek sê indexPath.row hier neer 895 00:48:05,000 --> 00:48:09,000 dit sal wees 0, dan sal dit 1, dan is dit sal wees 2, en dit is so ek weet 896 00:48:09,000 --> 00:48:11,000 watter sel ek tans is vertoon. 897 00:48:11,000 --> 00:48:15,000 Ek wil die teks van die sel op te stel deur gebruik te maak van hierdie textLabel eiendom 898 00:48:15,000 --> 00:48:19,000 binne te gaan my vrugte verskeidenheid en kry 899 00:48:19,000 --> 00:48:21,000 die doel wat ooreenstem met elke ry. 900 00:48:21,000 --> 00:48:24,000 As dit is 'n string, ek nou die opstel 901 00:48:24,000 --> 00:48:28,000 die teks eiendom aan 'n string. 902 00:48:28,000 --> 00:48:30,000 'N ander ding wat ek kan doen. 903 00:48:30,000 --> 00:48:32,000 Ek kan ook 'n event handler op elk van die selle, 904 00:48:32,000 --> 00:48:35,000 sodat wanneer ek tik elk van hierdie selle 905 00:48:35,000 --> 00:48:39,000 hierdie didSelectRowAtIndexPath, gaan dit vir my genoem te word, 906 00:48:39,000 --> 00:48:42,000 so ek kan nou net deur die definiëring van hierdie hanteer wat gebeur 907 00:48:42,000 --> 00:48:46,000 wanneer jy tik 'n sel, en weer, ons verby wat die sel getik 908 00:48:46,000 --> 00:48:50,000 sodat ons kan onthou dieselfde event handler vir almal van ons selle. 909 00:48:50,000 --> 00:48:53,000 >> Weereens, dit is iets IOS doen vir my. 910 00:48:53,000 --> 00:48:55,000 Kom ons 'n ander popup 911 00:48:55,000 --> 00:48:59,000 wat sê net jy opgetel iets waar dat daar iets 912 00:48:59,000 --> 00:49:04,000 gaan na die ry voorwerp. 913 00:49:04,000 --> 00:49:10,000 Wanneer ek hardloop, ek gaan hierdie mooi Table View 914 00:49:10,000 --> 00:49:14,000 met een ry vir elk van hierdie vrugte, en indien Ek tik een 915 00:49:14,000 --> 00:49:16,000 dit vertel my wat gebeur het. 916 00:49:16,000 --> 00:49:21,000 Sin maak? 917 00:49:21,000 --> 00:49:24,000 Kom ons bou 'n bietjie meer kompleks van 'n app, 918 00:49:24,000 --> 00:49:28,000 so veel as 'n klik jy opgetel tamatie is. 919 00:49:28,000 --> 00:49:31,000 Die lekker deel oor die storyboarding 920 00:49:31,000 --> 00:49:35,000 is dit nie net gaan ons ontwerp skerms individueel te help, 921 00:49:35,000 --> 00:49:38,000 dit ook gaan om ons te help met die bind saam ons hele app, 922 00:49:38,000 --> 00:49:42,000 sodat die finale app ons sal gebou is hierdie pragtige sport nuus leser, 923 00:49:42,000 --> 00:49:45,000 en so is dit gaan verskeie skerms te hê, en daarom kan ek eintlik verteenwoordig 924 00:49:45,000 --> 00:49:48,000 elk van hierdie verskeie skerms op die storielyn, 925 00:49:48,000 --> 00:49:52,000 en ek kan zoom uit en sien my app uit 'n hoë vlak. 926 00:49:52,000 --> 00:49:55,000 >> Ten einde 'n nuwe element binnekant van my storielyn te skep 927 00:49:55,000 --> 00:49:59,000 dit is regtig eenvoudig binnekant van Interface Bouwer. 928 00:49:59,000 --> 00:50:01,000 As ek wil nog 'n skerm te voeg tot hierdie, byvoorbeeld, 929 00:50:01,000 --> 00:50:06,000 Ek kan eers uitzoomen met die knippie zoom dat Apple het so baie lief, 930 00:50:06,000 --> 00:50:09,000 en af ​​hier voor ek soek vir 'n knoppie 931 00:50:09,000 --> 00:50:12,000 en ek sleep en 'n knoppie 932 00:50:12,000 --> 00:50:15,000 as ek wil 'n nuwe skerm te skep, kan ek eintlik net sleep en drop 933 00:50:15,000 --> 00:50:19,000 'n hele siening kontroleerder, so as ek kies hierdie, trek dit hier, 934 00:50:19,000 --> 00:50:23,000 hey, daar is 'n ander skerm, en so nou met behulp van hierdie selfde storyboard lêer 935 00:50:23,000 --> 00:50:26,000 Ek kan al die skerms binnekant van my app, en ek kan uitzoomen 936 00:50:26,000 --> 00:50:28,000 en sien hoe hulle omgaan. 937 00:50:28,000 --> 00:50:32,000 Dit sal nog nie interaksie. 938 00:50:32,000 --> 00:50:36,000 Die manier waarop wisselwerking tussen hierdie 2 skerms is jy definieer verhoudings. 939 00:50:36,000 --> 00:50:39,000 Jy kan basies sê hierdie skerm, wanneer u op hierdie knoppie, 940 00:50:39,000 --> 00:50:42,000 Ek wil hê dat jy oor te skuif na hierdie nuwe skerm. 941 00:50:42,000 --> 00:50:44,000 Dit beteken dat daar is hierdie soort van die verhouding tussen 942 00:50:44,000 --> 00:50:46,000  die eerste skerm en die tweede skerm. 943 00:50:46,000 --> 00:50:49,000 Jy sal basies 'n pyl van die knoppie na die tweede skerm 944 00:50:49,000 --> 00:50:53,000 sê dat wanneer jy druk die knoppie dit is waar ek wil om te gaan. 945 00:50:53,000 --> 00:50:57,000 Net soos ons beheer klik en sleep die winkels te definieer 946 00:50:57,000 --> 00:51:01,000 ons gaan dieselfde ding om te doen hierdie segues te definieer. 947 00:51:01,000 --> 00:51:05,000 >> Ons sal 'n voorbeeld te sien vir wat, en voor ons eintlik oorgang 948 00:51:05,000 --> 00:51:08,000 van een skerm na 'n ander IOS is mooi genoeg om hierdie metode te roep 949 00:51:08,000 --> 00:51:11,000 genoem prepareForSegue, en dit is waar ons kan begin 950 00:51:11,000 --> 00:51:14,000 die stuur van data van een program na 'n ander. 951 00:51:14,000 --> 00:51:17,000 In die voorbeeld wat ons is om te kyk na dit sal toelaat dat ons basies 952 00:51:17,000 --> 00:51:20,000 baseball spanne te filter deur ligas en afdelings. 953 00:51:20,000 --> 00:51:23,000 Toe ek 'n liga kies, byvoorbeeld, ek wil oorgang 954 00:51:23,000 --> 00:51:25,000 tot my volgende skerm waar ek kan al van die afdelings 955 00:51:25,000 --> 00:51:27,000 in daardie liga of al die verskillende spanne. 956 00:51:27,000 --> 00:51:31,000 Ek nodig het om te stuur na die skerm watter spanne jy moet vertoon. 957 00:51:31,000 --> 00:51:35,000 Om te doen wat ek gaan om voordeel te trek van hierdie metode hier. 958 00:51:35,000 --> 00:51:39,000 >> Ten slotte, net 'n willekeurige punt op IOS. 959 00:51:39,000 --> 00:51:41,000 As jy wil om data op te slaan daar is hierdie ding genaamd kern data, 960 00:51:41,000 --> 00:51:44,000 wat is eintlik soort van ingewikkeld om te werk met. 961 00:51:44,000 --> 00:51:47,000 Jy kan ook gebruik SQL data op te slaan, 962 00:51:47,000 --> 00:51:51,000 wat weer is lekker, maar soort van op die meer ingewikkelde kant om mee te werk, 963 00:51:51,000 --> 00:51:55,000 maar IOS ondersteun ook hierdie baie cool dinge eiendom lyste, 964 00:51:55,000 --> 00:52:00,000 en 'n eiendom lys is net 'n lêer wat verteenwoordig sleutel waarde pare. 965 00:52:00,000 --> 00:52:03,000 Jy definieer 'n lys van sleutels, en jy sê hierdie sleutel gaan om 'n skikking te wees. 966 00:52:03,000 --> 00:52:06,000 Hierdie sleutel is gaan na 'n string te wees, en basies enigiets wat jy kan doen 967 00:52:06,000 --> 00:52:10,000 jy kan binne in into doen van 'n eiendom lys, 968 00:52:10,000 --> 00:52:14,000 en so dit kan werklik mooi om ons om te werk met 'n paar data. 969 00:52:14,000 --> 00:52:18,000 Byvoorbeeld, ek het hierdie Teams.plist dat ek geskep het. 970 00:52:18,000 --> 00:52:22,000 Wat ek gemaak het 'n nuwe plist lêer, en ek kan detail weer te gee. 971 00:52:22,000 --> 00:52:26,000 Dit is 'n woordeboek, dit is 'n woordeboek, dit is snare, 972 00:52:26,000 --> 00:52:30,000 en so dit is 'n mooi grafiese voorstelling van 'n JSON-dokument 973 00:52:30,000 --> 00:52:33,000 of net 'n stel van die belangrikste waarde pare, 974 00:52:33,000 --> 00:52:37,000 en so dit is die data wat ek sal werk met die binnekant van my app. 975 00:52:37,000 --> 00:52:40,000 >> Kom se eerste kom hier. Ons het nou 'n baie meer lêers. 976 00:52:40,000 --> 00:52:44,000 Maar laat ons eers kom hier om die storielyn. 977 00:52:44,000 --> 00:52:48,000 Die storyboard hier as ek kan uitzoomen- 978 00:52:48,000 --> 00:52:51,000 Ons kan nou sien dat dit die vloei van my jeug. 979 00:52:51,000 --> 00:52:53,000 Ek eers gaan om te begin op hierdie skerm. 980 00:52:53,000 --> 00:52:55,000 Ek gaan om te boor af na hierdie skerm, 981 00:52:55,000 --> 00:52:58,000 en ek gaan om te boor af na hierdie skerm, en ons kan hier sien dat as ek soort van 982 00:52:58,000 --> 00:53:04,000 beweeg een van hierdie rondom ons het hierdie pyle gaan van hier tot hier, 983 00:53:04,000 --> 00:53:08,000 en die manier waarop ek bepaal dat die pyl was as ek zoom in 'n bietjie, 984 00:53:08,000 --> 00:53:12,000 en as ek kom oor hierdie siening kontroleerder, 985 00:53:12,000 --> 00:53:16,000 en hier is 'n sel, en ek wil om te sê dat wanneer jy tik 'n sel 986 00:53:16,000 --> 00:53:18,000 Ek wil hê dat jy oor te skuif na 'n ander skerm. 987 00:53:18,000 --> 00:53:21,000 Ek kan eenvoudig hou beheer, 988 00:53:21,000 --> 00:53:26,000 scroll oor 'n bietjie, hou beheer, sleep hierdie sel oor en laat gaan. 989 00:53:26,000 --> 00:53:30,000 >> En hier is ons sê wat is die oorgang wat jy wil gebruik? 990 00:53:30,000 --> 00:53:32,000 Wil jy dat slide ding wat genoem word druk om te gebruik? 991 00:53:32,000 --> 00:53:34,000 Wil jy te skuif uit die bodem? 992 00:53:34,000 --> 00:53:36,000 Dit is genoem modale. 993 00:53:36,000 --> 00:53:40,000 En nadat ek kliek op een van hierdie, gaan dit hierdie arrow te trek vir my, 994 00:53:40,000 --> 00:53:44,000 en dit beteken dat ek eintlik het hanteer wat gebeur wanneer ek druk die knoppie grafies. 995 00:53:44,000 --> 00:53:48,000 Ek het nie skryf 'n kode om werklik te skuif van een skerm na die volgende een. 996 00:53:48,000 --> 00:53:51,000 Ek omskryf dit visueel binnekant van Interface Bouwer. 997 00:53:51,000 --> 00:53:55,000 As ek kliek op die pyltjie om, kan ons sien dat Ek het hierdie ding 'n naam. 998 00:53:55,000 --> 00:53:59,000 Ek noem dit showDivisions, en dit is sodat ek kan weet 999 00:53:59,000 --> 00:54:03,000 watter oorgang is om plaas te vind, en ons sal sien waarom net 'n sec. 1000 00:54:03,000 --> 00:54:06,000 Dit is hoe ek bedraad die verskillende skerms in my app. 1001 00:54:06,000 --> 00:54:09,000 As dit 'n knoppie, byvoorbeeld, eerder as 'n Table View, 1002 00:54:09,000 --> 00:54:11,000 Ek kon beheer op die knoppie klik, sleep oor na die volgende skerm, 1003 00:54:11,000 --> 00:54:16,000 en dit is hoe ek navigasie dié manier kan doen. 1004 00:54:16,000 --> 00:54:19,000 >> Regtig vinnig, as ons in die MasterViewController kom, 1005 00:54:19,000 --> 00:54:22,000 weer ons net gaan om 'n lys van dinge om te definieer 1006 00:54:22,000 --> 00:54:26,000 wat sal vertoon word in die Table View. 1007 00:54:26,000 --> 00:54:29,000 Hier is ek sê: Ek wil hê dat jy plist lêer te neem, 1008 00:54:29,000 --> 00:54:32,000 en ek wil hê jy moet dit in 'n woordeboek te laai, 1009 00:54:32,000 --> 00:54:35,000 en as jy het dat die woordeboek, ek gaan daardie vrae weer te beantwoord. 1010 00:54:35,000 --> 00:54:37,000 Hier is die getal van die afdelings. 1011 00:54:37,000 --> 00:54:41,000 Een, is daar een ry vir elke liga, en die teks van elke sel 1012 00:54:41,000 --> 00:54:46,000 moet óf die eerste een, die eerste liga, die tweede liga, en so aan. 1013 00:54:46,000 --> 00:54:51,000 Ten slotte, ek gaan om hierdie metode te gebruik dat ons nou net gesien het genoem prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 en dit is die metode wat afgedank gaan word as ek daarop kliek 1015 00:54:54,000 --> 00:54:57,000 op een van daardie rye en daarom aktiveer dat die oorgang 1016 00:54:57,000 --> 00:54:59,000 dat ek met die pyle. 1017 00:54:59,000 --> 00:55:02,000 Dit sê dat ek kan meer as een 1018 00:55:02,000 --> 00:55:05,000 verhoudings van een skerm na 'n ander. 1019 00:55:05,000 --> 00:55:08,000 As ek het 2 knoppies en elke knoppie neem jou na 'n ander skerm 1020 00:55:08,000 --> 00:55:10,000 Ek gaan 2 segues, 1 vir elke knoppie te hê. 1021 00:55:10,000 --> 00:55:14,000 Maar hierdie prepareForSegue is, weer, gaan hergebruik word 1022 00:55:14,000 --> 00:55:17,000 vir elk van die verskillende verhoudings, so dit beteken dat ek nodig het 'n manier 1023 00:55:17,000 --> 00:55:21,000 te identifiseer as jy op die eerste knoppie of jy die knoppie druk. 1024 00:55:21,000 --> 00:55:25,000 >> Onthou toe ek het dat segue 'n naam, dit showDivisions, 1025 00:55:25,000 --> 00:55:29,000 dis hoe ek weet nou dat dit die segue wat geaktiveer is. 1026 00:55:29,000 --> 00:55:32,000 Al wat ek wil doen, wil ek sê 1027 00:55:32,000 --> 00:55:35,000 Ek wil om uit te vind wat ek nou net getref het, 1028 00:55:35,000 --> 00:55:38,000 en so dit te kry, kan ek sê dat ek wil die indexPath vir die geselekteerde ry, 1029 00:55:38,000 --> 00:55:42,000 onthou die indexPath sê net waar ek net gekliek, 1030 00:55:42,000 --> 00:55:47,000 en dan wil ek om te sê ek wil uitvind waar ek gaan. 1031 00:55:47,000 --> 00:55:50,000 Dit destinationViewController, dit is 'n eienskap van die segue. 1032 00:55:50,000 --> 00:55:53,000 Dit is die skerm ek gaan, 1033 00:55:53,000 --> 00:55:56,000 so ek weet dat die skerm wat ek gaan om te genoem word DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 omdat ek daardie klas geskep, 1035 00:55:59,000 --> 00:56:02,000 en so nou as ek sê d.divisions 1036 00:56:02,000 --> 00:56:06,000 Ek nou die opstel van 'n eiendom van die oog kontroleerder Ek is oor te gaan na. 1037 00:56:06,000 --> 00:56:10,000 Dit is hoe ek is die stuur van data van een skerm na 'n ander skerm. 1038 00:56:10,000 --> 00:56:13,000 >> Net te kyk na hierdie DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 jy hier kan sien dat in die h-lêer. 1040 00:56:16,000 --> 00:56:20,000 daar is dat die eiendom afdelings, en dit is wat ek basies is mense, 1041 00:56:20,000 --> 00:56:25,000 so dit is hoe ek weet dat ek die ooreenstemmende afdelings is vertoon 1042 00:56:25,000 --> 00:56:28,000 die liga dat ek gekliek het, en weer, 1043 00:56:28,000 --> 00:56:31,000 die werklike Table View lyk pretty much dieselfde, net die beantwoording van daardie 1044 00:56:31,000 --> 00:56:34,000 3 eenvoudige vrae sowel as die identifisering van 1045 00:56:34,000 --> 00:56:37,000 wat gebeur wanneer jy beweeg na die volgende skerm. 1046 00:56:37,000 --> 00:56:40,000 Net 'n paar ander dinge hier. 1047 00:56:40,000 --> 00:56:43,000 Jy agterkom by die top dat eerder as om te sê # include 1048 00:56:43,000 --> 00:56:45,000 Ek nou sê # invoer. 1049 00:56:45,000 --> 00:56:47,000 Dit is net 'n Objective-C ding. 1050 00:56:47,000 --> 00:56:52,000 Die invoer is basies 'n mooier weergawe van die volgende insluit, 1051 00:56:52,000 --> 00:56:57,000 en byvoorbeeld, ons nodig het om te weet wat hierdie klas is, 1052 00:56:57,000 --> 00:57:00,000 so ek kan nie net sê DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 As ons dit nie hashtag standardio.c binnekant van ons c-lêer. 1054 00:57:05,000 --> 00:57:07,000 die vertaler het geen idee gehad wat printf was. 1055 00:57:07,000 --> 00:57:12,000 Net so, as ek voer nie die DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 die vertaler het regtig geen idee wat 'n DivisionsViewController is. 1057 00:57:16,000 --> 00:57:19,000 Maak net seker dat die binnekant van jou verskillende m lêers jy seker maak om in te voer 1058 00:57:19,000 --> 00:57:25,000 die ooreenstemmende h lêers sodat die vertaler weet wat gaan aan. 1059 00:57:25,000 --> 00:57:31,000 >> Ten slotte, wat Apple uiteindelik doen, is sommige data met behulp van 'n web loer vertoon, 1060 00:57:31,000 --> 00:57:35,000 en so 'n web siening is 'n voorwerp wat jy kan inbed 1061 00:57:35,000 --> 00:57:37,000 'n bietjie webblaaier binnekant van jou jeug. 1062 00:57:37,000 --> 00:57:40,000 Al wat jy hoef te doen, is om 'n URL verskaf aan jou webblaaier, 1063 00:57:40,000 --> 00:57:43,000 so ek wil te gaan na mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 en dit is hoe kan ek toegang tot die tuisblad vir elke span, 1065 00:57:46,000 --> 00:57:49,000 en so deur in hierdie URL 1066 00:57:49,000 --> 00:57:52,000 kan vertoon die web loer vir my, en ek kan rond kyk, 1067 00:57:52,000 --> 00:58:01,000 en simulator is in gebruik deur daardie een. 1068 00:58:01,000 --> 00:58:03,000 Nou het van my plist. 1069 00:58:03,000 --> 00:58:07,000 As ek op hierdie het ook van my plist, en dit gly hanteer 1070 00:58:07,000 --> 00:58:09,000 deur definieer diegene segues. 1071 00:58:09,000 --> 00:58:12,000 Ek kliek op hierdie en nog een, 1072 00:58:12,000 --> 00:58:15,000 en nou is hier my UIWebView, sodat net soos wat 1073 00:58:15,000 --> 00:58:19,000 hier is die webwerf vir die URL wat ek net ingebed, 1074 00:58:19,000 --> 00:58:21,000 en ek het nie iets gek te hanteer. 1075 00:58:21,000 --> 00:58:24,000 Dit is hoe om 'n webblad te vertoon. 1076 00:58:24,000 --> 00:58:27,000 Dinge soos hierdie terug-knoppie hier is ook aan my gegee 1077 00:58:27,000 --> 00:58:33,000 heeltemal gratis, want ek het hierdie verhoudings met segues gedefinieer. 1078 00:58:33,000 --> 00:58:37,000 >> Enige vrae? Ja. 1079 00:58:37,000 --> 00:58:40,000 [Studente] So wanneer jy gebruik alloc, jy nooit moet vry enigiets? 1080 00:58:40,000 --> 00:58:43,000 Presies, wanneer jy noem alloc en init jy nie om dit te bevry. 1081 00:58:43,000 --> 00:58:46,000 IOS gaan al wat vir jou te hanteer. 1082 00:58:46,000 --> 00:58:51,000 Dis wonderlik, en jy nie enige reëls te breek nie. Ja. 1083 00:58:51,000 --> 00:58:54,000 [Studente] As jy meer spanne wat kan pas op die skerm te sluit, 1084 00:58:54,000 --> 00:58:58,000 sou dit outomaties 'n scroll opsie, of is dit iets wat jy nodig het om by te voeg? 1085 00:58:58,000 --> 00:59:01,000 Presies, as ek het meer spanne, byvoorbeeld, sou dit outomaties hanteer 1086 00:59:01,000 --> 00:59:04,000 die blaai vir my, en al die prestasie betref 1087 00:59:04,000 --> 00:59:08,000 met die groot tabel word ook behandel heeltemal vir my. 1088 00:59:08,000 --> 00:59:11,000 >> Ander vrae? 1089 00:59:11,000 --> 00:59:13,000 Al hierdie kode gaan gepos word. 1090 00:59:13,000 --> 00:59:16,000 Ons is soort van satinee meer as 'n bietjie van die meer minder belangrike besonderhede, 1091 00:59:16,000 --> 00:59:19,000 maar dinge soos die opstel van 'n paar eienskappe na die web loer 1092 00:59:19,000 --> 00:59:22,000 is net die dinge wat jy kan kry deur op Apple se dokumentasie, 1093 00:59:22,000 --> 00:59:24,000 wat is regtig, regtig mooi uitgelê. 1094 00:59:24,000 --> 00:59:27,000 Hulle het 'n baie van die monster apps en voorbeeld gebruike 1095 00:59:27,000 --> 00:59:34,000 van verskillende API's, so beslis nagaan as jy kan. 1096 00:59:34,000 --> 00:59:36,000 Net 'n paar nuttige skakels wat jy kan 'n blik op te neem. 1097 00:59:36,000 --> 00:59:38,000 Dit is 'n paar nuttige dokumentasie gidse. 1098 00:59:38,000 --> 00:59:41,000 Die URL's is groot, sodat hulle verkort. 1099 00:59:41,000 --> 00:59:44,000 Die eerste een is die hele biblioteek van dokumentasie. 1100 00:59:44,000 --> 00:59:46,000 Daar is min search bars, so as jy begin tik knoppie 1101 00:59:46,000 --> 00:59:50,000 dit sal begin gee jou al die inligting oor al die dinge wat jy kan doen met 'n knoppie. 1102 00:59:50,000 --> 00:59:53,000 Ek het ook die Table View Programmering Guide. 1103 00:59:53,000 --> 00:59:56,000 Dit hanteer tafel views in veel meer detail, 1104 00:59:56,000 --> 01:00:00,000 hoe om dinge te doen soos dinamiese selle of wysig selle by te voeg of te verwyder. 1105 01:00:00,000 --> 01:00:02,000 >> Daar is baie van die monster apps van Apple wat sal jou wys hoe om dit te doen, 1106 01:00:02,000 --> 01:00:05,000 en uiteindelik, hierdie laaste een is die Human Interface Guidelines, 1107 01:00:05,000 --> 01:00:09,000 en dit is basies 'n bespreking van die UI komponente, 1108 01:00:09,000 --> 01:00:12,000 dinge soos maak nie 'n knoppie wat is 4 pixels deur 4 pixels. 1109 01:00:12,000 --> 01:00:15,000 Dit is 'n slegte idee nie, en ander dinge wat Apple wil hê jy moet doen 1110 01:00:15,000 --> 01:00:18,000 goeie ontwerp aan te moedig. 1111 01:00:18,000 --> 01:00:23,000 >> Enige laaste vrae voor ons klaarmaak? 1112 01:00:23,000 --> 01:00:27,000 Alle reg, beslis voel vry om-we're gaan spesiale etikette op Bespreek te hê. 1113 01:00:27,000 --> 01:00:30,000 Ons sal 'n IOS een, so seker voel vry om dit aan te wend. 1114 01:00:30,000 --> 01:00:34,000 As jy wil om te werk met jou klasmaats op projekte 1115 01:00:34,000 --> 01:00:37,000 of help om uit te vind 'n paar random IOS stuff 1116 01:00:37,000 --> 01:00:40,000 voel vry om my te e-pos, en beslis al die kode aanlyn omdat nagaan 1117 01:00:40,000 --> 01:00:43,000 net in die belang van die tyd wat ons soort van satinee oor die meer 1118 01:00:43,000 --> 01:00:45,000 fyner korrelige besonderhede van dinge. 1119 01:00:45,000 --> 01:00:47,000 Maar so nie, dan baie geluk op jou IOS-projekte, en ek hoop ons het 1120 01:00:47,000 --> 01:00:53,000 'n groot instroming van programme in die App Store. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]