1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminar] [iOS: Shkrimi Apps Ashtu si një Boss] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Universiteti i Harvardit] 3 00:00:04,000 --> 00:00:08,000 [Kjo është CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Të gjithë të drejtë, të gjithë, të mirëpritur për iOS: Shkrimi Apps si një Boss. 5 00:00:12,000 --> 00:00:16,000 Ky seminar do të përqëndrohet në shkrim Apps per iPhone 6 00:00:16,000 --> 00:00:19,000 dhe nga ana tjetër me shkrim Apps për iPad, dhe kështu që ne jemi në thelb do të ecin nëpër 7 00:00:19,000 --> 00:00:23,000 disa shembuj të ndryshme se si të bëjnë një komponent, një lojë e thjeshtë si Tic Tac Toe, 8 00:00:23,000 --> 00:00:26,000 ose në qoftë se ju jeni më të interesuar në marrjen e një app si një lloj të lajmeve lexuesit 9 00:00:26,000 --> 00:00:30,000 apo diçka që ndërvepron me internet unë do të flas në lidhje me atë si të mirë. 10 00:00:30,000 --> 00:00:32,000 Ja axhenda tonë të shkurtër. 11 00:00:32,000 --> 00:00:36,000 >> Apps IOS janë të shkruara në një gjuhë të quajtur Objektivi-C, 12 00:00:36,000 --> 00:00:39,000 dhe kështu që kjo është pak e ngjashme me C, por jo të vërtetë në të gjitha, 13 00:00:39,000 --> 00:00:41,000 kështu që ne do të flasim pak për gjuhën e vetë 14 00:00:41,000 --> 00:00:45,000 dhe pastaj si për të ndërtuar Apps iPhone app duke përdorur këtë program të quajtur XCode, 15 00:00:45,000 --> 00:00:48,000 që nëse ju nuk e keni shkarkuar atë ende ndjehen të lirë për të filluar shkarkimin tani. 16 00:00:48,000 --> 00:00:50,000 Është gigabajt disa. 17 00:00:50,000 --> 00:00:54,000 Ajo duhet të jetë falas në App Store, kështu që ju do të duhet të ketë një Mac 18 00:00:54,000 --> 00:00:57,000 ideale drejtimin versionin e fundit të OS X. 19 00:00:57,000 --> 00:00:59,000 Nëse ju nuk jeni, nuk ka problem. 20 00:00:59,000 --> 00:01:02,000 Ne kemi Macs në qendër të shkencës në dispozicion për përdorimin tuaj 21 00:01:02,000 --> 00:01:05,000 me XCode instaluar, dhe kështu që të ndjehen të lirë të përdorin ato për zhvillim. 22 00:01:05,000 --> 00:01:07,000 Nëse ju doni të bëni një app, por nuk kanë një Mac, mos u shqetësoni. 23 00:01:07,000 --> 00:01:09,000 Ka shumë të burimeve kampus për këtë. 24 00:01:09,000 --> 00:01:15,000 Dhe kështu, atëherë ne jemi duke shkuar për të mbuluar 2 shembuj më të mëdha të Apps të ndryshme ju mund të bëni. 25 00:01:15,000 --> 00:01:19,000 Objektivi-C është teknikisht atë që quhet një grup super të C. 26 00:01:19,000 --> 00:01:24,000 Kjo do të thotë që çdo kodi C është gjithashtu e vlefshme Objektivi-C kod. 27 00:01:24,000 --> 00:01:29,000 Kjo do të thotë se ne lloj i gypit regjistruar në disa karakteristika të tjera për C. 28 00:01:29,000 --> 00:01:33,000 Disa nga këto karakteristika nuk përfshijnë pasur nevojë të shkruani ndonjëherë malloc përsëri, falënderoj Perëndinë, 29 00:01:33,000 --> 00:01:36,000 nuk ka pasur nevojë të shqetësuar në lidhje me këto pointers budalla dhe çlirimin e tyre dhe të gjitha këto gjëra 30 00:01:36,000 --> 00:01:40,000 ju urryer rreth C, dhe kjo është lloji i ikur në Objektivi C-. 31 00:01:40,000 --> 00:01:43,000 >> Tani, Objektivi-C ka edhe një bibliotekë shumë të madhe standarde, 32 00:01:43,000 --> 00:01:47,000 kështu që nuk ka funksionalitet shumë më tepër që ju të merrni për brenda e lirë të Objective-C. 33 00:01:47,000 --> 00:01:50,000 Kujtohet kur ishim shkrim PHP kemi vërejtur se kemi shkuar nga 34 00:01:50,000 --> 00:01:54,000 kjo gjuhë e vogël në bibliotekë gjigande të gjitha këto gjëra të çmendur që ju mund të bëni. 35 00:01:54,000 --> 00:01:56,000 E njëjta gjë ndodh në iOS. 36 00:01:56,000 --> 00:01:59,000 Ka objekte për gjëra të tilla si kalendar budiste, dhe me të vërtetë asgjë 37 00:01:59,000 --> 00:02:05,000 ju ndoshta mund të mendoni ndoshta ekziston tashmë në zbatim Objective-C-së. 38 00:02:05,000 --> 00:02:08,000 Pjesa Objektivi i Objective-C është referenca diçka 39 00:02:08,000 --> 00:02:11,000 quhet object-oriented programimit. 40 00:02:11,000 --> 00:02:14,000 Kjo është lloj i një koncepti të ri, por në të vërtetë ne kemi mësuar më së shumti 41 00:02:14,000 --> 00:02:17,000 një shumë prej këtyre koncepteve tashmë. 42 00:02:17,000 --> 00:02:19,000 Ideja prapa Object-oriented programimit është se ju jeni do të strukturohet 43 00:02:19,000 --> 00:02:23,000 një shumë të kodit tuaj rreth këtyre gjërave quhet klasa, 44 00:02:23,000 --> 00:02:26,000 dhe këto klasa janë përlëvduar vërtetë structs. 45 00:02:26,000 --> 00:02:30,000 Brenda një struct ne thelb tha se këtu është një gjë, 46 00:02:30,000 --> 00:02:32,000 dhe kjo gjë mund të ketë anëtarë. 47 00:02:32,000 --> 00:02:35,000 Për shembull, një nyje në një listë e lidhur mund të ketë gjëra të tjera 48 00:02:35,000 --> 00:02:38,000 si një vlerë, një tregues për nyjen e ardhshëm në listë, 49 00:02:38,000 --> 00:02:44,000 dhe së bashku se treguesin dhe që vlera e përbërë këtë rast një nga një struct. 50 00:02:44,000 --> 00:02:47,000 Klasët janë shumë të ngjashme, përveç 51 00:02:47,000 --> 00:02:50,000 klasa gjithashtu mund të ketë funksione brenda prej tyre. 52 00:02:50,000 --> 00:02:54,000 Kur ne shpalli një struct, ne vetëm mund të themi n int ose * nyje tjetër. 53 00:02:54,000 --> 00:02:57,000 >> Tani me Objektivi-C ne mund të vërtetë vënë funksione 54 00:02:57,000 --> 00:02:59,000 brenda nga këto gjëra. 55 00:02:59,000 --> 00:03:03,000 Një tjetër gjë që mund të bëjë klasa është se ata mund të trashëgojnë të dhënave nga klasat e tjera. 56 00:03:03,000 --> 00:03:07,000 Për shembull, ne do të jetë në kërkim në një bandë e ndërtuar në Objektivi-C klasa. 57 00:03:07,000 --> 00:03:11,000 Një prej tyre mund të jetë klasa që përfaqëson pikëpamjen për një ekran, 58 00:03:11,000 --> 00:03:14,000 dhe kështu duke thënë që unë dua për të zbatuar pikëpamjen time 59 00:03:14,000 --> 00:03:18,000 ne thelb thonë në Apple dikush mbi njerëzit, ndoshta me të vërtetë e bukur, 60 00:03:18,000 --> 00:03:21,000 shkroi këtë klasë për mua, dhe ajo merret me gjëra të tilla si butonat shfaqur 61 00:03:21,000 --> 00:03:25,000 ose pasqyrim ekran, dhe ne do të jetë me të vërtetë i mërzitur 62 00:03:25,000 --> 00:03:28,000 për të zbatuar të gjitha funksionet që veten, dhe kështu nga thjesht 63 00:03:28,000 --> 00:03:31,000 trashëguar të dhënave mund të themi gjithçka që ju bëri në atë klasë 64 00:03:31,000 --> 00:03:34,000 Unë gjithashtu dua brendësi të klasës sime, dhe atëherë unë jam duke shkuar për të bërë disa gjëra të tjera, 65 00:03:34,000 --> 00:03:37,000 domethënë të zbatojë një app. 66 00:03:37,000 --> 00:03:40,000 Kjo është ajo që trashëgimia të thotë fjala. Ne do të shohim një shembull më konkret. 67 00:03:40,000 --> 00:03:42,000 >> Dhe së fundi, me kyç Object-oriented programimit është që 68 00:03:42,000 --> 00:03:45,000 ajo çon të dhënave encapsulation. 69 00:03:45,000 --> 00:03:48,000 Në disa prej problemin tonë përcakton ne mund të kemi këto të mëdha, variabla globale 70 00:03:48,000 --> 00:03:51,000 Globals dhe kudo, dhe kjo është se si ne do të mbajnë gjurmët e shtetit. 71 00:03:51,000 --> 00:03:55,000 Me klasat ne mund të fillojë encapsulating informacion brenda e një objekti. 72 00:03:55,000 --> 00:03:58,000 Në qoftë se ne kemi një ekran në app tonë, ne vërtetë nuk duhet të ketë asnjë të dhënë nga 73 00:03:58,000 --> 00:04:01,000 një tjetër ekran në brendësi tonë app të kësaj, 74 00:04:01,000 --> 00:04:04,000 dhe kështu me encapsulating gjëra brenda klasave ky fakt çon 75 00:04:04,000 --> 00:04:08,000 për dizajn shumë të mirë të kodit, dhe kjo është e mundur me disa nga karakteristikat shtesë 76 00:04:08,000 --> 00:04:11,000 Objektivi i C-. 77 00:04:11,000 --> 00:04:15,000 Paralajmërimi, sintaksë për Objective-C është banane. 78 00:04:15,000 --> 00:04:19,000 Ajo është si asgjë që ne kemi parë më parë, 79 00:04:19,000 --> 00:04:22,000 kështu që është pak e një kurbë të mësuarit duke u përdorur për të 80 00:04:22,000 --> 00:04:24,000 Çfarë dreq do të thotë kjo? 81 00:04:24,000 --> 00:04:27,000 Por sapo ju të merrni kaluara se kurbë të mësuarit fillestar është e vërtetë, të vërtetë të qetë 82 00:04:27,000 --> 00:04:29,000 për të filloni të shkruani Apps. 83 00:04:29,000 --> 00:04:33,000 >> Të deklarojë një klasë, për të thënë këtu është klasa ime, ajo ekziston, 84 00:04:33,000 --> 00:04:35,000 dhe ndoshta këtu janë disa gjëra që unë jam duke shkuar për të përcaktuar më vonë, 85 00:04:35,000 --> 00:04:38,000 Unë jam duke shkuar për të thonë @ interface. 86 00:04:38,000 --> 00:04:41,000 Unë jam duke shkuar për të thonë @ interface. Unë jam duke shkuar për të dhënë një emër klasën time. 87 00:04:41,000 --> 00:04:43,000 Dhe pastaj më vonë diku tjetër unë jam duke shkuar për të thonë @ fund, 88 00:04:43,000 --> 00:04:46,000 dhe çdo gjë në mes interface @ @ dhe në fund 89 00:04:46,000 --> 00:04:48,000 do të jetë klasa ime. 90 00:04:48,000 --> 00:04:51,000 Që do të jetë ajo që është brenda e dosjeve. Tona h. 91 00:04:51,000 --> 00:04:55,000 Ashtu si në C. Tona h fotografi në thelb tha se këtu janë disa gjëra që do të ekzistojnë. 92 00:04:55,000 --> 00:04:57,000 Unë nuk jam domosdoshmërisht duke u thënë se çfarë bëjnë ata ende, 93 00:04:57,000 --> 00:04:59,000 por përpiluesit duhet të dinë se ata ekzistojnë. 94 00:04:59,000 --> 00:05:04,000 Më vonë brenda. Fotografi m tonë-sepse m për Objective-C 95 00:05:04,000 --> 00:05:08,000 po ku jeni në të vërtetë do të përcaktojë se çfarë bëjnë këto klasa. 96 00:05:08,000 --> 00:05:11,000 Shumë si fotografi. Tona c, kemi dhënë një zbatim për funksionet. 97 00:05:11,000 --> 00:05:15,000 Brenda. M dosjen tonë, ne jemi duke shkuar për të thënë këtu është ajo që të gjitha funksionet 98 00:05:15,000 --> 00:05:18,000 brenda klasës im atë-ata të gjithë bëjnë. 99 00:05:18,000 --> 00:05:22,000 Dhe së fundi, brenda një struct ne mund të themi brenda këtyre formatimin e teksteve kaçurrel 100 00:05:22,000 --> 00:05:25,000 int n ose nyje * ardhshme 101 00:05:25,000 --> 00:05:28,000 dhe në Objektivi-C ne jemi duke shkuar për të përdorur fjalen @ pronën, 102 00:05:28,000 --> 00:05:31,000 dhe kjo është ajo që do të përcaktojë vetitë, 103 00:05:31,000 --> 00:05:36,000 ose jo-funksionet që janë një pjesë e klasat e mia. 104 00:05:36,000 --> 00:05:40,000 >> Thirrja e funksioneve në Objective-C është gjithashtu banane. 105 00:05:40,000 --> 00:05:43,000 Kur ne shpalli funksionet në C kemi thënë diçka si int foo 106 00:05:43,000 --> 00:05:46,000 dhe të hapur prindërve dhe pastaj i dha atij një listë të argumenteve. 107 00:05:46,000 --> 00:05:51,000 Kjo është ajo që shpallja metoda ose funksione duket si në Objektivi-C. 108 00:05:51,000 --> 00:05:54,000 Nëse unë dua të deklaroj një funksion ose një metodë 109 00:05:54,000 --> 00:05:58,000 ku unë jam duke thënë është metodë me të vërtetë vetëm një funksion që është një anëtar i një klasë, 110 00:05:58,000 --> 00:06:01,000 kështu lloj i këmbyeshëm, por jo të vërtetë, 111 00:06:01,000 --> 00:06:03,000 kështu që brenda metodës sime unë dua të krijuar një metodë të re. 112 00:06:03,000 --> 00:06:06,000 Ajo do të kthehen asgjë, kështu që ajo do të jetë e pavlefshme lloji. 113 00:06:06,000 --> 00:06:08,000 Kjo është lloj rikthimi i funksionit tim. 114 00:06:08,000 --> 00:06:11,000 Tani ne kemi parens këtu, sepse-unë nuk e di. 115 00:06:11,000 --> 00:06:14,000 Ardhshëm do të jetë emri i funksionit tim, 116 00:06:14,000 --> 00:06:17,000 dhe pastaj në fund kemi një pikëpresje ashtu si kishim në C. 117 00:06:17,000 --> 00:06:19,000 Çka është e re këtu është ky djalë këtu. 118 00:06:19,000 --> 00:06:22,000 Kjo vizë është në të vërtetë e nevojshme, dhe çfarë thotë kjo është se 119 00:06:22,000 --> 00:06:26,000 kjo metodë këtu duhet të thirret në një shembull të një klase. 120 00:06:26,000 --> 00:06:29,000 >> Pasi kemi deklaruar structs tona ne ndoshta tha diçka si 121 00:06:29,000 --> 00:06:32,000 struct n nyjë, dhe që ka krijuar në fakt 122 00:06:32,000 --> 00:06:35,000 ose instantiated një nga ato structs mënyrë që unë mund të vërtetë të fillojë të punojë 123 00:06:35,000 --> 00:06:38,000 me atë që është në brendësi të saj, kështu që kjo do të thotë se ne dash duhet të 124 00:06:38,000 --> 00:06:41,000 ilustroj me shembull konkret klasën ashtu si ne instantiated se struct 125 00:06:41,000 --> 00:06:43,000 para se ne mund ta quajmë këtë metodë në të. 126 00:06:43,000 --> 00:06:46,000 Nëse unë dua të fillojë duke shtuar argumente për metodat e mia 127 00:06:46,000 --> 00:06:48,000 ajo merr edhe më shumë banane. 128 00:06:48,000 --> 00:06:50,000 Këtu është emri im metodë. 129 00:06:50,000 --> 00:06:53,000 Atëherë unë jam do të ketë një zorrë e trashë, zorrës së trashë dhe pas kësaj ai thotë se këtu vjen disa argumente. 130 00:06:53,000 --> 00:06:56,000 Kjo metodë merr një argument. 131 00:06:56,000 --> 00:06:59,000 Lloji i argumentit saj është një int, dhe emri i asaj argumentit 132 00:06:59,000 --> 00:07:03,000 ose variabël që unë jam duke shkuar për të filluar përdorimin e metodës brenda quhet i. 133 00:07:03,000 --> 00:07:05,000 Përsëri, kjo është metodë. Ajo merr një argument. 134 00:07:05,000 --> 00:07:10,000 >> Nëse ju doni të filloni duke shtuar argumente më shumë ajo merr më shumë banane 135 00:07:10,000 --> 00:07:13,000 në atë që ne kemi këtë zorrës së trashë që thotë se këtu vjen listën time të argumenteve. 136 00:07:13,000 --> 00:07:15,000 Ky argumenti i parë është një numër i plotë. 137 00:07:15,000 --> 00:07:17,000 Tani, ky argument i dytë është interesante. 138 00:07:17,000 --> 00:07:20,000 Variabli që unë jam duke shkuar për të përdorur në brendësi të funksionit tim 139 00:07:20,000 --> 00:07:23,000 është quajtur f, kështu që brenda funksionit tim unë mund të them 140 00:07:23,000 --> 00:07:25,000 f + = 1 ose diçka. 141 00:07:25,000 --> 00:07:30,000 Kjo gjë këtu është në thelb një çelës për atë argumenti apo parametër. 142 00:07:30,000 --> 00:07:34,000 Ashtu si kemi pasur çiftet kyç vlerë dhe diçka si JSON apo vargjeve associative 143 00:07:34,000 --> 00:07:37,000 Objektivi-C e mori vendimin për të thënë, në rregull, vetëm në mënyrë që ajo është me të vërtetë e qartë 144 00:07:37,000 --> 00:07:39,000 kur ju telefononi atë një metodë të gjitha këto parametra janë 145 00:07:39,000 --> 00:07:41,000 Unë në fakt jam duke shkuar për të përmendur të gjithë ata. 146 00:07:41,000 --> 00:07:45,000 Kur ju telefononi një metodë, ju do të vërtetë të them andFloat, 147 00:07:45,000 --> 00:07:47,000 dhe pastaj ju do të kalojë atë in 148 00:07:47,000 --> 00:07:50,000 >> Interesant, kjo nuk është emëruar, por të gjithë parametrat e tjerë janë, 149 00:07:50,000 --> 00:07:53,000 kështu që nëse kemi pasur një argument të 3 Unë mund të them andFloat 150 00:07:53,000 --> 00:07:56,000 dhe një tjetër noton dhe kështu me radhë. 151 00:07:56,000 --> 00:08:01,000 Kur unë e quaj këto metoda është i banane natyrisht, 152 00:08:01,000 --> 00:08:04,000 kështu që nëse unë kam një objekt, dhe unë përcaktuar një metodë të quajtur foo, 153 00:08:04,000 --> 00:08:09,000 dhe unë dua ta quaj atë, në vend se duke thënë foo hapur / ngushtë parens 154 00:08:09,000 --> 00:08:11,000 Unë jam duke shkuar për të hapur një parantezë. 155 00:08:11,000 --> 00:08:13,000 Këtu është emri i metodës sime. 156 00:08:13,000 --> 00:08:17,000 Unë jam duke shkuar për të mbyllur kllapa, dhe kjo është objekti që unë jam duke e quajtur atë në. 157 00:08:17,000 --> 00:08:20,000 Mos harroni, të gjitha këto metoda ekzistojnë brenda klasave 158 00:08:20,000 --> 00:08:23,000 sepse klasa mund të ketë metoda të përcaktuara në brendësi të tyre. 159 00:08:23,000 --> 00:08:26,000 >> Këtu kam krijuar arbitrarisht një objekt të disa klasë, 160 00:08:26,000 --> 00:08:28,000 dhe kjo është sintaksë për të bërë këtë. 161 00:08:28,000 --> 00:08:31,000 Ka 2 hapa për krijimin e një objekti. 162 00:08:31,000 --> 00:08:34,000 Hapi i parë është për të thonë se unë dua të ndajë hapësirë. 163 00:08:34,000 --> 00:08:37,000 Kjo është ekuivalente e një malloc. Ne nuk duhet të themi malloc më. 164 00:08:37,000 --> 00:08:42,000 Ne ra m, e bëri atë shenjat e, dhe zëvendësoi. C me. M. 165 00:08:42,000 --> 00:08:47,000 Pasi kemi diçka shenjat e ne atëherë duhet të nisja atë. 166 00:08:47,000 --> 00:08:49,000 Në thelb, kur ju krijoni objekte që ju mund të dëshironi që të ketë një logjikë 167 00:08:49,000 --> 00:08:53,000 që ekzekuton kur ata janë krijuar, kështu që ju mund të kalojë në disa vlerat default 168 00:08:53,000 --> 00:08:57,000 ose diçka të tillë, dhe kështu kjo metodë init është ajo që në fakt krijon objektin. 169 00:08:57,000 --> 00:08:59,000 Ne e parë ndajë hapësirë, ashtu si ne e bëmë në C, 170 00:08:59,000 --> 00:09:04,000 dhe pastaj ne nisja atë, e cila mund ose nuk mund të bëjë një tërësi shumë. 171 00:09:04,000 --> 00:09:07,000 Pastaj ne jemi të kthyer këtë gjë në një objekt o. 172 00:09:07,000 --> 00:09:09,000 Ka një yll këtu, sepse kjo është teknikisht një akrep, 173 00:09:09,000 --> 00:09:12,000 por mos u bëni merak, nuk janë pointers se një marrëveshje e madhe në objektivin C-anymore. 174 00:09:12,000 --> 00:09:15,000 >> Tani ne kemi instantiated këtë klasë e quajtur NSObject, 175 00:09:15,000 --> 00:09:19,000 dhe kjo është vetëm një klasë të rastit se Apple ka. 176 00:09:19,000 --> 00:09:22,000 Ne kemi instantiated këtë, dhe tani unë kam një shembull të kësaj klase 177 00:09:22,000 --> 00:09:25,000 në këtë o objekt, kështu që do të thotë se në qoftë se unë të përcaktuara 178 00:09:25,000 --> 00:09:29,000 këto metoda unë mund të telefononi ata si kjo. 179 00:09:29,000 --> 00:09:31,000 Në mënyrë të ngjashme, nëse kam kërkuar për të thirrur një metodë me një argument, 180 00:09:31,000 --> 00:09:34,000 kështu që kjo është metoda bar, që merr një argument, 181 00:09:34,000 --> 00:09:38,000 dhe këtu është Baz: Metoda qux, kështu që kjo merr 2 argumente. 182 00:09:38,000 --> 00:09:44,000 Kjo është quajtur një funksion në këtë objekt o. 183 00:09:44,000 --> 00:09:46,000 Kuptim? 184 00:09:46,000 --> 00:09:50,000 Sintaksa duhet të ketë kuptim, por ju lloj i të mësohen me të. 185 00:09:50,000 --> 00:09:54,000 >> Mirë, le të flasim për disa gjëra që janë ndërtuar në Objective-C 186 00:09:54,000 --> 00:09:56,000 që nuk janë ndërtuar domosdoshmërisht në C. 187 00:09:56,000 --> 00:09:59,000 Në C, ne lloj i duhej të merrej me vargjet si këto vargjeve karakter idiote, 188 00:09:59,000 --> 00:10:01,000 dhe ajo mori me të vërtetë i bezdisshëm. 189 00:10:01,000 --> 00:10:04,000 Objektivi-C ka ndërtuar të gjitha në ato për ne, dhe e ndërtuar në 190 00:10:04,000 --> 00:10:06,000 duke përdorur këtë klasë e quajtur NSString. 191 00:10:06,000 --> 00:10:10,000 Kur unë dua të krijuar një NSString kemi sintaksë më misterioze. 192 00:10:10,000 --> 00:10:15,000 Në vend se duke thënë se "CS50" Ne nuk themi @ "CS50" 193 00:10:15,000 --> 00:10:17,000 dhe kjo është vetëm sintaksë për shpalljen vargjet në objektivin C-. 194 00:10:17,000 --> 00:10:21,000 Kjo është jashtëzakonisht e lehtë të harrojmë, kështu që nuk e bëjnë. 195 00:10:21,000 --> 00:10:24,000 Tani, pasi unë kam këtë, kjo është një string, por njoftim 196 00:10:24,000 --> 00:10:26,000 kjo është me të vërtetë vetëm një objekt. 197 00:10:26,000 --> 00:10:30,000 Unë i thashë NSString, që do të thotë unë instantiated klasën 198 00:10:30,000 --> 00:10:32,000 quajtur NSString, që dikush tjetër ka shkruar për mua, 199 00:10:32,000 --> 00:10:35,000 dhe ata ishin shumë të bukur në lidhje me të, dhe kështu që tani 200 00:10:35,000 --> 00:10:37,000 Unë mund të filloni duke e quajtur metodat mbi të. 201 00:10:37,000 --> 00:10:40,000 Nëse unë e quaj gjatësinë metodë për këtë objekt s 202 00:10:40,000 --> 00:10:43,000 ajo do të kthehet tek unë gjatësinë e vargut. 203 00:10:43,000 --> 00:10:45,000 Kjo është vetëm si strlen në C. 204 00:10:45,000 --> 00:10:47,000 Kjo do të kthehej 4. 205 00:10:47,000 --> 00:10:51,000 >> Në mënyrë të ngjashme, një tjetër metodë që unë mund të duan të kujdesen për këtë është characterAtIndex. 206 00:10:51,000 --> 00:10:54,000 Kjo është një metodë që thotë se për këtë varg s 207 00:10:54,000 --> 00:10:57,000 Unë dua që ju të merrni karakterin 0, 208 00:10:57,000 --> 00:10:59,000 dhe kështu që kjo do të kthehet në mua c karakter, 209 00:10:59,000 --> 00:11:02,000 dhe ka një bandë e tërë më shumë nga këto metoda që ju mund të Google me të vërtetë lehtë. 210 00:11:02,000 --> 00:11:07,000 Dokumentacioni i Apple është i madh, dhe ne do të hedhim një vështrim në se në një grimë. 211 00:11:07,000 --> 00:11:09,000 Ata janë vargjet. 212 00:11:09,000 --> 00:11:11,000 Ne gjithashtu kemi vargjeve ndryshueshme madhësia ndërtuar in 213 00:11:11,000 --> 00:11:13,000 Kujtohet në C kur ne shpalli një sërë 214 00:11:13,000 --> 00:11:16,000 ne duhet të thonë se ju keni 5 elemente, fundi i tregimit. 215 00:11:16,000 --> 00:11:18,000 Kur ne mori të JavaScript dhe PHP ne mund të fillojë 216 00:11:18,000 --> 00:11:20,000 duke bërë gjëra të tilla si duke shtuar elemente ose duke lëvizur elementet. 217 00:11:20,000 --> 00:11:22,000 Ne mund të bëjmë të njëjtën gjë në Objektivi-C. 218 00:11:22,000 --> 00:11:26,000 Në vend se të krijojnë një rrjet në mënyrë normale C 219 00:11:26,000 --> 00:11:30,000 ne kemi përsëri një tjetër klasë e quajtur NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 Ka gjithashtu NSArray, 221 00:11:33,000 --> 00:11:35,000 dhe kjo do të në thelb encapsulate disa koleksion. 222 00:11:35,000 --> 00:11:38,000 Kjo thotë se gjëja e parë që unë dua të bëj është që unë dua të ndajë 223 00:11:38,000 --> 00:11:41,000 hapësirë ​​për një grup të ri, dhe pasi kam ndajë atë 224 00:11:41,000 --> 00:11:43,000 Unë pastaj duhet të nisja atë. 225 00:11:43,000 --> 00:11:45,000 Përsëri, vetëm duke e quajtur këto 2 metoda. 226 00:11:45,000 --> 00:11:48,000 Tani kjo do të thotë se brenda këtij objekti një 227 00:11:48,000 --> 00:11:50,000 Unë kam një koleksion bosh ulur atje. 228 00:11:50,000 --> 00:11:54,000 Në qoftë se unë dua të shtoj diçka për këtë grup, unë mund të telefononi metodën addObject. 229 00:11:54,000 --> 00:11:59,000 Unë dua të shtoni një objekt në një grup, dhe unë dua të shtoj vargun CS50. 230 00:11:59,000 --> 00:12:02,000 Nëse kam kërkuar për të hequr anasjelltas që unë mund të them se unë dua të 231 00:12:02,000 --> 00:12:09,000 hiqni objektin në vendin e parë në grup, ose të kundërshtojë a. 232 00:12:09,000 --> 00:12:11,000 >> Kuptim? 233 00:12:11,000 --> 00:12:14,000 Mirë, ju lloj i të mësohen me këtë gjë katror kllapa. 234 00:12:14,000 --> 00:12:18,000 Nga rruga, brenda një shumë të bibliotekave Apple ju do të shihni këtë ns. 235 00:12:18,000 --> 00:12:21,000 NS fakt qëndron për hapin e ardhshëm, i cili ishte një nga kompanitë e para, Steve Jobs 236 00:12:21,000 --> 00:12:24,000 dhe kjo është ajo ku ai me të vërtetë filloi të shkruajë një shumë të kodit 237 00:12:24,000 --> 00:12:27,000 si lloj bazë për Mac OS X dhe të gjithë e sende të tjera, 238 00:12:27,000 --> 00:12:32,000 dhe kështu kjo NS është lloj i këtij legut këndshme bërtas jashtë tek një nga kompanitë mëparshme 239 00:12:32,000 --> 00:12:34,000 mbrapa kur Apple ishte parë duke filluar nga. 240 00:12:34,000 --> 00:12:36,000 Është kudo. 241 00:12:36,000 --> 00:12:41,000 Le të marrin një vështrim në një më Objektivi-C shembull shenjte. 242 00:12:41,000 --> 00:12:44,000 Këtu unë jam në brendësi të XCode. 243 00:12:44,000 --> 00:12:47,000 Për të marrë këtu, kam parë XCode shkarkuar nga App Store, 244 00:12:47,000 --> 00:12:50,000 hapi atë, dhe pastaj unë shkova deri këtu për fotografi, 245 00:12:50,000 --> 00:12:54,000 mbi këtu për projektin e ri, dhe pastaj. 246 00:12:54,000 --> 00:12:57,000 Pas bëj që kanë të gjitha këto opsione e asaj që unë dua të krijuar, 247 00:12:57,000 --> 00:12:59,000 dhe kështu që ne do të hedhim një vështrim në këto opsione vonë, 248 00:12:59,000 --> 00:13:03,000 por vetëm për këtë shembull, sepse ne nuk jeni në të vërtetë do të ketë një app ende, 249 00:13:03,000 --> 00:13:06,000 Unë kam ardhur këtu poshtë, dhe unë i thashë Command Line Tool, 250 00:13:06,000 --> 00:13:09,000 dhe kjo është një app që unë mund të kandidojë në command line 251 00:13:09,000 --> 00:13:12,000 ashtu si ne kemi qenë drejtimin nga C. 252 00:13:12,000 --> 00:13:16,000 Kjo është se si kam krijuar këtë projekt, dhe kështu që tani unë jam këtu, 253 00:13:16,000 --> 00:13:20,000 kështu që le të shohim të parë në këtë skedar, dhe kjo duhet të duket goxha e njohur. 254 00:13:20,000 --> 00:13:24,000 Unë kam një emër int. Ka argc shoku im, shoku im argv tjera. 255 00:13:24,000 --> 00:13:30,000 Dhe kështu që ne mund të shohim se kjo është pika e hyrjes për aplikimin tim të parë Objective-C. 256 00:13:30,000 --> 00:13:32,000 Këtu mund të injorojë këtë tani për tani. 257 00:13:32,000 --> 00:13:35,000 Kjo është në thelb një menaxhimi kujtesës gjëra që ju do të vërtetë nuk 258 00:13:35,000 --> 00:13:37,000 ndonjëherë kanë për t'u shqetësuar rreth. 259 00:13:37,000 --> 00:13:39,000 >> Le të shikojmë në këtë bllok të parë këtu. 260 00:13:39,000 --> 00:13:46,000 Kjo linjë e parë, në qoftë se unë them Student * alice = [[shenjat e Student] init] se çfarë është duke bërë? 261 00:13:46,000 --> 00:13:50,000 Ky nxënës të parë këtu, kjo është ndoshta një klasë të. 262 00:13:50,000 --> 00:13:54,000 Kjo nuk është një klasë që Apple ka shkruar, por kjo është një klasë që kam shkruar. 263 00:13:54,000 --> 00:13:57,000 Gjëja e parë që unë dua të bëj është që unë dua të ndajë hapësirë ​​për një student të ri, 264 00:13:57,000 --> 00:14:00,000 dhe pastaj unë dua të nisja atë, kështu që kjo i jep mua mbrapa 265 00:14:00,000 --> 00:14:05,000 ky objekt i ri student, dhe unë jam ruajtjen këtë në një ndryshore të quajtur Alice. 266 00:14:05,000 --> 00:14:07,000 Ku ka që vijnë nga klasa? 267 00:14:07,000 --> 00:14:12,000 E pra, mbi këtu në anën e majtë këto janë të gjitha dosjet e ndryshme brenda e projektit tim. 268 00:14:12,000 --> 00:14:16,000 Ne mund të shohim këtu kam një Student.h dhe një Student.m. 269 00:14:16,000 --> 00:14:20,000 Të. Fotografi h, mbani mend, është vendi ku unë deklaroj të gjitha gjërat 270 00:14:20,000 --> 00:14:22,000 që do të ekzistojnë brenda klasës. 271 00:14:22,000 --> 00:14:25,000 >> Le të marrin një vështrim në atë. 272 00:14:25,000 --> 00:14:29,000 Të gjithë të drejtë, këtu kemi këtë ndërfaqe @, dhe kjo thotë se këtu vjen 273 00:14:29,000 --> 00:14:33,000 deklaratat e çdo gjëje që do të ekzistojë brenda klasës sime. 274 00:14:33,000 --> 00:14:36,000 Atëherë unë kam një zorrë e trashë. Atëherë unë kam këtë gjë NSObject. 275 00:14:36,000 --> 00:14:40,000 Kjo do të thotë që zorrës së trashë pak trashëgimi që ne po diskutojmë pak më herët. 276 00:14:40,000 --> 00:14:43,000 Kjo thotë gjithçka mund të bëjë një NSObject 277 00:14:43,000 --> 00:14:46,000 ku NSObject është kjo klasë shkruar nga dikush tjetër, 278 00:14:46,000 --> 00:14:50,000 gjithçka këtë NSObject mund të bëjë unë dua të jem në gjendje të bëjë këtë. 279 00:14:50,000 --> 00:14:54,000 Duke thënë: NSObject që do të thotë se unë në thelb 280 00:14:54,000 --> 00:14:58,000 trashëguar të gjithë funksionalitetin e një klase tjetër. 281 00:14:58,000 --> 00:15:02,000 Që me të vërtetë më dha një bandë e tërë e metodave të ndryshme dhe pronat që unë mund të përdorni. 282 00:15:02,000 --> 00:15:05,000 Poshtë këtu unë jam duke krijuar 2 prona. 283 00:15:05,000 --> 00:15:08,000 Kjo do të thotë nxënës time, në qoftë se kjo ishte një struct, këto do të jenë 2 gjëra 284 00:15:08,000 --> 00:15:11,000 brenda struct tim, në mënyrë që çdo student ka një emër 285 00:15:11,000 --> 00:15:14,000 se është një varg, dhe një studenti gjithashtu ka një grade, 286 00:15:14,000 --> 00:15:17,000 cila është një int. 287 00:15:17,000 --> 00:15:23,000 >> Së fundi, këtu poshtë unë jam duke shkuar për të krijuar një metodë për nxënës tim. 288 00:15:23,000 --> 00:15:26,000 I quajtur metoda ime, initWithName, dhe kjo merr një argument, 289 00:15:26,000 --> 00:15:31,000 dhe se argumenti është një varg, dhe unë e quajti atë emër. 290 00:15:31,000 --> 00:15:35,000 Tani le të shohim se si ne fakt zbatuar këtë klasë. 291 00:15:35,000 --> 00:15:38,000 Këtu, tani unë jam në brendësi të. Dosjen time m, 292 00:15:38,000 --> 00:15:40,000 m për zbatim, I guess. 293 00:15:40,000 --> 00:15:44,000 Unë kam zbatimin tim, fundi im, dhe këtu është vendi ku unë jam në të vërtetë përcaktimin 294 00:15:44,000 --> 00:15:47,000 çfarë initWithName bën. 295 00:15:47,000 --> 00:15:50,000 Unë kam initWithName, emrin e parametrit tim, dhe pastaj ky 296 00:15:50,000 --> 00:15:53,000 është vendi ku unë jam në të vërtetë duke krijuar një student, 297 00:15:53,000 --> 00:15:56,000 dhe kështu që kjo është pak fshehtë, por kjo është lloj i Boilerplate 298 00:15:56,000 --> 00:15:58,000 që ju doni të përfshijë në ndërtuesve tuaj. 299 00:15:58,000 --> 00:16:02,000 Ky funksion initialization këtu, initWithName, është një lloj i konstruktorit. 300 00:16:02,000 --> 00:16:05,000 Ju jeni në thelb ndërtimin e një objekti të ri studentore 301 00:16:05,000 --> 00:16:07,000 dhe ndoshta dërguar disa të dhëna në brendësi të saj. 302 00:16:07,000 --> 00:16:11,000 Gjëja e parë që unë dua të bëj është që unë dua të thirrur init në këtë gjë super. 303 00:16:11,000 --> 00:16:15,000 >> Mos harroni se kur kam thënë përsëri këtu në dosje. H 304 00:16:15,000 --> 00:16:21,000 se çdo gjë ka një NSObject një student ka gjithashtu. 305 00:16:21,000 --> 00:16:24,000 Kjo do të thotë kur të krijoj një student që edhe unë duhet të bëni është 306 00:16:24,000 --> 00:16:28,000 sigurohuni që NSObject që unë jam trashëguar të gjitha këto të dhëna nga 307 00:16:28,000 --> 00:16:32,000 është initialized gjithashtu duhet. 308 00:16:32,000 --> 00:16:36,000 Ajo që unë duhet të them është kjo super është në të vërtetë do të referohen në klasë prind 309 00:16:36,000 --> 00:16:39,000 që unë jam trashëguar nga, kështu që unë dua të bëni të sigurtë që unë nisja 310 00:16:39,000 --> 00:16:43,000 çdo gjë që unë jam në varësi para se të filloni duke u përpjekur për të përdorur atë. 311 00:16:43,000 --> 00:16:46,000 Pastaj në qoftë se initialized saktë kjo është vetëm si duke thënë, nëse malloc 312 00:16:46,000 --> 00:16:50,000 nuk kthehen null atëherë unë mund të fillojnë vendosjen e disa pronave. 313 00:16:50,000 --> 00:16:54,000 >> Në JavaScript dhe PHP kishim kete fjalen e quajti këtë, 314 00:16:54,000 --> 00:16:58,000 dhe kjo referuar shkallës aktuale e një klase. 315 00:16:58,000 --> 00:17:00,000 Në Objektivi C-ne e quajmë këtë vetë. 316 00:17:00,000 --> 00:17:04,000 Kur them self.name, që do të thotë se objekti 317 00:17:04,000 --> 00:17:07,000 Unë vetëm krijuar, kur kam thënë shenjat e studentëve init, 318 00:17:07,000 --> 00:17:09,000 që do të më japësh përsëri një objekt. 319 00:17:09,000 --> 00:17:12,000 Kjo do të thotë unë dua të vendosur emrin e atij objekti 320 00:17:12,000 --> 00:17:15,000 për çdo gjë që unë vetëm kaloi in 321 00:17:15,000 --> 00:17:18,000 Ashtu si në C, ne qasje anëtarë me këtë pikë, 322 00:17:18,000 --> 00:17:21,000 kështu self.name thotë se emri i objektit të studentëve 323 00:17:21,000 --> 00:17:24,000 tani do të jetë çdo gjë që ju sapo kaloi in 324 00:17:24,000 --> 00:17:28,000 Dhe kështu në fund, unë mund të kthejë atë kështu që unë në fakt të marrë përsëri diçka. 325 00:17:28,000 --> 00:17:30,000 >> Pyetje? 326 00:17:30,000 --> 00:17:34,000 Mirë, kështu që ky vetë super = init, 327 00:17:34,000 --> 00:17:37,000 në qoftë se ju nuk e kuptoni plotësisht stuff trashëgimi mos u bëni merak. 328 00:17:37,000 --> 00:17:40,000 Vetëm e di se nëse ndonjëherë ju doni të bëni vetë metodën tuaj init vetëm 329 00:17:40,000 --> 00:17:42,000 ta bëjë këtë, dhe ju do të jetë mirë për të shkuar. 330 00:17:42,000 --> 00:17:44,000 Po. >> [Student] Çfarë do të thotë nëse vetë? 331 00:17:44,000 --> 00:17:49,000 Kjo do të thotë kur ne malloc diçka që ne gjithmonë të kontrolluar nëse ajo ishte e barabartë me null, 332 00:17:49,000 --> 00:17:51,000 dhe në qoftë se ajo ishte null, atëherë ne exited. 333 00:17:51,000 --> 00:17:55,000 Kjo është e njëjta gjë, sepse në qoftë se ky null kthimit, atëherë ne do të jemi me siguri faj Seg 334 00:17:55,000 --> 00:17:57,000 nëse ne filloni duke u përpjekur për të manipuluar atë. 335 00:17:57,000 --> 00:18:01,000 Kjo është klasa jonë student. 336 00:18:01,000 --> 00:18:03,000 Kjo do të thotë që ne mund të nisja studentët tanë në një nga dy mënyra. 337 00:18:03,000 --> 00:18:08,000 Nëse unë them shenjat e studentëve init unë nuk jam duke përdorur këtë metodë që unë vetëm shkroi, 338 00:18:08,000 --> 00:18:11,000 dhe në vend që unë thjesht mund të them alice.name, 339 00:18:11,000 --> 00:18:14,000 dhe tani unë jam duke shkuar për të vendosur këtë emër të pronës. 340 00:18:14,000 --> 00:18:17,000 >> Në mënyrë të ngjashme, në qoftë se unë dua të përdorin atë metodë initWithName 341 00:18:17,000 --> 00:18:20,000 Unë thjesht mund të them shenjat e, dhe pastaj në vend se duke thënë init 342 00:18:20,000 --> 00:18:24,000 Unë jam duke shkuar për të thirrur atë metodë që kam krijuar vetëm, dhe unë jam duke shkuar për të kaluar në Bob. 343 00:18:24,000 --> 00:18:30,000 Në këtë pikë, kjo Bob objekt ka një emër të barabartë me Bob. 344 00:18:30,000 --> 00:18:35,000 Mirë, këtu poshtë unë jam duke përdorur atë që ne NSMutableArray dukej në fillim. 345 00:18:35,000 --> 00:18:38,000 Unë jam ndarjes space.Then Unë jam Initializing një koleksion të ri. 346 00:18:38,000 --> 00:18:40,000 Unë jam duke shkuar për të shtuar 2 gjëra për të. 347 00:18:40,000 --> 00:18:43,000 Ky grup tani mban objekte të studentëve. 348 00:18:43,000 --> 00:18:46,000 Vini re se askund nuk kam për të thonë se kjo është një grup i nxënësve. 349 00:18:46,000 --> 00:18:48,000 I tha se është një koleksion, periudhë. 350 00:18:48,000 --> 00:18:50,000 Atëherë unë mund të vënë çdo gjë brenda atë që unë dua. 351 00:18:50,000 --> 00:18:52,000 Këtu kam 2 objekte. 352 00:18:52,000 --> 00:18:56,000 >> Së fundi, unë kam një tjetër objekt këtu, këtë TF. 353 00:18:56,000 --> 00:18:59,000 Mbi këtu në TF.h në thelb të njëjtën gjë. 354 00:18:59,000 --> 00:19:01,000 Unë jam trashëguar nga NSObject, dhe nga mënyra, 355 00:19:01,000 --> 00:19:03,000 kur ju krijoni klasa kjo është bërë të gjithë për ju, 356 00:19:03,000 --> 00:19:06,000 ky lloj i Boilerplate interface. 357 00:19:06,000 --> 00:19:08,000 Ajo ka një pronë të studentëve. 358 00:19:08,000 --> 00:19:15,000 Unë kam një çift metodat këtu se nuk mund të vërtetë të bëjë një tërësi shumë, 359 00:19:15,000 --> 00:19:18,000 dhe kështu që do të thotë pas kam krijuar këtë objekt TF 360 00:19:18,000 --> 00:19:23,000 Unë mund të telefononi këtë notë metodë në të si kjo. 361 00:19:23,000 --> 00:19:26,000 Çdo pyetje në Objektivi-C sintaksë para se të fillojnë të lëvizin në disa më shumë 362 00:19:26,000 --> 00:19:30,000 interesante Apps gjëra zhvillim? 363 00:19:30,000 --> 00:19:34,000 >> Mirë, kështu që le të bëjë në fakt një iPhone app. 364 00:19:34,000 --> 00:19:39,000 Klasat kryesore që ju do të jetë duke përdorur brenda të app tuaj iPhone janë quajtur kontrolluesit view, 365 00:19:39,000 --> 00:19:42,000 dhe një kontrollues pamje thelb paraqet një ekran të vetme 366 00:19:42,000 --> 00:19:46,000 brenda app tuaj, kështu që në qoftë se unë jam në app muzikë, për shembull, 367 00:19:46,000 --> 00:19:50,000 një kontrollues pikëpamje mund të përfaqësojë pikëpamjen në të cilën unë të parë të gjitha këngët në iPhone tim. 368 00:19:50,000 --> 00:19:53,000 Një tjetër kontrollues pamje mund të jetë kur unë klikoni një këngë dhe të fillojnë të luajnë atë 369 00:19:53,000 --> 00:19:55,000 ose si unë jam poshtë në shpimin e artistëve. 370 00:19:55,000 --> 00:19:59,000 Secila prej këtyre ekraneve të ndryshme mund të përfaqësohet si një kontrollues pikëpamje të ndryshme, 371 00:19:59,000 --> 00:20:04,000 dhe një kontrollues pikëpamje është me të vërtetë vetëm një klasë që thotë se ky ekran punon. 372 00:20:04,000 --> 00:20:07,000 Gjërat brenda një kontrollues pamje, ne do të ketë pronat, 373 00:20:07,000 --> 00:20:10,000 kështu që gjëra të tilla si një butoni do të jetë pronë e kontrollues tonë view. 374 00:20:10,000 --> 00:20:13,000 >> Ne jemi gjithashtu do të ketë metoda, dhe këto janë në thelb handlers ngjarje. 375 00:20:13,000 --> 00:20:16,000 Kjo metodë thotë se kur të shtypni këtë buton 376 00:20:16,000 --> 00:20:19,000 Unë dua të bëj diçka, dhe më në fund, përsëri, 377 00:20:19,000 --> 00:20:24,000 ne jemi duke shkuar për të përdorur këtë fjalen vetë për të hyrë në shembull aktual. 378 00:20:24,000 --> 00:20:29,000 Për të ndërtuar ndërfaqe në iOS është në të vërtetë me të vërtetë, të vërtetë e lehtë. 379 00:20:29,000 --> 00:20:32,000 Ata e kanë këtë zvarrit bukur dhe drop interface quajtur Interface Builder, 380 00:20:32,000 --> 00:20:37,000 dhe 2 Konceptet bazë që wire up C Objective-tuaj për Interface Builder 381 00:20:37,000 --> 00:20:40,000 janë IBOutlet dhe IBAction. 382 00:20:40,000 --> 00:20:44,000 Një IBOutlet thjesht thotë se në qoftë se ju të shpallë një pronë që është një buton, 383 00:20:44,000 --> 00:20:47,000 dhe ju doni të lidh atë deri në diçka në UI tuaj aktuale, 384 00:20:47,000 --> 00:20:49,000 ju jeni duke shkuar për të thonë se kjo është një prizë. 385 00:20:49,000 --> 00:20:51,000 Në mënyrë të ngjashme, në qoftë se ju doni të paraqesin një mbajtës ngjarje 386 00:20:51,000 --> 00:20:54,000 atëherë ju jeni duke shkuar për të thonë se kjo është një veprim. 387 00:20:54,000 --> 00:20:57,000 >> Që në fakt tela këtë paraqitje grafike 388 00:20:57,000 --> 00:21:00,000 dhe kodi juaj është e vërtetë, të vërtetë të thjeshtë. 389 00:21:00,000 --> 00:21:03,000 Nëse ju doni të lidhni një IBOutlet, të gjithë ju duhet të bëni është të klikoni ju kontroll, 390 00:21:03,000 --> 00:21:05,000 dhe ne do të shohim një shembull të kësaj të vërtetë të shpejtë. 391 00:21:05,000 --> 00:21:07,000 Ju kontroll klikoni ku ai thotë se Controller Shiko. 392 00:21:07,000 --> 00:21:09,000 Ju do të jeni të drag në interface, ose anasjelltas, 393 00:21:09,000 --> 00:21:13,000 në qoftë se ju doni të lidh një mbajtës ngjarje do të jeni të drag nga interface 394 00:21:13,000 --> 00:21:15,000 në drejtim tjetër. 395 00:21:15,000 --> 00:21:20,000 Le të marrin një vështrim në një shembull të vërtetë të thjeshtë iOS. 396 00:21:20,000 --> 00:21:23,000 >> Le të krijojnë një projekt të ri. 397 00:21:23,000 --> 00:21:25,000 Unë jam duke shkuar për të ardhur deri këtu për aplikim 398 00:21:25,000 --> 00:21:28,000 dhe unë jam duke shkuar për aplikim të vetëm klikoni View. 399 00:21:28,000 --> 00:21:31,000 Unë jam duke shkuar për të klikoni ardhshëm. Unë do të jap një emër projektin tim. 400 00:21:31,000 --> 00:21:33,000 Unë do të thërrasë atë Hello. 401 00:21:33,000 --> 00:21:36,000 Interesante, Apple supozon ju jeni duke krijuar një produkt 402 00:21:36,000 --> 00:21:38,000 në mënyrë që ju mund ta shesin atë dhe ata mund të bëjë para. 403 00:21:38,000 --> 00:21:41,000 Poshtë këtu unë jam duke shkuar për të thonë se kjo është një app iPhone. 404 00:21:41,000 --> 00:21:44,000 Ju mund të krijoni një app iPad, ose në qoftë se ju doni të krijoni një nga ato Apps 405 00:21:44,000 --> 00:21:47,000 që mbështet të dy pajisjet që ju mund të bëni atë shumë. 406 00:21:47,000 --> 00:21:49,000 Këto janë ato që ju doni checkmarks tuaj të duken si. 407 00:21:49,000 --> 00:21:51,000 >> Ju doni të përdorni Storyboards, të cilat ne do të shohim më vonë, 408 00:21:51,000 --> 00:21:54,000 dhe ju patjetër doni të përdorni numërimin automatike referimi, 409 00:21:54,000 --> 00:21:58,000 e cila është një karakteristikë e bukur që ju pengon nga detyrimi për të thënë malloc dhe të lirë. 410 00:21:58,000 --> 00:22:03,000 Nëse ju doni të telefononi malloc dhe të lirë, unë do të lënë këtë kontrolluar. 411 00:22:03,000 --> 00:22:07,000 Unë do të klikoni ardhshëm, dhe më në fund, kjo do të pyesni mua ku unë dua të të shpëtuar atë. 412 00:22:07,000 --> 00:22:14,000 Unë do të goditur të krijuar, dhe këtu ne do të shkojmë. 413 00:22:14,000 --> 00:22:16,000 I krijuar një projekt të ri. 414 00:22:16,000 --> 00:22:19,000 Mbi këtu në të majtë janë të gjitha dosjet që janë brenda projektin tim, 415 00:22:19,000 --> 00:22:22,000 dhe të vëreni se unë kam një bandë e tërë, dhe unë nuk e kam edhe të bëjë asgjë. 416 00:22:22,000 --> 00:22:24,000 IOS është e madhe. 417 00:22:24,000 --> 00:22:27,000 >> Për shembull, këtu këtë ViewController.h, 418 00:22:27,000 --> 00:22:30,000 kjo do të përfaqësojë parë kontrollues tim view, 419 00:22:30,000 --> 00:22:32,000 kështu ekranin e parë brenda të app tim. 420 00:22:32,000 --> 00:22:34,000 Tani ne e dimë se çfarë është duke thënë këtë. 421 00:22:34,000 --> 00:22:36,000 Ne jemi duke thënë se unë jam duke e quajtur këtë ViewController klasës, 422 00:22:36,000 --> 00:22:40,000 dhe një ViewController bën gjithçka që një UIViewController bën, 423 00:22:40,000 --> 00:22:43,000 dhe kjo, përsëri, është një klasë që Apple ka shkruar se ka shumë gjëra të dobishëm për ne 424 00:22:43,000 --> 00:22:46,000 si ekran ekran. 425 00:22:46,000 --> 00:22:50,000 Këtu është vendi ku unë mund të vërtetë të fillojë përcaktimin se çfarë kontrollues tim view bën, 426 00:22:50,000 --> 00:22:52,000 dhe kjo rezulton se unë me të vërtetë nuk kanë nevojë për asgjë nga këto. 427 00:22:52,000 --> 00:22:55,000 Ky është kodi Boilerplate se Apple jep mua për të lira. 428 00:22:55,000 --> 00:22:59,000 Unë nuk kanë nevojë për atë vijën e parë, ose unë nuk kanë një klasë, 429 00:22:59,000 --> 00:23:02,000 kështu që ne mund të shpëtoj nga kjo dhe të shpëtoj nga kjo. 430 00:23:02,000 --> 00:23:05,000 Mirë, kështu që kjo është ekranin tim bosh. 431 00:23:05,000 --> 00:23:08,000 >> Tani le të klikoni në këtë MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 dhe kjo është ajo ku fillon të marrë interesante. 433 00:23:11,000 --> 00:23:14,000 Kjo paraqet ekranin e parë në komponentin tim. 434 00:23:14,000 --> 00:23:17,000 Nëse unë dua të shtoni një buton, në HTML unë kam për të krijuar një tag button. 435 00:23:17,000 --> 00:23:20,000 Në Android ju duhet të krijoni një tag button, 436 00:23:20,000 --> 00:23:23,000 por në qoftë se unë vetëm iOS ardhur këtu poshtë në të djathtë fund 437 00:23:23,000 --> 00:23:27,000 dhe në qoftë se unë klikoni në këtë 3 here ku ai thotë se objekteve, 438 00:23:27,000 --> 00:23:31,000 dhe unë mund të lëvizni poshtë, ose unë mund të filloni të kërkoni për butonin. 439 00:23:31,000 --> 00:23:35,000 Dhe shikoni, një buton, kështu që në qoftë se unë në fakt të drag dhe drop këtë të drejtë atje, 440 00:23:35,000 --> 00:23:38,000 Unë kam shtuar vetëm një buton në këtë ekran në komponentin tim. 441 00:23:38,000 --> 00:23:41,000 Nëse unë dua të ndryshojë tekstin, unë mund të klikoni dy herë atë, 442 00:23:41,000 --> 00:23:47,000 thoni diçka joshës si "Shtypni Mua." 443 00:23:47,000 --> 00:23:51,000 Mirë, tani në qoftë se unë të drejtuar këtë app, kështu që ne hartojnë atë, 444 00:23:51,000 --> 00:23:54,000 mënyrë për të drejtuar atë klikoj butonin luajnë në të majtë të lartë, dhe ka app im. 445 00:23:54,000 --> 00:23:58,000 Unë nuk kam bërë asgjë, dhe kam marrë një app iPhone ëmbël në kërkim. 446 00:23:58,000 --> 00:24:01,000 Nëse unë dua të ndaluar atë, ju mund të klikoni butonin e ndaluar 447 00:24:01,000 --> 00:24:03,000 sepse kjo është më shumë argëtim. 448 00:24:03,000 --> 00:24:07,000 >> Le të thonë se unë në fakt duan diçka të ndodhë kur unë shtypni këtë buton. 449 00:24:07,000 --> 00:24:09,000 Për të bërë që ajo që unë duhet të bëni është që unë duhet të krijojë 450 00:24:09,000 --> 00:24:13,000 një mbajtës ngjarje te re ose një veprim. 451 00:24:13,000 --> 00:24:16,000 Kjo do të thotë se kam nevojë për të krijuar një metodë që unë dua të quhet 452 00:24:16,000 --> 00:24:18,000 kur shtyp butonin, kështu që le të krijojë një metodë të re. 453 00:24:18,000 --> 00:24:20,000 Unë jam në brendësi të ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Unë duhet të them se ekziston një metodë. 455 00:24:22,000 --> 00:24:26,000 Unë kam nevojë për një vizë ndarëse të parë, sepse unë jam duke shkuar për të bërë thirrje në këtë kontrollues view. 456 00:24:26,000 --> 00:24:28,000 Unë kam nevojë për të dhënë këtë një lloj. 457 00:24:28,000 --> 00:24:31,000 Lloji i kësaj do të jetë se gjëja IBAction që pamë më herët. 458 00:24:31,000 --> 00:24:35,000 Kjo është një mbajtës ngjarje, kështu që ajo do të kthehet një IBAction, 459 00:24:35,000 --> 00:24:38,000 dhe kjo është një aluzion për XCode të them se 460 00:24:38,000 --> 00:24:40,000 kjo është diçka që unë dua të tela diçka për të. 461 00:24:40,000 --> 00:24:45,000 Unë mund t'i jepte një emër, si pikëpresje buttonPressed,. 462 00:24:45,000 --> 00:24:48,000 >> Tani unë kam deklaruar një metodë të re brenda të klasës sime. 463 00:24:48,000 --> 00:24:50,000 Unë e kam thënë këtë metodë duhet të ekzistojë. 464 00:24:50,000 --> 00:24:53,000 Tani le të vijnë në ViewController.m, 465 00:24:53,000 --> 00:24:56,000 dhe le të thonë se çfarë kjo metodë mund të bëjë. 466 00:24:56,000 --> 00:25:03,000 Nëse unë filloni të shtypni, për shembull, (i pavlefshëm) buttonPressed 467 00:25:03,000 --> 00:25:06,000 Njoftim XCode është me të vërtetë e bukur dhe autocompletes për mua. 468 00:25:06,000 --> 00:25:09,000 Kjo është me të vërtetë e mrekullueshme. 469 00:25:09,000 --> 00:25:12,000 Vini re këtu se në brendësi të file. M unë mund të them pavlefshëm, 470 00:25:12,000 --> 00:25:15,000 dhe kjo është për shkak se IBAction nuk është në fakt një lloj. 471 00:25:15,000 --> 00:25:19,000 Është fakt hashtag përcaktuar diku të jetë një pavlefshëm, 472 00:25:19,000 --> 00:25:22,000 dhe përsëri, kjo është vetëm një aluzion për XCode që thotë 473 00:25:22,000 --> 00:25:25,000 Unë dua që kjo të jetë një mbajtës ngjarje, dhe ne do të shohim se pse në vetëm një të dytë. 474 00:25:25,000 --> 00:25:28,000 Kur kjo shtypet butoni unë jam duke shkuar për të bërë diçka të bezdisshëm 475 00:25:28,000 --> 00:25:30,000 doja shfaqur një dritare popup. 476 00:25:30,000 --> 00:25:35,000 >> Për të bërë që unë mund të krijojë një shembull të ri të kësaj klase të quajtur UIAlertView, 477 00:25:35,000 --> 00:25:39,000 dhe kjo është një klasë që shkroi se Apple do të shfaq popups bezdisshëm. 478 00:25:39,000 --> 00:25:43,000 Ne do të quajmë këtë alarm popup, dhe unë kam 2 hapa, mbani mend, në krijimin e këtij objekti. 479 00:25:43,000 --> 00:25:46,000 Gjëja e parë që duhet të bëni është të ndajë hapësirë. 480 00:25:46,000 --> 00:25:48,000 Unë dua një UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Unë dua të ndajë hapësirë. Kjo është metoda e ime e parë. 482 00:25:51,000 --> 00:25:53,000 Metoda im i ardhshëm është që unë dua të nisja atë, 483 00:25:53,000 --> 00:25:58,000 dhe kështu që unë kam këtë metodë të madhe, të gjatë të quajtur initWithTitle. 484 00:25:58,000 --> 00:26:01,000 Kjo është në thelb do të kontrollojë atë që ky popup thotë. 485 00:26:01,000 --> 00:26:04,000 Titulli i popup tim mund të jetë hello. 486 00:26:04,000 --> 00:26:08,000 Mesazhi i kësaj mund të jetë popup "Ky është iOS". 487 00:26:08,000 --> 00:26:10,000 Gjëja delegat, unë nuk e di se çka është. 488 00:26:10,000 --> 00:26:13,000 Le të thonë asgjë e saj. 489 00:26:13,000 --> 00:26:18,000 Tani buton që do të paraqitet mund të themi diçka si "Kjo është e sigurt," 490 00:26:18,000 --> 00:26:24,000 dhe unë nuk të vërtetë duan çdo butonat e tjera, kështu që le të fshini atë dhe të mbyllë kllapa. 491 00:26:24,000 --> 00:26:27,000 >> Mirë, unë krijuar një një shtesë. Nuk shkojmë. 492 00:26:27,000 --> 00:26:30,000 Kjo është se si unë mund të krijojë një popup re. 493 00:26:30,000 --> 00:26:35,000 Nëse unë dua që në fakt tregojnë popup unë dua për të thirrur metodën show. 494 00:26:35,000 --> 00:26:38,000 Për të bërë që unë mund të them vigjilent dhe të tregojnë, 495 00:26:38,000 --> 00:26:40,000 dhe përsëri, autocomplete ishte super nice. 496 00:26:40,000 --> 00:26:42,000 Nëse kam harruar atë që ishte, në qoftë se unë shtypur vetëm në S, 497 00:26:42,000 --> 00:26:45,000 Unë mund të lëvizni nëpër këtu për të kuptoj se çfarë ishte, 498 00:26:45,000 --> 00:26:48,000 dhe ajo filtron bukur. 499 00:26:48,000 --> 00:26:52,000 Tani unë krijuar këtë popup re. 500 00:26:52,000 --> 00:26:55,000 Ne do të kthehen në atë që i deleguari do të thotë më vonë, 501 00:26:55,000 --> 00:26:58,000 dhe tani unë dua të them se unë dua që kjo metodë të qëlluar 502 00:26:58,000 --> 00:27:01,000 kur shtyp butonin, kështu që unë jam duke shkuar për të ardhur përsëri në storyboard tim, 503 00:27:01,000 --> 00:27:04,000 dhe unë dua të bashkëngjitni tani këtë IBAction. 504 00:27:04,000 --> 00:27:06,000 Gjëja e parë që ju doni të bëni është të klikoni butonin. 505 00:27:06,000 --> 00:27:08,000 Kur unë shtypni këtë buton unë dua diçka të ndodhë. 506 00:27:08,000 --> 00:27:10,000 Unë nuk jam duke shkuar për të mbajtur kontrollin poshtë. 507 00:27:10,000 --> 00:27:13,000 Unë jam duke shkuar për të klikoni dhe terhiq nga butoni 508 00:27:13,000 --> 00:27:15,000 të gjatë këtu, ku ai thotë se Controller Shiko. 509 00:27:15,000 --> 00:27:17,000 Ne mund të shohim se ai dritat deri bukur. 510 00:27:17,000 --> 00:27:22,000 >> Në qoftë se unë le të shkojë me miun tim unë tani e kemi këtë popup gjatë këtu ku unë kam disa opsione. 511 00:27:22,000 --> 00:27:24,000 Një nga këto është se ngjarjet që unë mund të regjistrohen. 512 00:27:24,000 --> 00:27:28,000 Këto janë të gjitha ato që unë metodave të deklaruara në dosjen h tim si IBActions. 513 00:27:28,000 --> 00:27:31,000 Kjo është se si XCode e di se çfarë duhet të paraqitet në këtë listë të vogël, 514 00:27:31,000 --> 00:27:33,000 kështu që është vetëm një aluzion. 515 00:27:33,000 --> 00:27:37,000 Nëse unë klikoni mbi butonin presion, unë kam regjistruar tashmë mbajtës ngjarje. 516 00:27:37,000 --> 00:27:41,000 Në JavaScript ne kishim për të thënë: Unë kam disa kodin që regjistroi mbajtës ngjarje. 517 00:27:41,000 --> 00:27:43,000 Në Objektivi C-ajo ishte me të vërtetë e lehtë. 518 00:27:43,000 --> 00:27:46,000 Nëse unë drejtuar këtë përsëri 519 00:27:46,000 --> 00:27:49,000 tani kur shtyp butonin mbajtës im Ngjarja do të zjarrit, 520 00:27:49,000 --> 00:27:51,000 dhe unë jam duke shkuar për të marrë këtë popup. 521 00:27:51,000 --> 00:27:54,000 Super, super të thjeshtë atje. 522 00:27:54,000 --> 00:27:57,000 >> Nëse ndonjëherë ju doni të shihni të gjitha ngjarjet që ndodhin për t'u regjistruar 523 00:27:57,000 --> 00:28:00,000 në një komponent në qoftë se unë klikoni në këtë buton 524 00:28:00,000 --> 00:28:02,000 dhe kam ardhur gjatë këtu në anën e djathtë 525 00:28:02,000 --> 00:28:05,000 e parë që ju mund të shihni se këtu unë mund të bëjë gjëra të tilla si tipi i butonit, 526 00:28:05,000 --> 00:28:08,000 kështu që nëse ju dëshironi një nga ata që kam ose të butonit Shto kontakt 527 00:28:08,000 --> 00:28:10,000 apo çfarëdo. 528 00:28:10,000 --> 00:28:13,000 Nëse unë dua të shoh të gjitha ngjarjet që janë në këtë buton 529 00:28:13,000 --> 00:28:16,000 në qoftë se kam ardhur të gjithë rrugën gjatë këtu në anën e djathtë 530 00:28:16,000 --> 00:28:19,000 ne mund të shohim këtu në ngjarjet e kam të gjitha këto ngjarje të ndryshme. 531 00:28:19,000 --> 00:28:23,000 Unë mund të shtypni butonin, kur unë le të shkojnë e buton, kur unë dyfishtë trokitje e lehtë apo çfarëdo, 532 00:28:23,000 --> 00:28:26,000 dhe e kam regjistruar është vetëm kjo ngjarje quhet ndreq Brenda, 533 00:28:26,000 --> 00:28:29,000 dhe kjo thotë se sa më shpejt që gishti im vjen off button 534 00:28:29,000 --> 00:28:32,000 kjo ngjarje do të zjarrit, dhe kjo është pikërisht ajo që ndodhi. 535 00:28:32,000 --> 00:28:36,000 Kjo është lloj i ngjarjes butoni prezgjedhur presion. 536 00:28:36,000 --> 00:28:39,000 >> Çdo pyetje deri më tani? 537 00:28:39,000 --> 00:28:43,000 Mirë, kjo është se si ne mund të fillojnë të teli deri gjërat në kodin tonë 538 00:28:43,000 --> 00:28:46,000 në gjëra brenda ndërfaqes tonë. 539 00:28:46,000 --> 00:28:49,000 Mbani mend gjëja e parë që ne duhej të bënte ishte për të gjetur kodin, 540 00:28:49,000 --> 00:28:54,000 dhe pastaj ne Wired deri ndërfaqe për kodin, 541 00:28:54,000 --> 00:28:57,000 dhe ka app tonë të parë. 542 00:28:57,000 --> 00:29:00,000 Mirë, se ishte me të vërtetë e ftohtë, dhe ne kemi krijuar këtë buton. 543 00:29:00,000 --> 00:29:03,000 Çka nëse nuk bëjmë dëshironi të keni për të krijuar një bandë e pronave 544 00:29:03,000 --> 00:29:05,000 përfaqësojnë këto butona? 545 00:29:05,000 --> 00:29:08,000 Për shembull, në Tic Tac Toe kam 9 butona, 546 00:29:08,000 --> 00:29:11,000 dhe ajo do të jetë super, super bezdisshëm që të ketë për të drag and drop 9 herë 547 00:29:11,000 --> 00:29:14,000 ose në qoftë se unë kam për të bërë Tic Tac Toe me 81 në vend të 9 548 00:29:14,000 --> 00:29:17,000 dhe unë kam për të drag and drop 81 herë, dhe kjo është çalë. 549 00:29:17,000 --> 00:29:20,000 Çfarë mund të bëjmë në vend është shumë si një HTML 550 00:29:20,000 --> 00:29:23,000 kur kemi pasur gjëra të tilla si kartat e identitetit dhe emrat dhe ne mund të kërkoni për gjëra 551 00:29:23,000 --> 00:29:27,000 nga ID e tyre, ka një nocion të ngjashëm në iOS quhet tags. 552 00:29:27,000 --> 00:29:31,000 >> Një tag është thjesht një identifikues unik numerike për një komponent. 553 00:29:31,000 --> 00:29:34,000 Nëse unë them këtë ka një tag 0 të, për shembull, 554 00:29:34,000 --> 00:29:38,000 në qoftë se unë të krijuar një buton dhe t'i jepte një tag të 0, dhe ne do të shohim se si të bëjë vetëm se në një të dytë, 555 00:29:38,000 --> 00:29:41,000 në qoftë se unë dua të të marrë atë buton unë thjesht mund të thonë se unë dua të thërrasë 556 00:29:41,000 --> 00:29:45,000 the viewWithTag metodën mbi objektin gjatë këtu, 557 00:29:45,000 --> 00:29:48,000 the self.view, e cila përfaqëson ekran aktuale, për shembull. 558 00:29:48,000 --> 00:29:53,000 Nëse unë e quaj atë metodë viewWithTag, unë jam duke shkuar për të tërhequr përsëri butonin me tag 0. 559 00:29:53,000 --> 00:29:58,000 Le të marrin një vështrim në këtë duke ndërtuar Toe Tic Tac. 560 00:29:58,000 --> 00:30:01,000 Së pari, kjo është Storyboard ime. 561 00:30:01,000 --> 00:30:05,000 Unë kam krijuar këto 10 butona UI. 562 00:30:05,000 --> 00:30:07,000 Vini re se ata janë të gjithë të njëjtën madhësi. 563 00:30:07,000 --> 00:30:11,000 Nëse unë klikoni një nga këto dhe unë vij përsëri mbi këtu në këtë anën e djathtë 564 00:30:11,000 --> 00:30:15,000 ju do të shihni kam rregulluar font drejtë këtu, kështu që kam bërë font pak më e madhe, 565 00:30:15,000 --> 00:30:19,000 por ajo që unë bëra ishte edhe kam vendosur këtë tag. 566 00:30:19,000 --> 00:30:23,000 Kam thënë se kjo ka një tag prej 1, dhe kjo është e majta e lartë. 567 00:30:23,000 --> 00:30:26,000 >> Tani, në qoftë se unë klikoni një buton, si ky këtu të dytë, 568 00:30:26,000 --> 00:30:29,000 tani ju do të shihni se tag im është 2. 569 00:30:29,000 --> 00:30:32,000 Secila prej këtyre butonave ka vetëm një kod unik, 570 00:30:32,000 --> 00:30:35,000 dhe kështu kjo është më vonë se si unë jam duke shkuar për të filluar bashkëveprojmë 571 00:30:35,000 --> 00:30:38,000 me app tim. 572 00:30:38,000 --> 00:30:40,000 Kjo është e gjitha në brendësi të një kontrollues view, 573 00:30:40,000 --> 00:30:42,000 por këtu është ajo që ne kemi. 574 00:30:42,000 --> 00:30:44,000 Ne kemi 3 prona këtu. 575 00:30:44,000 --> 00:30:49,000 E para dhe e fundit do të përfaqësojnë shtetin e bordit tim. 576 00:30:49,000 --> 00:30:53,000 Në thelb kjo i parë është një grup që përfaqëson ku Xs dhe Os janë. 577 00:30:53,000 --> 00:30:57,000 Kjo tjetra këtu na tregon të cilit është rradha. 578 00:30:57,000 --> 00:31:01,000 Ju do të vëreni se Unë gjithashtu kanë këto gjëra këtu. 579 00:31:01,000 --> 00:31:05,000 Para se kur kemi shpallur prona ne u dha atyre një emër dhe një lloj. 580 00:31:05,000 --> 00:31:08,000 Ne gjithashtu mund të japë atyre disa informata shtesë këtu. 581 00:31:08,000 --> 00:31:11,000 Kjo së pari thotë nonatomic, dhe çfarë thotë ky 582 00:31:11,000 --> 00:31:16,000 është në thelb vetëm një gjë ndonjëherë do të jetë duke u përpjekur për të hyrë në këtë ndryshore në një kohë. 583 00:31:16,000 --> 00:31:19,000 Ju mund të bëni kërkesat më komplekse që janë multi-filetuara, 584 00:31:19,000 --> 00:31:22,000 dhe kështu përsëri në Scratch kishim temat e ndryshme, 585 00:31:22,000 --> 00:31:25,000 dhe sprites të ndryshme mund të bëjnë gjëra të ndryshme në të njëjtën kohë. 586 00:31:25,000 --> 00:31:29,000 >> Nëse kjo nuk është rasti, i cili nuk është në çdo gjë që ne do të jetë në kërkim në, 587 00:31:29,000 --> 00:31:33,000 nëse themi nonatomic është e vërtetë do të bëjë gjërat pak më të shpejtë. 588 00:31:33,000 --> 00:31:37,000 Ne gjithashtu kemi këtë gjë të quajtur caktojë, të fortë, ose të dobëta. 589 00:31:37,000 --> 00:31:40,000 Kjo caktojë vetëm i thotë se kjo është një lloj standardi. 590 00:31:40,000 --> 00:31:43,000 Kjo nuk është një objekt ose një akrep, sepse kjo është vetëm një bool, 591 00:31:43,000 --> 00:31:46,000 kështu bool është ndërtuar në Objektivi-C. 592 00:31:46,000 --> 00:31:49,000 Kjo thotë nuk do të përpiqet të bëjë asgjë dashuroj me pointers këtu. 593 00:31:49,000 --> 00:31:51,000 Kjo është një scaler rregullt vjetër. 594 00:31:51,000 --> 00:31:54,000 Fortë dhe i dobët, i dobët këtë thotë se në fakt 595 00:31:54,000 --> 00:31:57,000 Unë dua që kjo të treguar diçka në kontrollues view. 596 00:31:57,000 --> 00:32:00,000 Unë nuk jam duke shkuar për të vërtetë apo të ndajë këtë init veten. 597 00:32:00,000 --> 00:32:04,000 Ndërtues interface, kur kam drejtuar app, do të trajtojë të gjithë initialization atë. 598 00:32:04,000 --> 00:32:07,000 Nëse unë them dobët, që thotë se dikush tjetër do të jetë krijuar këtë. 599 00:32:07,000 --> 00:32:09,000 Nëse unë them të fortë, kjo do të thotë që unë jam do të jetë një 600 00:32:09,000 --> 00:32:12,000 që është krijuar këtë objekt bordit, 601 00:32:12,000 --> 00:32:14,000 dhe kështu që këtu kam disa metoda më këtu, 602 00:32:14,000 --> 00:32:18,000 për shembull, një veprim për kur butonin lojë të re, kapet 603 00:32:18,000 --> 00:32:20,000 një veprim për kur ndonjë nga butonat tjera janë presion, 604 00:32:20,000 --> 00:32:23,000 dhe cetera et. 605 00:32:23,000 --> 00:32:26,000 >> Ne nuk do të merrni në shumë të logjikës së Tic Tac Toe, 606 00:32:26,000 --> 00:32:30,000 edhe pse kjo është shumë emocionuese, por le të marrin një vështrim në 607 00:32:30,000 --> 00:32:33,000 disa nga gjërat që ne mund të bëjmë në brendësi të iOS. 608 00:32:33,000 --> 00:32:35,000 Kjo metodë e re lojë do të jetë puna 609 00:32:35,000 --> 00:32:37,000 sa herë që unë shtypni butonin lojë të re. 610 00:32:37,000 --> 00:32:41,000 Që të lidh deri unë thjesht ardhur mbi të storyboard tim. 611 00:32:41,000 --> 00:32:43,000 Unë klikuar mbi lojë të re. 612 00:32:43,000 --> 00:32:47,000 Nëse kam ardhur mbi këtu për të drejtën që unë mund të shihni se 613 00:32:47,000 --> 00:32:50,000 Prek Up Inside është Wired me metodën newGame. 614 00:32:50,000 --> 00:32:53,000 Kjo është arsyeja pse kjo do të merrni shkarkuar. 615 00:32:53,000 --> 00:32:56,000 Metoda newGame do të bëjë disa ngritur. 616 00:32:56,000 --> 00:32:59,000 Ajo do të thonë se unë dua që ju të qartë gjendjen e bordit. 617 00:32:59,000 --> 00:33:01,000 Kjo është një metodë e mirë për ndryshueshëm vargjeve. 618 00:33:01,000 --> 00:33:03,000 Kjo do të thotë se tani është rradha e X, 619 00:33:03,000 --> 00:33:07,000 dhe tani unë jam duke shkuar për të përfituar nga kjo gjë viewWithTag. 620 00:33:07,000 --> 00:33:11,000 >> Unë e di që butonat e mi kanë tags 1-9, 621 00:33:11,000 --> 00:33:13,000 dhe kjo është diçka që unë kap në mënyrë arbitrare. 622 00:33:13,000 --> 00:33:15,000 Nëse unë dua të vendosur tekstin e çdo buton të jetë bosh 623 00:33:15,000 --> 00:33:17,000 sepse unë vetëm filluar një lojë të re dhe unë nuk dua asnjë 624 00:33:17,000 --> 00:33:20,000 Xs ose Os të mbetur unë mund ta bëjë këtë. 625 00:33:20,000 --> 00:33:24,000 Unë mund të them se unë dua mendimin me tag, 1, 2, 3, 4 cetera et. 626 00:33:24,000 --> 00:33:27,000 Kjo do të tërheqë një buton të ndryshme çdo herë. 627 00:33:27,000 --> 00:33:30,000 Këtu unë jam duke shkuar për të hedhur atë në UIButton. 628 00:33:30,000 --> 00:33:33,000 Ashtu si ne mund të hedhur në ints gjithandej dhe anasjelltas 629 00:33:33,000 --> 00:33:37,000 kjo do të thotë që unë dua për të hedhur këtë një UIButton. 630 00:33:37,000 --> 00:33:40,000 Kjo do të thotë lloj i kësaj do të jetë një * UIButton 631 00:33:40,000 --> 00:33:43,000 për shkak të pointers, por mos u bëni merak, ata nuk janë më të frikshme. 632 00:33:43,000 --> 00:33:47,000 >> Pasi unë kam këtë buton unë jam duke shkuar për të thirrur një metodë në të. 633 00:33:47,000 --> 00:33:50,000 Kjo metodë quhet setTitle forState, dhe kështu kjo do të thotë 634 00:33:50,000 --> 00:33:53,000 Unë dua të vendosur tekstin e butonit të jetë string bosh, 635 00:33:53,000 --> 00:33:57,000 dhe unë dua që ajo të jetë vargu i zbrazët kur ajo nuk është e shtypur. 636 00:33:57,000 --> 00:34:01,000 Në qoftë se unë jam duke përdorur këtë metodë, unë mund të ndryshojë tekstin e butonit 637 00:34:01,000 --> 00:34:04,000 sa më shpejt që dikush godet atë, por ne duam të themi kur butonin është vetëm ulur atje 638 00:34:04,000 --> 00:34:07,000 Unë dua teksti të jetë bosh. 639 00:34:07,000 --> 00:34:10,000 Së fundi, ne do të nisja bordit tim, 640 00:34:10,000 --> 00:34:12,000 dhe unë jam duke shkuar për të thonë se gjithçka që është aktualisht në 0, 641 00:34:12,000 --> 00:34:15,000 kështu që ky bord anëtarët pandryshueshëm është një grup i paqëndrueshëm, 642 00:34:15,000 --> 00:34:21,000 që do të thotë unë mund të telefononi metodën addObject dhe vetëm një 0 në brendësi të saj. 643 00:34:21,000 --> 00:34:23,000 Kjo është ajo që ndodh kur unë të krijojë një lojë të re. 644 00:34:23,000 --> 00:34:25,000 >> Le të marrin një vështrim në një tjetër. 645 00:34:25,000 --> 00:34:28,000 Kjo metodë këtu është IBAction që do të jetë e shtyrë 646 00:34:28,000 --> 00:34:31,000 çdo herë që një prej këtyre shesheve është i shtypur. 647 00:34:31,000 --> 00:34:33,000 Tani ne kemi disa logjika Tac Toe Tic këtu. 648 00:34:33,000 --> 00:34:36,000 Ne gjej cilit është rradha, 649 00:34:36,000 --> 00:34:39,000 dhe në bazë që ne as vendosur një X ose një O, 650 00:34:39,000 --> 00:34:43,000 por ne vërejmë se ne jemi ripërdorimin këtë mbajtës të njëjtën ngjarje 651 00:34:43,000 --> 00:34:45,000 për çdo një të vetme prej këtyre butonave. 652 00:34:45,000 --> 00:34:49,000 Kjo do të thotë se unë nuk kanë një metodë për butonin e majtë të lartë, 653 00:34:49,000 --> 00:34:52,000 një metodë të ndryshme për butonin e djathtë e poshtme, edhe pse unë mund të ketë bërë këtë. 654 00:34:52,000 --> 00:34:54,000 Kjo nuk do të jetë me të vërtetë dizajn të mirë. 655 00:34:54,000 --> 00:34:57,000 Ajo që unë jam duke bërë këtu është në fakt unë jam duke shkuar për të përcaktuar 656 00:34:57,000 --> 00:35:00,000 çfarë e tag butonin që u shtyp është. 657 00:35:00,000 --> 00:35:04,000 Ju vini re se kjo metodë luajnë merr një argument. 658 00:35:04,000 --> 00:35:07,000 Ajo që quhet dërguesin, dhe çfarë është dërguesi është dërguesi do të 659 00:35:07,000 --> 00:35:10,000 përfaqësojnë pikërisht ajo që është marrë veprim mbi të. 660 00:35:10,000 --> 00:35:15,000 Nëse unë shtyp një buton, kjo dërguesi do të jetë se UIButton 661 00:35:15,000 --> 00:35:18,000 se unë presion në fakt, kështu që do të thotë se kjo UIButton 662 00:35:18,000 --> 00:35:20,000 ka një etiketë, sepse unë krijuar një tag. 663 00:35:20,000 --> 00:35:23,000 >> Nëse unë dua të merrni në tag unë thjesht mund të them 664 00:35:23,000 --> 00:35:26,000 Unë dua tag e dërguesit, 665 00:35:26,000 --> 00:35:28,000 dhe përsëri, unë kam casted vetëm atë në një UIButton. 666 00:35:28,000 --> 00:35:32,000 Unë të ndodhë që të dini se dërguesi do të jetë një UIButton. 667 00:35:32,000 --> 00:35:34,000 Ajo nuk gjithmonë duhet të jetë një UIButton. 668 00:35:34,000 --> 00:35:36,000 Unë mund të, për shembull, regjistrimin e mbajtës të njëjtën ngjarje 669 00:35:36,000 --> 00:35:38,000  për një buton për një, një për një slider. 670 00:35:38,000 --> 00:35:40,000 Në këtë rast, unë e di se ata janë të gjitha buttons, kështu që unë jam duke shkuar për të thënë 671 00:35:40,000 --> 00:35:43,000 Unë dua që kjo të jetë një buton, dhe pastaj unë mund të merrni tag, 672 00:35:43,000 --> 00:35:48,000 dhe nga tag Unë tani e di ku unë jam në brendësi të bordit. 673 00:35:48,000 --> 00:35:51,000 Atëherë unë thjesht mund të vënë ose X ose O, mund të rrokullisje të kthehet, 674 00:35:51,000 --> 00:35:54,000 kontrolloni që ka fituar, et cetera. 675 00:35:54,000 --> 00:35:59,000 >> Çdo pyetje në këtë deri më tani? 676 00:35:59,000 --> 00:36:02,000 Mirë, të gjithë kodin ne postuar online-ne nuk doni të merrni në shumë 677 00:36:02,000 --> 00:36:06,000 e logjikës Toe Tic Tac, por tani ju mund të shihni se me të vërtetë 678 00:36:06,000 --> 00:36:09,000 të gjithë ne po bëjmë është që ne jemi duke looping mbi këtë grup, 679 00:36:09,000 --> 00:36:13,000 kështu që ne kemi një çift të për sythe këtu, dhe ne jemi vetëm për të parë krahasuar 680 00:36:13,000 --> 00:36:18,000 nuk kemi një ndeshje në të gjitha rreshtat, një ndeshje në një kolonë ose diçka të tillë. 681 00:36:18,000 --> 00:36:21,000 Që në fakt të drejtuar këtë app, në qoftë se unë trokitje e lehtë në një nga këto butona 682 00:36:21,000 --> 00:36:24,000 Metoda që luajnë u shkarkua, kështu që do të thotë unë vetëm vënë 683 00:36:24,000 --> 00:36:31,000 button të jetë një X, kështu që tani ky buton do të jetë një O, dhe kështu me radhë, 684 00:36:31,000 --> 00:36:35,000 dhe kështu kjo është se si ne jemi duke filluar për të bashkëvepruar me këtë app faqe të vetme. 685 00:36:35,000 --> 00:36:38,000 >> Ne do të postoj kodin, kështu që mos ngurroni të lexoj se, 686 00:36:38,000 --> 00:36:43,000 por le të flasim tani për disa Apps që janë më shumë se vetëm një faqe. 687 00:36:43,000 --> 00:36:47,000 Si emocionuese si Tic Tac Toe ishte një shumë e Apps brendësi të iOS 688 00:36:47,000 --> 00:36:50,000 janë lloj i këtyre stërvitje poshtë gjëra me ekrane të shumta. 689 00:36:50,000 --> 00:36:54,000 Koncepti i parë që ne do të duhet të flas për protokollet janë, 690 00:36:54,000 --> 00:36:57,000 dhe një protokoll është thjesht një grup i metodave 691 00:36:57,000 --> 00:36:59,000 që ju mund të premtojmë për të përcaktuar. 692 00:36:59,000 --> 00:37:02,000 Nëse unë krijuar këtë protokoll të ri me 2 metoda, kjo e parë, 693 00:37:02,000 --> 00:37:05,000 qoftë lloji kthimi është i pavlefshëm, unë e quajti atë foo. 694 00:37:05,000 --> 00:37:07,000 Ajo merr asnjë argumente. Unë kam një tjetër metodë. 695 00:37:07,000 --> 00:37:11,000 Ajo kthehet një int. Unë e quajti atë bar, dhe kjo merr një argument. 696 00:37:11,000 --> 00:37:14,000 E gjithë kjo protokoll është se është quajtur SomeProtocol deri këtu, 697 00:37:14,000 --> 00:37:19,000 kjo është një grup i gjërave që dikush mund të zbatojnë. 698 00:37:19,000 --> 00:37:22,000 Unë nuk kam në brendësi të këtij protokolli, tha ajo foo bën. 699 00:37:22,000 --> 00:37:26,000 Në vend të kësaj, unë jam vetëm duke thënë se ju mund të përcaktojë foo nëse doni të. 700 00:37:26,000 --> 00:37:30,000 Nëse unë jam duke krijuar një kontrollues të parë ose duke krijuar një klasë 701 00:37:30,000 --> 00:37:33,000 Unë mund të brenda e atij premtimi për të zbatuar klasës 702 00:37:33,000 --> 00:37:40,000 disa prej këtyre metodave, kështu për shembull, në qoftë se thonë 703 00:37:40,000 --> 00:37:43,000 kjo tani thotë se unë jam duke e bërë një premtim për ju që brenda 704 00:37:43,000 --> 00:37:50,000 e kësaj klase kontrollues pikëpamje unë do të ketë për të dy përkufizimet foo dhe bar. 705 00:37:50,000 --> 00:37:52,000 >> Pse është se e dobishme? 706 00:37:52,000 --> 00:37:55,000 Një shumë e përbërësve brenda të iOS të përfitojnë nga kjo 707 00:37:55,000 --> 00:37:58,000 model dizajn quajtur delegacionin, dhe çfarë delegacioni thotë 708 00:37:58,000 --> 00:38:01,000 është se, për shembull, nëse kam një kuti teksti 709 00:38:01,000 --> 00:38:04,000 dhe ka disa ngjarje që mund të regjistruara brenda kutinë time tekstit, 710 00:38:04,000 --> 00:38:07,000 në vend se duke krijuar ngjarje të veçanta ajo që unë mund të bëni është që unë mund të them 711 00:38:07,000 --> 00:38:10,000 delegat i këtij kutinë e tekstit do të jetë një objekt. 712 00:38:10,000 --> 00:38:13,000 Kur unë them se ky është një delegat tani që do të thotë se 713 00:38:13,000 --> 00:38:16,000 kur disa ngjarje do të ishte gjuajtur në kutinë e tekstit 714 00:38:16,000 --> 00:38:18,000 në vend që të regjistrojnë atë apo diçka të tillë 715 00:38:18,000 --> 00:38:21,000 ajo është vetëm do të thërrasë një metodë për delegat. 716 00:38:21,000 --> 00:38:24,000 Për shembull, në brendësi të tekstit kutinë time unë kam një metodë për kur unë shtypni 717 00:38:24,000 --> 00:38:27,000 që bëhet butonin në fund të drejtën, 718 00:38:27,000 --> 00:38:30,000 dhe kështu në vend se regjistrimi mbajtës ngjarje ajo që unë mund të them është 719 00:38:30,000 --> 00:38:34,000 kuti teksti, këtu është një objekt që unë dua që ju të thërrisni një metodë për 720 00:38:34,000 --> 00:38:37,000 çdo herë që dikush shtyn butonin e bërë, 721 00:38:37,000 --> 00:38:40,000 dhe kjo do të thotë se që objekti ka për të zbatuar disa protokoll 722 00:38:40,000 --> 00:38:45,000 që thotë se unë premtimin për të përcaktuar atë veprim bëhet button, 723 00:38:45,000 --> 00:38:47,000 sepse në qoftë se ajo nuk përcakton atë metodë dhe ju shtypni bërë, 724 00:38:47,000 --> 00:38:49,000 atëherë ajo do të jetë konfuze. 725 00:38:49,000 --> 00:38:55,000 >> Le të marrin një vështrim në një shembull. 726 00:38:55,000 --> 00:38:58,000 Këtu unë thjesht kam një kuti teksti, 727 00:38:58,000 --> 00:39:04,000 dhe një nga vetitë e këtij kutinë e tekstit më shumë këtu në këtë anën e djathtë është delegat. 728 00:39:04,000 --> 00:39:06,000 Kjo është një pronë e klasës. 729 00:39:06,000 --> 00:39:09,000 Çfarë kam bërë unë këtu është kontrolluar klikuar dhe zvarritur unë nga ky vend gjatë këtu 730 00:39:09,000 --> 00:39:13,000 për kontrollues pamje, dhe që thotë tani delegat e këtij kutinë e tekstit 731 00:39:13,000 --> 00:39:18,000 do të jetë kontrollues pamje. 732 00:39:18,000 --> 00:39:20,000 Kjo do të thotë se kur disa veprime të ndodhë, në vend se regjistrimi 733 00:39:20,000 --> 00:39:25,000 handlers ngjarje të veçanta unë dua që ju të dërgoni ato në delegat. 734 00:39:25,000 --> 00:39:28,000 Tani le të marrin një vështrim në kontrollues tim view. 735 00:39:28,000 --> 00:39:32,000 Brenda e dosjes. H Unë kam bërë një premtim. 736 00:39:32,000 --> 00:39:36,000 Unë kam premtuar se do të zbatojë disa metoda në brendësi të këtij protokolli 737 00:39:36,000 --> 00:39:38,000 quajtur UITextFieldDelegate, dhe përsëri, 738 00:39:38,000 --> 00:39:42,000 kjo është vetëm një listë të disa gjëra që unë mund të zgjedhin për të zbatuar. 739 00:39:42,000 --> 00:39:46,000 >> Nëse unë vij këtu në. M dosjen time, unë kam zbatuar një metodë të tillë. 740 00:39:46,000 --> 00:39:49,000 Unë e kam quajtur atë textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 sepse kjo është ajo që u quajt në brendësi të protokollit. 742 00:39:52,000 --> 00:39:57,000 Dhe tani sa herë që unë shtyp butonin e bërë brenda kësaj fushën e tekstit 743 00:39:57,000 --> 00:40:00,000 kjo është ajo që do të merrni të quajtur, kështu që unë nuk kanë regjistruar një mbajtës ngjarje. 744 00:40:00,000 --> 00:40:03,000 I lidhte delegat, dhe kurdo që kjo ngjarje është e qëlluar 745 00:40:03,000 --> 00:40:08,000 kjo është metodë që do të merrni të quajtur, kështu që nëse unë vij këtu për kalimin tim storyboard dhe drejtuar atë- 746 00:40:08,000 --> 00:40:11,000 ndërkohë që e ngarkimit ne mund të shohim atë që kjo e bën. 747 00:40:11,000 --> 00:40:13,000 Në ekranin tim kam 2 gjëra. 748 00:40:13,000 --> 00:40:16,000 Unë kam këtë fushë teksti, dhe unë kam këtë emërtim. 749 00:40:16,000 --> 00:40:19,000 Unë jam thjesht duke thënë se unë dua tekstin e kësaj etiketës 750 00:40:19,000 --> 00:40:23,000 të jetë e barabartë për çfarëdo përdoruesi shtypur në brendësi të fushën e tekstit. 751 00:40:23,000 --> 00:40:26,000 Kjo linjë tjetër këtu është thjesht një metodë që unë jam duke bërë thirrje 752 00:40:26,000 --> 00:40:29,000 në fushën e tekstit që thotë se unë dua që ju të fshehur tastierën. 753 00:40:29,000 --> 00:40:33,000 Kjo është vetëm metoda arbitrare që Apple zgjodhi. 754 00:40:33,000 --> 00:40:38,000 >> Përsëri, para se të kam bërë asgjë që unë duhej të tela çdo gjë, kështu që unë i parë erdhi mbi këtu. 755 00:40:38,000 --> 00:40:42,000 Nga kontrollues view Unë terhiq mbi kutinë e tekstit. 756 00:40:42,000 --> 00:40:46,000 I le të shkojë, dhe unë mund të shoh këtu që unë mund të bëjë këtë pronë fushën e tekstit 757 00:40:46,000 --> 00:40:49,000 pasi gjatë këtu në kontrollues view kam përcaktuar një pronë 758 00:40:49,000 --> 00:40:52,000 që është një IBOutlet i një fushë tekst. 759 00:40:52,000 --> 00:40:55,000 Kjo thotë se unë mund të tela këtë pronë deri 760 00:40:55,000 --> 00:40:59,000 në një fushë teksti në UI tim. 761 00:40:59,000 --> 00:41:03,000 Tani kur unë klikoni këtë unë mund të filloni të shtypni. 762 00:41:03,000 --> 00:41:06,000 Tani, nëse unë klikoni butonin e bërë këtë do të zjarrit 763 00:41:06,000 --> 00:41:08,000 një ngjarje që unë tani mund të përgjigjet për të. 764 00:41:08,000 --> 00:41:10,000 Asnjë handlers ngjarje. 765 00:41:10,000 --> 00:41:13,000 Kjo është se si unë vetëm iu përgjigj atij butonin bërë. 766 00:41:13,000 --> 00:41:15,000 Kuptim? 767 00:41:15,000 --> 00:41:20,000 >> Kjo nuk është një model i projektimit që, ju nuk mund të gjeni kurrë veten 768 00:41:20,000 --> 00:41:23,000 krijuar protokoll tuaj, por vetëm e di se disa 769 00:41:23,000 --> 00:41:27,000 komponentë të ndryshëm IOS regjistroheni ngjarjet në mënyra të ndryshme. 770 00:41:27,000 --> 00:41:29,000 Buttons, për shembull, përdorin ato IBActions. 771 00:41:29,000 --> 00:41:32,000 Fushat tekst, në anën tjetër, do të përdorin delegatë. 772 00:41:32,000 --> 00:41:36,000 Ne mund të shohim dhe ju mund të shikoni të gjithë që brenda deri të dokumentacionit. 773 00:41:36,000 --> 00:41:41,000 Nga rruga, nuk është në fakt një ton të gjëra UI ndërtuar në iOS për ju, 774 00:41:41,000 --> 00:41:46,000 kështu për shembull, mënyra kam bërë që thonë bërë në fund të drejtën 775 00:41:46,000 --> 00:41:48,000 po kam zgjedhur këtë fushë teksti. 776 00:41:48,000 --> 00:41:50,000 Unë kam ardhur këtu. 777 00:41:50,000 --> 00:41:53,000 Unë scrolled poshtë një grimë të kthehen kyç, 778 00:41:53,000 --> 00:41:56,000 dhe unë mund të bëjë në fakt kjo një bandë e tërë e gjërave, si në qoftë se unë dua të them se 779 00:41:56,000 --> 00:42:00,000 emergjente telefononi në vend që unë mund ta bëjë këtë, e cila është krejtësisht e rastësishme, 780 00:42:00,000 --> 00:42:02,000 dhe unë nuk e di pse ka një built-in thirrje emergjente button, 781 00:42:02,000 --> 00:42:06,000 por atje, ai thotë se thirrja urgjente në letra me të vërtetë të vogla. 782 00:42:06,000 --> 00:42:08,000 Nuk ju shkoni. 783 00:42:08,000 --> 00:42:12,000 >> Patjetër të shqyrtuar të gjitha këto opsione të ndryshme në iOS. 784 00:42:12,000 --> 00:42:14,000 Çdo pyetje për delegatët? 785 00:42:14,000 --> 00:42:18,000 Përsëri, vetëm një model interesant projektimit që ju duhet të jetë i vetëdijshëm. 786 00:42:18,000 --> 00:42:22,000 Mirë, le të ardhshëm të marrin një vështrim në pamje tryezë. 787 00:42:22,000 --> 00:42:26,000 Një pamje tabelë në thelb është se lista e artikujve që është në të gjithë vendin në iOS. 788 00:42:26,000 --> 00:42:29,000 Kur ju jeni Flipping nëpër të gjitha kontaktet tuaja, ju jeni duke kërkuar në 789 00:42:29,000 --> 00:42:34,000 faqja vendosjen, dhe se lloji i listës së gjërave është quajtur një pamje tryezë. 790 00:42:34,000 --> 00:42:37,000 Zbatimin e një pamje tryezë në iOS është shumë e thjeshtë. 791 00:42:37,000 --> 00:42:41,000 Në vend të bërë një klasë që zbret nga ajo UIViewController 792 00:42:41,000 --> 00:42:44,000 si ne kemi bërë para se ne thjesht duhet të them më tepër se 793 00:42:44,000 --> 00:42:46,000 gjithçka ka një UIViewController unë dua të bëj, 794 00:42:46,000 --> 00:42:50,000 Unë them gjithçka një UITableViewController nuk dua të bëj, 795 00:42:50,000 --> 00:42:54,000 kështu që thjesht shton disa gjëra të tjera që janë bërë krejtësisht për ne. 796 00:42:54,000 --> 00:42:58,000 Ne duhet të bëjmë shumë pak për të në thelb të mbushur boshllëqet në brendësi të tabelës. 797 00:42:58,000 --> 00:43:02,000 >> Në mënyrë për të shfaqur një tavolinë kam nevojë për t'iu përgjigjur disa pyetjeve. 798 00:43:02,000 --> 00:43:06,000 Pyetja e parë që unë duhet të përgjigjem është se sa seksione janë në tryezë? 799 00:43:06,000 --> 00:43:08,000 Kur ju jeni Flipping përmes kontakteve app tuaj, ju do të vëreni se kjo është lloj i 800 00:43:08,000 --> 00:43:12,000 organizuar nga Si, atëherë ju keni të BS, dhe ju keni atë header pak sub. 801 00:43:12,000 --> 00:43:14,000 Secili nga ata që quhet një seksion. 802 00:43:14,000 --> 00:43:16,000 Ju mund ose nuk mund nevojë për këto. 803 00:43:16,000 --> 00:43:19,000 Gjëja e parë që ju duhet të bëni është të zbatojë një metodë 804 00:43:19,000 --> 00:43:22,000 quajtur tableView: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 Që thjesht kthehet sa seksione keni, 806 00:43:25,000 --> 00:43:29,000 kështu që kjo mund të thonë të kthehen një në qoftë se ju keni një pamje të madhe tryezë. 807 00:43:29,000 --> 00:43:33,000 Pyetja tjetër që duhet të dini iOS është se sa rreshtat keni? 808 00:43:33,000 --> 00:43:36,000 Për shembull, ju jeni Flipping përmes një pamje tryezë. 809 00:43:36,000 --> 00:43:39,000 Ju keni një numër të caktuar të këngëve ju jeni duke kërkuar në një numër të caktuar ose të kontakteve. 810 00:43:39,000 --> 00:43:41,000 Nëse ju jeni mua, sigurisht, nuk është se shumë, 811 00:43:41,000 --> 00:43:44,000 dhe kështu kjo është se si iOS e di se sa qelizat për të shfaqur. 812 00:43:44,000 --> 00:43:46,000 >> Përsëri, kjo mund të thotë diçka si kthim 3. 813 00:43:46,000 --> 00:43:49,000 Pikëpamja ime Tabela ka 3 rreshta. 814 00:43:49,000 --> 00:43:52,000 Së fundi, iOS nevojë të dini se çfarë çdo qelizë si duket, 815 00:43:52,000 --> 00:43:54,000 kështu që ajo që është e vërtetë do të bëni është të telefononi këtë metodë këtu poshtë, 816 00:43:54,000 --> 00:43:57,000 kjo tableView: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 Ajo do të thërrasë këtë metodë në çdo qelizë të vetme brenda tryezën tuaj. 818 00:44:01,000 --> 00:44:03,000 Si e di sa herë për të thirrur atë? 819 00:44:03,000 --> 00:44:06,000 E pra, ju tha atë brenda e numrit të rreshtave në seksion. 820 00:44:06,000 --> 00:44:08,000 Ne jemi duke shkuar për të thirrur këtë në secilën prej qelizave tona, 821 00:44:08,000 --> 00:44:11,000 dhe brenda e kjo është ajo ku ju mund të bëjë në fakt gjëra të tilla si 822 00:44:11,000 --> 00:44:16,000 vendosur tekstin apo ju tregojnë se çka butonin blu pak në anën e djathtë bën. 823 00:44:16,000 --> 00:44:19,000 Model për marrjen e këtyre qelizave, ne jemi duke shkuar për të përdorur këtë metodë 824 00:44:19,000 --> 00:44:22,000 quajtur dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Objektivi-C është në fakt shumë i njohur edhe për gjatësinë e emrave të tyre qesharake metodë, 826 00:44:29,000 --> 00:44:32,000 dhe kjo është me të vërtetë një rast i mirë në shembull pikë. 827 00:44:32,000 --> 00:44:37,000 Çfarë kjo metodë nuk është kjo vetëm thotë se unë dua që ju të jepni një qelizë. 828 00:44:37,000 --> 00:44:39,000 Vetëm një gjë e iOS. 829 00:44:39,000 --> 00:44:41,000 Nëse keni diçka si 100.000 këngë në iPod tuaj 830 00:44:41,000 --> 00:44:45,000 çfarë iOS nuk doni të bëni është të ndajë 100.000 qeliza, 831 00:44:45,000 --> 00:44:48,000 sepse në qoftë se ju jeni në krye të listës suaj, ju me të vërtetë duhet të siguroj kujtesë 832 00:44:48,000 --> 00:44:51,000 për qelizë që është 99.000 rreshtave poshtë? 833 00:44:51,000 --> 00:44:55,000 Jo, sepse, siç ju jeni Scroll ju mund të ndajnë lloj si ju shkojnë së bashku. 834 00:44:55,000 --> 00:44:57,000 Kjo është bërë për ju. 835 00:44:57,000 --> 00:44:59,000 Ju nuk duhet të shqetësohen për të gjitha stuff se performanca stupid. 836 00:44:59,000 --> 00:45:02,000 Të gjithë ju them është që ju e quani këtë dequeueReusableCellWithIdentifier metodë, 837 00:45:02,000 --> 00:45:06,000 dhe kjo do të thotë, në rregull, në qoftë se keni nevojë për të unë jam duke shkuar për të krijuar një qelizë të re për ju. 838 00:45:06,000 --> 00:45:09,000 >> Por nëse ju jeni në fund të tabelës dhe ju keni ndarë tashmë disa qeliza 839 00:45:09,000 --> 00:45:12,000 në krye të tabelës që ju nuk jeni të vërtetë do të duhet në çdo kohë së shpejti 840 00:45:12,000 --> 00:45:15,000 Unë jam duke shkuar për të ju jap një nga ato mbrapa në vend të ndarjes së një të re, 841 00:45:15,000 --> 00:45:17,000 dhe kështu që kjo është një shqetësim bukur performancës. 842 00:45:17,000 --> 00:45:21,000 Ju nuk duhet të ndajë qelizat veten. 843 00:45:21,000 --> 00:45:23,000 Kjo do të ju jap përsëri një qelizë. 844 00:45:23,000 --> 00:45:25,000 Ajo do të kthehet tek ju një objekt celular. 845 00:45:25,000 --> 00:45:28,000 Pasi të keni objekt celular ju mund të bëni gjëra për të. 846 00:45:28,000 --> 00:45:32,000 Ju mund të vendosni tekstin e qelizës me këtë pronë të quajtur emërtim tekst. 847 00:45:32,000 --> 00:45:36,000 Ju mund të shtoni atë shigjetën në të djathtë ose disa sende të tjera të rastit 848 00:45:36,000 --> 00:45:41,000 me këtë pronë tjetër të quajtur accessoryType, dhe kështu me radhë e kështu me radhë. 849 00:45:41,000 --> 00:45:46,000 >> Le të marrin një vështrim në të vërtetë zbaton një pamje tryezë tani. 850 00:45:46,000 --> 00:45:49,000 Kur kam krijuar këtë projekt 851 00:45:49,000 --> 00:45:53,000 në vend se duke thënë se kërkesë e vetme view Unë në fakt erdhi mbi këtu 852 00:45:53,000 --> 00:45:57,000 për master-detaje aplikimit, dhe kështu që në thelb kjo korrespondon me app postës 853 00:45:57,000 --> 00:46:01,000 në iPad me pamje tryezë në të majtë dhe pastaj përmbajtjen në të djathtë. 854 00:46:01,000 --> 00:46:07,000 Në iPod apo iPhone kjo do të korrespondojnë me një pamje të vetme tavolinë. 855 00:46:07,000 --> 00:46:10,000 Kjo është ku kam marrë kodin tim starter. 856 00:46:10,000 --> 00:46:13,000 >> Le pari të marrë një sy në storyboard. 857 00:46:13,000 --> 00:46:15,000 E gjithë kjo është bërë për mua, e krijuar në thelb. 858 00:46:15,000 --> 00:46:18,000 Ky bar navigacion tregoi mua atë që një qelizë shembull mund të duken si, 859 00:46:18,000 --> 00:46:22,000 dhe unë mund të klikoni dy herë këtë, për të ndryshuar titullin. 860 00:46:22,000 --> 00:46:25,000 Çdo shqetësime të tjera UI unë mund të trajtojë atje. 861 00:46:25,000 --> 00:46:27,000 File header duket me të vërtetë të thjeshtë. 862 00:46:27,000 --> 00:46:30,000 Në vend se duke thënë se kjo është UIViewController ne jemi tani duke thënë se kjo është një 863 00:46:30,000 --> 00:46:35,000 TableViewController, kështu që ne e dimë që ne duam për të thirrur të gjitha ato metoda tryezë. 864 00:46:35,000 --> 00:46:38,000 Next Unë dua të krijuar një pronë që është do të përfaqësojë 865 00:46:38,000 --> 00:46:40,000 gjërat brenda e tryezën time. 866 00:46:40,000 --> 00:46:43,000 Kjo tabelë do të shfaqin në mënyrë arbitrare 867 00:46:43,000 --> 00:46:46,000 një listë e frutave, dhe kështu që kam nevojë për të krijuar një rrjet të 868 00:46:46,000 --> 00:46:49,000 në të cilën unë mund futur fruta. 869 00:46:49,000 --> 00:46:52,000 Brenda dosjen time zbatimit gjëja e parë që unë dua të bëj 870 00:46:52,000 --> 00:46:55,000 është që unë dua të bëni të sigurtë që unë nisja këtë koleksion. 871 00:46:55,000 --> 00:46:58,000 >> Unë i thashë shenjat e init, e krijuar koleksion tim fruta, 872 00:46:58,000 --> 00:47:03,000 dhe unë jam duke shtuar 4 gjëra për të, njëri prej të cilëve është shumë më e diskutueshme se 3 të tjera. 873 00:47:03,000 --> 00:47:06,000 Dhe tani kam një rrjet të madhësisë 4. 874 00:47:06,000 --> 00:47:08,000 Ne jemi duke lëkundur atë deri në CS50. 875 00:47:08,000 --> 00:47:11,000 Unë tani kanë një rrjet të madhësisë 4. 876 00:47:11,000 --> 00:47:13,000 Tani unë jam duke shkuar për të filluar përgjigjur këtyre pyetjeve, dhe në fakt, 877 00:47:13,000 --> 00:47:16,000 kur kam krijuar këtë app e gjithë kjo është bërë tashmë për mua. 878 00:47:16,000 --> 00:47:19,000 Unë nuk duhet të tipit jashtë numrin e seksioneve në funksion tryezë. 879 00:47:19,000 --> 00:47:22,000 Ajo ishte tashmë atje, dhe unë jam i mbushur boshllëqet. 880 00:47:22,000 --> 00:47:24,000 Sa seksione kam? 881 00:47:24,000 --> 00:47:26,000 Një. Të gjitha të bërë. 882 00:47:26,000 --> 00:47:28,000 Sa rreshta kam? 883 00:47:28,000 --> 00:47:31,000 E pra, unë kam një rresht për çdo fryt, kështu që kjo akuzë 884 00:47:31,000 --> 00:47:34,000 është një pronë e çdo grup që thotë se sa e madhe është ajo? 885 00:47:34,000 --> 00:47:36,000 Kjo është se si shumë rreshta kam. 886 00:47:36,000 --> 00:47:42,000 Së fundi, unë duhet të them se çfarë bën çdo qelizë të duken si? 887 00:47:42,000 --> 00:47:46,000 Unë jam duke shkuar për të thënë dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Përsëri, kjo është shkruar tashmë për mua. 889 00:47:48,000 --> 00:47:51,000 Unë nuk kam për të bërë këtë veten time, dhe unë dua të kthehet 890 00:47:51,000 --> 00:47:54,000 Kjo qelizë në këtë vend. 891 00:47:54,000 --> 00:47:57,000 Mos harroni se ne jemi duke e quajtur këtë metodë të njëjtë në çdo qelizë të vetme, 892 00:47:57,000 --> 00:48:01,000 dhe ky argument këtu, ky argument indexPath, 893 00:48:01,000 --> 00:48:03,000 thotë ajo rresht unë jam in 894 00:48:03,000 --> 00:48:05,000 Nëse unë them indexPath.row këtu poshtë 895 00:48:05,000 --> 00:48:09,000 kjo do të jetë 0, atëherë ajo do të jetë 1, atëherë ajo do të jetë 2, dhe kjo është kështu që unë e di 896 00:48:09,000 --> 00:48:11,000 ajo qelizë Unë jam duke shfaqur. 897 00:48:11,000 --> 00:48:15,000 Unë dua të vendosur tekstin e qelizave duke përdorur këtë pronë textLabel 898 00:48:15,000 --> 00:48:19,000 për të shkuar brenda array tim fruta dhe për të marrë 899 00:48:19,000 --> 00:48:21,000 Objekti i korrespondon çdo rresht. 900 00:48:21,000 --> 00:48:24,000 Nëse kjo është një varg, unë jam tani duke 901 00:48:24,000 --> 00:48:28,000 pronës tekst për një varg. 902 00:48:28,000 --> 00:48:30,000 Unë mund të bëj një gjë tjetër. 903 00:48:30,000 --> 00:48:32,000 Unë gjithashtu mund të regjistroheni në një mbajtës ngjarje secilin prej qelizave, 904 00:48:32,000 --> 00:48:35,000 kështu që kur unë përgjojnë secilin nga këto qeliza 905 00:48:35,000 --> 00:48:39,000 kjo didSelectRowAtIndexPath, kjo do të quhet për mua, 906 00:48:39,000 --> 00:48:42,000 kështu që thjesht duke përcaktuar këtë unë tani mund të trajtojë çfarë ndodh 907 00:48:42,000 --> 00:48:46,000 kur ju trokitje e lehtë një qelizë, dhe përsëri, ne jemi duke kaluar në të cilën u caktua celular 908 00:48:46,000 --> 00:48:50,000 kështu që ne mund të ripërdorimin këtë mbajtës të njëjtën ngjarje për të gjithë qelizat tona. 909 00:48:50,000 --> 00:48:53,000 >> Përsëri, kjo është diçka iOS është bërë për mua. 910 00:48:53,000 --> 00:48:55,000 Le të shfaqur një popup annoying 911 00:48:55,000 --> 00:48:59,000 që thjesht thotë se ju kap diçka se ku diçka 912 00:48:59,000 --> 00:49:04,000 do të jetë objekt rresht. 913 00:49:04,000 --> 00:49:10,000 Kur kam drejtuar këtë, unë jam duke shkuar të ketë këtë pamje e bukur tryezë 914 00:49:10,000 --> 00:49:14,000 me një rresht për secilin prej këtyre frutave, dhe në qoftë se unë tap një 915 00:49:14,000 --> 00:49:16,000 ajo tregon mua se çfarë ka ndodhur. 916 00:49:16,000 --> 00:49:21,000 Kuptim? 917 00:49:21,000 --> 00:49:24,000 Le të ndërtojmë një pak më shumë komplekse të një app, 918 00:49:24,000 --> 00:49:28,000 sa më shumë që ju kap klikuar domate është. 919 00:49:28,000 --> 00:49:31,000 Pjesa e bukur për storyboarding 920 00:49:31,000 --> 00:49:35,000 po ajo nuk është vetëm do të na ndihmojë ekranet e projektimit individualisht, 921 00:49:35,000 --> 00:49:38,000 ajo gjithashtu do të na ndihmojë të lidhë së bashku aplikacionin tonë për të gjithë, 922 00:49:38,000 --> 00:49:42,000 kështu app përfundimtar ne do të jetë ndërtimi është kjo e bukur sportive lajme lexues, 923 00:49:42,000 --> 00:49:45,000 dhe kështu ajo do të kanë ekrane të shumta, dhe kështu që unë në fakt mund të përfaqësojë 924 00:49:45,000 --> 00:49:48,000 secili prej këtyre ekraneve të shumta në storyboard, 925 00:49:48,000 --> 00:49:52,000 dhe unë mund të zoom out dhe shikoni aplikacionin tim nga një nivel të lartë. 926 00:49:52,000 --> 00:49:55,000 >> Në mënyrë për të krijuar një të re brenda elementin e storyboard tim 927 00:49:55,000 --> 00:49:59,000 kjo është me të vërtetë të thjeshtë brenda Builder Interface. 928 00:49:59,000 --> 00:50:01,000 Në qoftë se unë dua të shtoj një tjetër ekran për këtë, për shembull, 929 00:50:01,000 --> 00:50:06,000 I pari mund zoom zoom me majë që Apple e do aq shumë, 930 00:50:06,000 --> 00:50:09,000 dhe këtu poshtë para se të kërkoni për një buton 931 00:50:09,000 --> 00:50:12,000 dhe unë drag and drop një buton 932 00:50:12,000 --> 00:50:15,000 në qoftë se unë dua të krijuar një ekran të ri unë mund të vërtetë vetëm drag and drop 933 00:50:15,000 --> 00:50:19,000 një kontrollues tërë pikëpamje, kështu që në qoftë se unë marr këtë, ta tërheqë atë mbi këtu, 934 00:50:19,000 --> 00:50:23,000 hej, ka një tjetër ekran, dhe kështu tani duke përdorur këtë fotografi të njëjtin storyboard 935 00:50:23,000 --> 00:50:26,000 Unë mund të ketë të gjitha ekranet brenda të app tim, dhe unë mund të zoom jashtë 936 00:50:26,000 --> 00:50:28,000 dhe të shohim se si ata ndërveprojnë. 937 00:50:28,000 --> 00:50:32,000 Këto nuk do të ndërveprojnë ende. 938 00:50:32,000 --> 00:50:36,000 Mënyra në të cilën këto 2 ekranet ndërveprojnë është që ju të përcaktojë marrëdhënie. 939 00:50:36,000 --> 00:50:39,000 Ju mund të thelb të them këtë ekran, kur ju shtypni këtë buton, 940 00:50:39,000 --> 00:50:42,000 Unë dua që ju të rrëshqas mbi këtë ekran të ri. 941 00:50:42,000 --> 00:50:44,000 Kjo do të thotë se kjo lloj marrëdhënie mes 942 00:50:44,000 --> 00:50:46,000  ekran i parë dhe i dytë ekran. 943 00:50:46,000 --> 00:50:49,000 Ju do të keni në thelb një shigjetë nga ajo butonin në ekran e dytë 944 00:50:49,000 --> 00:50:53,000 duke thënë se kur të shtypni këtë buton kjo është ajo ku unë dua të shkoj. 945 00:50:53,000 --> 00:50:57,000 Ashtu si ne kontroll klikuar dhe zvarritur për të përcaktuar ato shitore 946 00:50:57,000 --> 00:51:01,000 ne jemi duke shkuar për të bërë të njëjtën gjë për të përcaktuar këto segues. 947 00:51:01,000 --> 00:51:05,000 >> Ne do të shohim një shembull për këtë, dhe para se ne fakt tranzicionit 948 00:51:05,000 --> 00:51:08,000 nga një ekran në tjetrin iOS është e mirë e mjaftueshme për të thirrur këtë metodë 949 00:51:08,000 --> 00:51:11,000 quajtur prepareForSegue, dhe kjo është ajo ku ne mund të fillojnë 950 00:51:11,000 --> 00:51:14,000 dërgimit të të dhënave nga një app në një tjetër. 951 00:51:14,000 --> 00:51:17,000 Në shembullin e ne jemi gati të shohim atë në thelb do të lejojë na 952 00:51:17,000 --> 00:51:20,000 për të filtruar nga ekipet baseball leagues dhe ndarjet. 953 00:51:20,000 --> 00:51:23,000 Kur unë të zgjidhni një ligë, për shembull, unë dua të tranzicionit 954 00:51:23,000 --> 00:51:25,000 në ekranin tim të ardhshëm, ku unë mund të shfaqin të gjitha ndarjet 955 00:51:25,000 --> 00:51:27,000 në këtë ligë ose të gjitha ekipet e ndryshme. 956 00:51:27,000 --> 00:51:31,000 Unë kam nevojë për të dërguar në atë ekran që ekipet duhet shfaqur. 957 00:51:31,000 --> 00:51:35,000 Për të bërë që unë jam duke shkuar për të përfituar nga kjo metodë këtu. 958 00:51:35,000 --> 00:51:39,000 >> Së fundi, vetëm një pikë të rastit në iOS. 959 00:51:39,000 --> 00:51:41,000 Nëse ju doni të ruajtur të dhënat se kjo gjë quhet dhënat kryesore, 960 00:51:41,000 --> 00:51:44,000 e cila në fakt është lloj i komplikuar për të punuar me të. 961 00:51:44,000 --> 00:51:47,000 Ju gjithashtu mund të përdorni SQL për të ruajtur të dhënat, 962 00:51:47,000 --> 00:51:51,000 cila, përsëri, është e bukur, por lloji i në anën e më të komplikuar për të punuar me të, 963 00:51:51,000 --> 00:51:55,000 por iOS gjithashtu mbështet këto gjëra really cool quajtur listat e pronës, 964 00:51:55,000 --> 00:52:00,000 dhe një listë të pronës është vetëm një fotografi që paraqet çiftet kyç vlerë. 965 00:52:00,000 --> 00:52:03,000 Ju përcaktoni një listë të çelësat, dhe ju them këtë kyç do të jetë një grup. 966 00:52:03,000 --> 00:52:06,000 Ky kyç do të jetë një varg, dhe në thelb çdo gjë që ju mund të bëni 967 00:52:06,000 --> 00:52:10,000 në JSON ju mund të bëni në brendësi të një liste të pronës, 968 00:52:10,000 --> 00:52:14,000 dhe kështu që kjo me të vërtetë bukur na lejon të punoni me disa të dhëna. 969 00:52:14,000 --> 00:52:18,000 Për shembull, unë kam këtë që kam krijuar Teams.plist. 970 00:52:18,000 --> 00:52:22,000 Unë krijuar një skedë të re plist, dhe unë mund të Stërvitja poshtë. 971 00:52:22,000 --> 00:52:26,000 Kjo është një fjalor, kjo është një fjalor, këto janë vargjet, 972 00:52:26,000 --> 00:52:30,000 dhe kështu që kjo është një përfaqësim bukur grafike e një dokumenti JSON 973 00:52:30,000 --> 00:52:33,000 apo vetëm një grup i vlerave kryesore çifte, 974 00:52:33,000 --> 00:52:37,000 dhe kështu që kjo është e dhëna që unë do të punojnë me brenda app tim. 975 00:52:37,000 --> 00:52:40,000 >> Le të vijë më parë gjatë këtu. Ne kemi një fotografi shumë më tepër tani. 976 00:52:40,000 --> 00:52:44,000 Por le të vijë më parë gjatë këtu në storyboard. 977 00:52:44,000 --> 00:52:48,000 Storyboard këtu-në qoftë se unë mund të zoom jashtë- 978 00:52:48,000 --> 00:52:51,000 ne tani mund të shohim se kjo është rrjedha e app tim. 979 00:52:51,000 --> 00:52:53,000 Unë jam duke shkuar për të filluar së pari në këtë ekran. 980 00:52:53,000 --> 00:52:55,000 Unë jam duke shkuar për stërvitje poshtë në këtë ekran, 981 00:52:55,000 --> 00:52:58,000 dhe unë jam duke shkuar për stërvitje poshtë në këtë ekran, dhe ne mund të shohim këtu se në qoftë se unë lloj i 982 00:52:58,000 --> 00:53:04,000 lëvizur një nga këto rreth ne kemi këto shigjetat shkojnë nga këtu për këtu, 983 00:53:04,000 --> 00:53:08,000 dhe mënyrën se si unë të përcaktojë se ishte shigjetë në qoftë se unë të zoom në një pak, 984 00:53:08,000 --> 00:53:12,000 dhe në qoftë se kam ardhur mbi të kësaj kontrollues pikëpamje, 985 00:53:12,000 --> 00:53:16,000 dhe këtu është një celular, dhe unë dua të them se kur ju trokitje e lehtë një qelizë 986 00:53:16,000 --> 00:53:18,000 Unë dua që ju të rrëshqas mbi të një tjetër ekran. 987 00:53:18,000 --> 00:53:21,000 Unë thjesht mund të mbajnë poshtë kontroll, 988 00:53:21,000 --> 00:53:26,000 lëviz mbi një pak, s'e lëshoj kontrollin, drag këtë qelizë mbi dhe le të shkojnë. 989 00:53:26,000 --> 00:53:30,000 >> Dhe mbi këtu themi se çfarë është tranzicioni që ju doni të përdorni? 990 00:53:30,000 --> 00:53:32,000 A ju doni të përdorni atë gjë që është quajtur rrëshqitje shtytje? 991 00:53:32,000 --> 00:53:34,000 A doni të rrëshqitje deri nga fundi? 992 00:53:34,000 --> 00:53:36,000 Kjo është quajtur modale. 993 00:53:36,000 --> 00:53:40,000 Dhe një herë unë klikoni një nga këto, ajo do të tërheqë këtë shigjetë për mua, 994 00:53:40,000 --> 00:53:44,000 dhe që do të thotë se unë e kam trajtuar në të vërtetë se çfarë ndodh kur unë shtypni këtë buton grafikisht. 995 00:53:44,000 --> 00:53:48,000 Unë nuk kam shkruar asnjë kod të vërtetë me fotografi nga një ekran në një tjetër. 996 00:53:48,000 --> 00:53:51,000 I përkufizuar ky shikimi brenda Builder Interface. 997 00:53:51,000 --> 00:53:55,000 Në qoftë se unë klikoni në shigjeten këtë, ne mund të shohim se kjo gjë i dha një emër. 998 00:53:55,000 --> 00:53:59,000 Unë e quajti atë showDivisions, dhe kjo është kështu që unë mund të di 999 00:53:59,000 --> 00:54:03,000 çfarë tranzicioni është gati të ndodhë, dhe ne do të shohim se pse në vetëm një sek. 1000 00:54:03,000 --> 00:54:06,000 Kjo është se si unë e kam Wired deri ekranet e ndryshme në komponentin tim. 1001 00:54:06,000 --> 00:54:09,000 Nëse kjo ishte një buton, për shembull, në vend se një pamje tavolinë, 1002 00:54:09,000 --> 00:54:11,000 Unë mund të kontrollojë klikoni mbi butonin, drag mbi ekran e ardhshme, 1003 00:54:11,000 --> 00:54:16,000 dhe kjo është se si unë mund të bëjë në këtë mënyrë të navigimit. 1004 00:54:16,000 --> 00:54:19,000 >> Vërtetë shpejt, nëse ne vijmë në MasterViewController, 1005 00:54:19,000 --> 00:54:22,000 përsëri, ne jemi thjesht do të përcaktojë një listë të gjërave 1006 00:54:22,000 --> 00:54:26,000 që do të shfaqet në pamjen tryezë. 1007 00:54:26,000 --> 00:54:29,000 Ja unë jam duke thënë se unë dua që ju të merrni atë fotografi plist, 1008 00:54:29,000 --> 00:54:32,000 dhe unë dua që ju të ngarkesës atë në një fjalor, 1009 00:54:32,000 --> 00:54:35,000 dhe një herë ju keni atë fjalor, unë jam duke shkuar për t'iu përgjigjur këtyre pyetjeve të njëjta përsëri. 1010 00:54:35,000 --> 00:54:37,000 Këtu është numri i seksioneve. 1011 00:54:37,000 --> 00:54:41,000 Një, atje është një rresht për çdo ligë, dhe tekst i secilit qelize 1012 00:54:41,000 --> 00:54:46,000 duhet të jetë ose një të parë, league parë, league dytë, dhe kështu me radhë. 1013 00:54:46,000 --> 00:54:51,000 Së fundi, unë jam duke shkuar për të përdorur këtë metodë që ne sapo panë quajtur prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 dhe kjo është metodë që do të jetë puna kur unë klikoni 1015 00:54:54,000 --> 00:54:57,000 në një nga ato rreshtave dhe për këtë arsye aktivizimin se tranzicioni 1016 00:54:57,000 --> 00:54:59,000 që kam ngritur me shigjeta. 1017 00:54:59,000 --> 00:55:02,000 Kjo është thënë se unë mund të ketë të shumta 1018 00:55:02,000 --> 00:55:05,000 Marrëdhëniet nga një ekran në tjetrin. 1019 00:55:05,000 --> 00:55:08,000 Nëse unë kam 2 butona dhe çdo buton ju merr në një ekran të ndryshme 1020 00:55:08,000 --> 00:55:10,000 Unë jam duke shkuar të ketë 2 segues, 1 për çdo buton. 1021 00:55:10,000 --> 00:55:14,000 Por kjo prepareForSegue është, përsëri, do të ripërdoren 1022 00:55:14,000 --> 00:55:17,000 për secilin nga marrëdhënie ndryshme, kështu që do të thotë se kam nevojë për një mënyrë 1023 00:55:17,000 --> 00:55:21,000 e identifikimit, nëse ju shtypni butonin e parë ose ju shtypni butonin e dytë. 1024 00:55:21,000 --> 00:55:25,000 >> Kujtohet kur unë i dha atij Segue një emër, ky showDivisions, 1025 00:55:25,000 --> 00:55:29,000 kjo është se si unë tani e di se kjo është Segue që u aktivizua. 1026 00:55:29,000 --> 00:55:32,000 Të gjitha unë dua të bëj është që unë dua të them 1027 00:55:32,000 --> 00:55:35,000 Unë dua të kuptoj se çfarë unë vetëm goditi, 1028 00:55:35,000 --> 00:55:38,000 dhe kështu që të merrni këtë, unë mund të them se unë dua indexPath për rreshtin e përzgjedhur, 1029 00:55:38,000 --> 00:55:42,000 kujtohet indexPath vetëm i thotë: kur unë vetëm klikuar, 1030 00:55:42,000 --> 00:55:47,000 dhe pastaj unë dua të them që unë dua të kuptoj se ku unë jam duke shkuar. 1031 00:55:47,000 --> 00:55:50,000 Kjo destinationViewController, që është një pronë e Segue. 1032 00:55:50,000 --> 00:55:53,000 Kjo është ekran unë jam duke shkuar për të, 1033 00:55:53,000 --> 00:55:56,000 kështu që unë e di se ekran unë jam duke shkuar për të quhet DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 sepse kam krijuar atë klasë, 1035 00:55:59,000 --> 00:56:02,000 dhe kështu që tani, nëse unë them d.divisions 1036 00:56:02,000 --> 00:56:06,000 Unë tani jam vendosjen e një pronë e kontrolluesit view unë jam gati për të shkuar për të. 1037 00:56:06,000 --> 00:56:10,000 Kjo është se si unë jam i dërgimit të të dhënave nga një ekran në një tjetër ekran. 1038 00:56:10,000 --> 00:56:13,000 >> Vetëm duke kërkuar në këtë DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 ju mund të shihni këtu se në dosje. h 1040 00:56:16,000 --> 00:56:20,000 nuk është se ndarjet e pronës, dhe kjo është ajo që unë jam në thelb popullim, 1041 00:56:20,000 --> 00:56:25,000 kështu që kjo është se si unë e di që unë jam shfaqen ndarjet përkatëse të 1042 00:56:25,000 --> 00:56:28,000 ligë që unë klikuar, dhe përsëri, 1043 00:56:28,000 --> 00:56:31,000 pikëpamja aktuale Tabela duket shumë e shumë të njëjtën gjë, vetëm duke u përgjigjur atyre 1044 00:56:31,000 --> 00:56:34,000 3 pyetje të thjeshta, si dhe identifikimi i 1045 00:56:34,000 --> 00:56:37,000 çfarë ndodh kur ju hyni në ekran tjetër. 1046 00:56:37,000 --> 00:56:40,000 Vetëm disa gjëra të tjera këtu. 1047 00:56:40,000 --> 00:56:43,000 Vëreni në krye këtu se në vend se duke thënë përfshijnë # 1048 00:56:43,000 --> 00:56:45,000 Unë tani jam duke thënë # importit. 1049 00:56:45,000 --> 00:56:47,000 Kjo është vetëm një gjë Objektivi-C. 1050 00:56:47,000 --> 00:56:52,000 Importi është në thelb një version nicer të përfshijnë, 1051 00:56:52,000 --> 00:56:57,000 dhe për shembull, ne kemi nevojë të dimë se çfarë është kjo klasë, 1052 00:56:57,000 --> 00:57:00,000 kështu që unë nuk mund të them vetëm DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 Nëse ne nuk e hashtag brenda standardio.c e dosjes. Tonë c 1054 00:57:05,000 --> 00:57:07,000 përpiluesit nuk kishte asnjë ide se çfarë ishte printf. 1055 00:57:07,000 --> 00:57:12,000 Në mënyrë të ngjashme, në qoftë se unë nuk do të importojë DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 përpiluesit të vërtetë nuk ka asnjë ide se çfarë një DivisionsViewController është. 1057 00:57:16,000 --> 00:57:19,000 Vetëm sigurohuni se brenda fotografi të ndryshme. Tuaja m jeni të sigurt për të importuar 1058 00:57:19,000 --> 00:57:25,000 korresponduese. fotografi h mënyrë që përpiluesit e di se çfarë po ndodh. 1059 00:57:25,000 --> 00:57:31,000 >> Së fundi, çfarë Apple në fund të fundit nuk është shfaqur disa të dhëna duke përdorur një pamje të internetit, 1060 00:57:31,000 --> 00:57:35,000 dhe kështu një pamje web është një objekt në të cilën ju mund të embed 1061 00:57:35,000 --> 00:57:37,000 një shfletues web pak brenda app tuaj. 1062 00:57:37,000 --> 00:57:40,000 Të gjithë ju duhet të bëni është të ofrojë një URL në shfletuesin tuaj të internetit, 1063 00:57:40,000 --> 00:57:43,000 kështu që unë dua të shkoj në mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 dhe kjo është se si unë mund të hyni në faqen në shtëpi për çdo ekip, 1065 00:57:46,000 --> 00:57:49,000 dhe kështu duke kaluar në këtë URL 1066 00:57:49,000 --> 00:57:52,000 pikëpamja web mund të shfaqin këtë për mua, dhe unë mund të shfletoni rreth, 1067 00:57:52,000 --> 00:58:01,000 dhe imitues është në përdorim nga atë njërit. 1068 00:58:01,000 --> 00:58:03,000 Tani kjo erdhi nga plist tim. 1069 00:58:03,000 --> 00:58:07,000 Nëse unë klikoni kjo edhe kjo erdhi nga plist time, dhe kjo rrëshqitje është trajtuar 1070 00:58:07,000 --> 00:58:09,000 duke përcaktuar ato segues. 1071 00:58:09,000 --> 00:58:12,000 Unë klikoni këtë dhe një më shumë, 1072 00:58:12,000 --> 00:58:15,000 dhe tani këtu është UIWebView time, në mënyrë që ashtu si 1073 00:58:15,000 --> 00:58:19,000 këtu është në faqen e internetit për të URL që unë ngulitur vetëm, 1074 00:58:19,000 --> 00:58:21,000 dhe unë nuk kanë për të trajtuar ndonjë gjë të çmendur. 1075 00:58:21,000 --> 00:58:24,000 Kjo është se si për të shfaqur një web faqe. 1076 00:58:24,000 --> 00:58:27,000 Gjëra të tilla si këtë buton përsëri këtu janë dhënë edhe për mua 1077 00:58:27,000 --> 00:58:33,000 krejtësisht falas sepse unë kam definuar këto marrëdhënie duke përdorur segues. 1078 00:58:33,000 --> 00:58:37,000 >> Çdo pyetje? Po. 1079 00:58:37,000 --> 00:58:40,000 [Student] Pra, kur ju përdorni shenjat e, ju kurrë nuk keni për të ndonjë gjë të lirë? 1080 00:58:40,000 --> 00:58:43,000 Pikërisht, kur ju telefononi dhe shenjat e init ju nuk keni për të liruar atë. 1081 00:58:43,000 --> 00:58:46,000 IOS do të trajtojë të gjithë se për ju. 1082 00:58:46,000 --> 00:58:51,000 Është e mrekullueshme, dhe ju nuk jeni i thyer rregullat. Po. 1083 00:58:51,000 --> 00:58:54,000 [Student] Nëse ju keni qenë të përfshirë ekipet më shumë që mund të përshtatet në ekran, 1084 00:58:54,000 --> 00:58:58,000 ajo automatikisht do të ketë një mundësi rrotull, apo është diçka që ju duhet të shtoni? 1085 00:58:58,000 --> 00:59:01,000 Pikërisht, në qoftë se kam pasur shumë ekipe, për shembull, kjo automatikisht do të trajtojë 1086 00:59:01,000 --> 00:59:04,000 scrolling për mua, dhe të gjitha shqetësimet e performancës 1087 00:59:04,000 --> 00:59:08,000 me tabelën e madhe janë trajtuar edhe totalisht për mua. 1088 00:59:08,000 --> 00:59:11,000 >> Pyetje të tjera? 1089 00:59:11,000 --> 00:59:13,000 Gjithë këtij kodi do të jetë postuar. 1090 00:59:13,000 --> 00:59:16,000 Ne lloj glossed mbi një pak detaje më të vogla, 1091 00:59:16,000 --> 00:59:19,000 por gjëra të tilla si vendosjen e disa prona për të parë web 1092 00:59:19,000 --> 00:59:22,000 janë vetëm gjërat që ju mund të merrni duke shfletuar dokumentacionin Apple, 1093 00:59:22,000 --> 00:59:24,000 e cila është me të vërtetë, me të vërtetë bukur hedhur jashtë. 1094 00:59:24,000 --> 00:59:27,000 Ata kanë një shumë të Apps mostër dhe shembull usages 1095 00:59:27,000 --> 00:59:34,000 TV të ndryshme, kështu që patjetër lexoj ato, nëse mundeni. 1096 00:59:34,000 --> 00:59:36,000 Vetëm disa lidhje të dobishme që ju mund të dëshironi të hidhni një sy në. 1097 00:59:36,000 --> 00:59:38,000 Këto janë disa udhëzime dobishëm dokumentacionit. 1098 00:59:38,000 --> 00:59:41,000 Të URLs janë masive, kështu që ata janë shkurtuar. 1099 00:59:41,000 --> 00:59:44,000 Ky pari është bibliotekë të tërë të dokumentacionit. 1100 00:59:44,000 --> 00:59:46,000 Ka bare pak e kërkimit, kështu që nëse ju filloni butonin typing 1101 00:59:46,000 --> 00:59:50,000 ajo do të fillojë t'ju dhënë të gjithë informacionin në lidhje me të gjitha gjërat që ju mund të bëni me një buton. 1102 00:59:50,000 --> 00:59:53,000 Unë e kam përfshirë gjithashtu View Tabela Guide programimit. 1103 00:59:53,000 --> 00:59:56,000 Ajo trajton pikëpamjet tavolinë në detaje shumë më tepër, 1104 00:59:56,000 --> 01:00:00,000 si për të bërë gjëra të tilla si dinamike shtoni qeliza qelizat apo editojnë apo fshijnë ato. 1105 01:00:00,000 --> 01:00:02,000 >> Ka shumë aplikacione mostër nga Apple që do të ju tregojnë se si për të bërë këtë, 1106 01:00:02,000 --> 01:00:05,000 dhe më në fund, kjo e fundit është Udhëzimet Interface Njeriut, 1107 01:00:05,000 --> 01:00:09,000 dhe kjo është në thelb një diskutim i komponentëve UI, 1108 01:00:09,000 --> 01:00:12,000 gjëra të tilla si nuk e bëjnë një buton që është 4 nga 4 pixels pixels. 1109 01:00:12,000 --> 01:00:15,000 Kjo është një ide e keqe, dhe gjëra të tjera që Apple dëshiron që ju të bëni 1110 01:00:15,000 --> 01:00:18,000 për të inkurajuar dizajn të mirë. 1111 01:00:18,000 --> 01:00:23,000 >> Ndonjë pyetje e fundit para se të përfundojë? 1112 01:00:23,000 --> 01:00:27,000 Të gjithë të drejtë, patjetër të ndjehen të lirë për-we're do të kenë etiketa të posaçme për të diskutuar. 1113 01:00:27,000 --> 01:00:30,000 Ne do të kemi një iOS një, kështu që patjetër të ndjehen të lirë për të shfrytëzuar atë. 1114 01:00:30,000 --> 01:00:34,000 Nëse ju doni të punoni me shokët e klasës tuaj në projekte 1115 01:00:34,000 --> 01:00:37,000 ose të ndihmojë të kuptoj se disa sende të rastit iOS 1116 01:00:37,000 --> 01:00:40,000 të ndjehen të lirë të email mua, dhe definitivisht lexoj të gjitha online Kodit sepse 1117 01:00:40,000 --> 01:00:43,000 vetëm në interes të kohës ne lloj glossed mbi më shumë 1118 01:00:43,000 --> 01:00:45,000 detajet finer trashë të gjërave. 1119 01:00:45,000 --> 01:00:47,000 Por në qoftë se jo, atëherë fat të mirë në projektet iOS tuaja, dhe unë shpresoj se ne kemi 1120 01:00:47,000 --> 01:00:53,000 një fluks i madh Apps në App Store. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]