1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu LIU: Hej, jak to leci wszystkim? 3 00:00:13,590 --> 00:00:20,250 I to jest iOS App programowanie obiektywnych c seminarium. 4 00:00:20,250 --> 00:00:21,520 I mam na imię Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Jestem młodszy Lowell teraz, koncentrując się w informatyce. 6 00:00:26,114 --> 00:00:28,030 Więc w tym seminarium jestem zamiar nauczyć was 7 00:00:28,030 --> 00:00:30,770 trochę o tym, jak złożyć aplikację. 8 00:00:30,770 --> 00:00:33,030 Yay, denerwować się na to. 9 00:00:33,030 --> 00:00:36,790 >> Więc zanim nawet zacząć nurkować do rzeczywistej strony programowania, 10 00:00:36,790 --> 00:00:41,840 niech po prostu bardzo szybko mówić o dlaczego warto budować aplikację iOS? 11 00:00:41,840 --> 00:00:43,940 Dlaczego iOS tak niesamowite? 12 00:00:43,940 --> 00:00:47,250 Tak więc pierwszym problemem, pierwszy rzecz, która jest dość niesamowite dla nas, 13 00:00:47,250 --> 00:00:51,190 zwłaszcza jako CS50 student, jest to, że iOS 14 00:00:51,190 --> 00:00:55,860 wykorzystuje Cel C. Cóż, nie Nowy język nazwie Swift, 15 00:00:55,860 --> 00:00:58,260 ale my nie będziemy używać, że w tym seminarium. 16 00:00:58,260 --> 00:01:01,540 Jeśli jesteś zainteresowany Swift, nie Seminarium jest niezależne o tym. 17 00:01:01,540 --> 00:01:05,590 Ale Cel C jest w zasadzie rozszerzeniem C. Znaczenie 18 00:01:05,590 --> 00:01:10,230 że wszystko, co można wykorzystać w C być przetłumaczone na język Objective C 19 00:01:10,230 --> 00:01:11,630 bardzo łatwo. 20 00:01:11,630 --> 00:01:15,730 >> Jak można się później, że rzeczywiście istnieją pewne bardzo podstawowe składni, są 21 00:01:15,730 --> 00:01:19,790 w zasadzie dokładnie tak samo C i Objective C. Tak więc, 22 00:01:19,790 --> 00:01:22,860 od zażycia CS50 aż tak daleko, to już 23 00:01:22,860 --> 00:01:26,500 wiem, Objective C, co najmniej 40%. 24 00:01:26,500 --> 00:01:30,720 Ponadto, Apple ma bardzo solidne API dla systemu iOS. 25 00:01:30,720 --> 00:01:33,750 Istnieje wiele naprawdę szalony rzeczy, które możesz zrobić. 26 00:01:33,750 --> 00:01:36,760 Z których jeden jest ktoś faktycznie stworzył aplikację dla systemu iOS 27 00:01:36,760 --> 00:01:40,600 dla samochodów kontroli, które jest całkiem interesująca. 28 00:01:40,600 --> 00:01:42,610 Prawdopodobnie helikopter jest bardziej ekscytujące. 29 00:01:42,610 --> 00:01:47,020 Ale to, jak potężny API iOS może być. 30 00:01:47,020 --> 00:01:49,340 >> I tak możesz mieć zorientowali się w tej chwili, 31 00:01:49,340 --> 00:01:53,000 Przepełnienie stosu jest prawdopodobnie jednym z najważniejsze zasoby online 32 00:01:53,000 --> 00:01:54,250 dostępne. 33 00:01:54,250 --> 00:01:58,090 I dobrą wiadomością dla każdego Jedynym problemem można ewentualnie 34 00:01:58,090 --> 00:02:01,840 myśleć podczas budowania swojej Ostateczny projekt w Objective C, 35 00:02:01,840 --> 00:02:05,910 istnieje prawdopodobieństwo odpowiedzi przepełnienie stosu. 36 00:02:05,910 --> 00:02:07,420 To jest po prostu niesamowite. 37 00:02:07,420 --> 00:02:12,780 Oprócz tego, iOS jest naprawdę platformą 38 00:02:12,780 --> 00:02:16,260 gdzie można osiągnąć ogromne Publiczność przy niewielkim wysiłku. 39 00:02:16,260 --> 00:02:20,170 To nie tak jak Android, gdzie wszystko jest bardzo rozdrobniony. 40 00:02:20,170 --> 00:02:22,540 >> Wszystko iOS jest jednolity. 41 00:02:22,540 --> 00:02:25,920 I tak długo, jak stworzyć aplikacja dla iPhone, 42 00:02:25,920 --> 00:02:31,260 możesz bardzo łatwo port, który do iPada, mini iPad, iPhone lub różne rozmiary. 43 00:02:31,260 --> 00:02:33,050 Są to bardzo wygodne. 44 00:02:33,050 --> 00:02:36,430 I to jest po prostu bardzo dobry dla imponuje swoim znajomym. 45 00:02:36,430 --> 00:02:38,920 Możesz po prostu przytrzymaj iPhone i poinformować swojego znajomego hej, 46 00:02:38,920 --> 00:02:40,250 jest to aplikacja robię. 47 00:02:40,250 --> 00:02:43,860 Możesz to zrobić dla każdego aplikacje desktopowe, co jest miłe. 48 00:02:43,860 --> 00:02:48,870 >> Dobra, teraz niech rzeczywiście dostać do języka Objective C 49 00:02:48,870 --> 00:02:52,910 Więc dlaczego nie zacząć niektóre naprawdę podstawowe składni. 50 00:02:52,910 --> 00:02:57,410 Jak już wspomniałem wcześniej Cel C Jest to w zasadzie rozszerzeniem C 51 00:02:57,410 --> 00:03:01,860 Tak wiele składni podstawowej są dokładnie taki sam. 52 00:03:01,860 --> 00:03:06,150 Deklarowanie zmiennej i dodanie dwóch zmiennych wraz 53 00:03:06,150 --> 00:03:09,440 Jest dokładnie tak, jak zrobiliśmy w Mario. 54 00:03:09,440 --> 00:03:11,140 Nic nowego tutaj. 55 00:03:11,140 --> 00:03:17,370 >> Podobnie lokatorem pętli i stan jest taki sam. 56 00:03:17,370 --> 00:03:22,370 Można to zrobić w pętli tak jak ty nie zrobił w Mario [niesłyszalne]. 57 00:03:22,370 --> 00:03:26,280 I można zrobić warunki tak jak to, co 58 00:03:26,280 --> 00:03:29,240 były wykonywane w poprzednich zbiorów p. 59 00:03:29,240 --> 00:03:33,400 Jednak, Objective C Nie jest całkowicie C, 60 00:03:33,400 --> 00:03:36,640 i to jest coś, co jest trochę dziwne o tym. 61 00:03:36,640 --> 00:03:42,340 >> Pierwszy z nich jest, że gdy jesteś robi programowania C, zazwyczaj zadzwonić 62 00:03:42,340 --> 00:03:46,310 to i nazwa biblioteki. 63 00:03:46,310 --> 00:03:49,860 Ale w Objective C wywołać taki przywóz. 64 00:03:49,860 --> 00:03:53,100 Generalnie mówiąc, funkcjonalność, tylko różne nazwy. 65 00:03:53,100 --> 00:03:55,940 I słowa są faktycznie trochę dziwne. 66 00:03:55,940 --> 00:03:58,250 Widać, że pierwsza rzecz, która jest trochę dziwne 67 00:03:58,250 --> 00:04:04,190 jest to, że masz dość weird-- sorry-- masz dość dziwne NS 68 00:04:04,190 --> 00:04:04,960 podpisać tutaj. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 I druga rzecz że to trochę dziwne 71 00:04:09,160 --> 00:04:14,090 to masz na znak przed faktycznie deklarując ciąg. 72 00:04:14,090 --> 00:04:19,209 Więc w zasadzie oznacza znak że łańcuch jest nie tylko łańcuch, 73 00:04:19,209 --> 00:04:20,880 to jest rzeczywiście obiekt. 74 00:04:20,880 --> 00:04:22,780 Mamy zamiar wyjaśnić które później tak nie 75 00:04:22,780 --> 00:04:25,800 paniki, jeśli nie zrozumieć, co to znaczy. 76 00:04:25,800 --> 00:04:29,980 I drukowanie do konsoli jest trochę inny, ponieważ w C nazywamy printf, 77 00:04:29,980 --> 00:04:33,350 ale w Objective C nazywamy [niesłyszalne]. 78 00:04:33,350 --> 00:04:35,640 >> Można się zastanawiać, co to jest. 79 00:04:35,640 --> 00:04:38,070 To jest w zasadzie printf, tylko inny język. 80 00:04:38,070 --> 00:04:41,370 Dokładnie takie samo zastosowanie, dokładnie takie same funkcje. 81 00:04:41,370 --> 00:04:44,060 Otóż ​​okazuje się, że Cel C rzeczywistości 82 00:04:44,060 --> 00:04:50,040 ma ns prefiks w prawie wszystko, co podstawowy typ danych, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 Wynika to z faktu, że ns faktycznie oznacza kolejny krok, 85 00:04:56,340 --> 00:04:59,980 która to firma, która Steve Jobs założył, 86 00:04:59,980 --> 00:05:03,960 która jest firmą, w której języka Objective C rodzi. 87 00:05:03,960 --> 00:05:06,140 Tak to jest w zasadzie tradycji. 88 00:05:06,140 --> 00:05:09,010 Wiem, że to trochę dziwne, ale to jabłko. 89 00:05:09,010 --> 00:05:16,840 >> Więc coś, co jest jeszcze dziwniejsze niż jest deklaracja funkcji. 90 00:05:16,840 --> 00:05:22,600 To jest bardzo różne od tego, co zobacz w C, bo tutaj to rzeczywiście 91 00:05:22,600 --> 00:05:25,190 nie wygląda jak C więcej. 92 00:05:25,190 --> 00:05:28,810 Co masz here-- przez Droga ta nie jest punktor, 93 00:05:28,810 --> 00:05:30,690 to jest znak minus. 94 00:05:30,690 --> 00:05:36,440 Masz nawias znak minusa nieważne, a następnie nazwa funkcji. 95 00:05:36,440 --> 00:05:38,450 Powiedzmy, że jeśli mają Hello World, a następnie 96 00:05:38,450 --> 00:05:42,820 Typ zwracany byłby nieważny bo nic nie powrócić. 97 00:05:42,820 --> 00:05:44,680 >> Co robi się naprawdę dziwne jest to, że kiedy jesteś 98 00:05:44,680 --> 00:05:49,580 mające więcej niż jeden parametr przechodząc do samej funkcji, które 99 00:05:49,580 --> 00:05:53,870 będzie naprawdę dziwne, jak pokazano tutaj. 100 00:05:53,870 --> 00:05:58,230 Mamy nazwę metody, nazywa addInt do [niesłyszalne] 101 00:05:58,230 --> 00:06:00,370 i przekazujemy jeden parametr. 102 00:06:00,370 --> 00:06:05,170 Ale po tym, mamy więcej nazwa metody połączenia z. 103 00:06:05,170 --> 00:06:08,500 A po z przekazujemy Drugi parametr. 104 00:06:08,500 --> 00:06:11,940 To jest rzeczywiście trochę dziwne, ale wszystkie te deklaracje funkcji 105 00:06:11,940 --> 00:06:14,770 według tego samego schematu, jak ta. 106 00:06:14,770 --> 00:06:17,450 >> Mamy znak minus na początku. 107 00:06:17,450 --> 00:06:21,550 Znak minus może być znak plus czasami na podstawie jakiego rodzaju metody 108 00:06:21,550 --> 00:06:22,340 jest to. 109 00:06:22,340 --> 00:06:25,000 Metoda jest w zasadzie inna nazwa funkcji. 110 00:06:25,000 --> 00:06:26,760 I będziemy wyjaśnić, że później, gdy 111 00:06:26,760 --> 00:06:30,580 mówimy o obiekcie Programowanie obiektowe. 112 00:06:30,580 --> 00:06:34,300 Najpierw określ zwrot wpisz w nawiasach, 113 00:06:34,300 --> 00:06:37,450 po której pochodzi nazwa metody. 114 00:06:37,450 --> 00:06:40,310 Jesteś przekazując jeden parametr. 115 00:06:40,310 --> 00:06:44,750 A jeśli masz więcej parametrów należy rozszerzyć nazwę metody 116 00:06:44,750 --> 00:06:46,770 iw zasadzie napisać coś więcej. 117 00:06:46,770 --> 00:06:48,090 >> To może być cokolwiek chcesz. 118 00:06:48,090 --> 00:06:50,140 W naszym przypadku jest to o. 119 00:06:50,140 --> 00:06:56,160 Ale można powiedzieć, zakończenia lub lub lub abc pełny bar, co chcesz. 120 00:06:56,160 --> 00:06:59,500 A potem, że jesteś przekazując parametr B. 121 00:06:59,500 --> 00:07:01,750 To jest bardzo dziwne Konwencja ale jesteśmy 122 00:07:01,750 --> 00:07:05,800 będzie chciał zobaczyć, dlaczego jabłko aby to zrobić bardzo szybko. 123 00:07:05,800 --> 00:07:10,530 Więc jak wywołanie funkcji? 124 00:07:10,530 --> 00:07:15,520 Wywołanie funkcji w Cel C jest różne od C 125 00:07:15,520 --> 00:07:18,170 >> Właściwie, nazywając Funkcja w Objective C 126 00:07:18,170 --> 00:07:21,030 jest bardziej jak mówisz do kogoś. 127 00:07:21,030 --> 00:07:27,030 Tutaj mamy siebie, co nazywa się obiektem. 128 00:07:27,030 --> 00:07:33,830 Jesteś w zasadzie mówi obiekt siebie powiedzieć "Hello World!" 129 00:07:33,830 --> 00:07:36,830 To jest to, jak do wywołania funkcji. 130 00:07:36,830 --> 00:07:41,690 Nazwa obiektu i metody łączy się ze sobą. 131 00:07:41,690 --> 00:07:49,600 I to jest dziwne rozszerzenie do nazwy metody naprawdę wchodzi w grę. 132 00:07:49,600 --> 00:07:52,150 >> Spójrzmy na drugim przykładzie. 133 00:07:52,150 --> 00:07:56,780 Po prostu zdefiniowane metody nazywanej addInt z bla bla bla. 134 00:07:56,780 --> 00:08:00,066 Więc w tym przypadku, gdy dzwonisz że szczególne [? wiadomość?] to będzie 135 00:08:00,066 --> 00:08:02,035 wyglądać jak samo addInt: 10 z: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 To brzmi jak angielski. 138 00:08:08,070 --> 00:08:11,980 Chociaż funkcja Deklaracja funkcji jest dziwne, 139 00:08:11,980 --> 00:08:15,600 punkt Objective C-tych Metoda oświadczenie wzór, 140 00:08:15,600 --> 00:08:18,830 jest to, że gdy dzwonisz Funkcja lub metoda 141 00:08:18,830 --> 00:08:21,980 to brzmi jak rzeczywistej angielskim. 142 00:08:21,980 --> 00:08:25,270 Więc to jest bardzo intuicyjne gdy pojawi się w nim. 143 00:08:25,270 --> 00:08:28,740 >> Szczególnie w tym przypadku, gdzie można w zasadzie 144 00:08:28,740 --> 00:08:33,010 zobaczyć, że nazwa funkcji jest rodzaj dokumentowania się. 145 00:08:33,010 --> 00:08:35,390 Nie trzeba wszelkie Wyjaśnienie, aby zobaczyć więcej 146 00:08:35,390 --> 00:08:42,770 co dokładnie się dzieje, co dokładnie jeden parametr robi. 147 00:08:42,770 --> 00:08:48,470 Wychodząc poza tym, porozmawiajmy trochę nieco na temat programowania obiektowego. 148 00:08:48,470 --> 00:08:52,160 Obiekt jest programowaniu jednym z podstawowych programów 149 00:08:52,160 --> 00:08:57,110 techniki i wzory, które jest wykorzystywane przez Cel C. Cel C 150 00:08:57,110 --> 00:09:03,110 nazywa Objective C, nie C, za naprawdę dobry powód. 151 00:09:03,110 --> 00:09:07,560 >> Więc zanim przejdziemy do Cel składni C, 152 00:09:07,560 --> 00:09:11,670 Miejmy bardzo szybko spojrzeć na co dokładnie jest przedmiotem. 153 00:09:11,670 --> 00:09:15,480 Mamy chyba zrobić coś jak obiekt przed, w którym 154 00:09:15,480 --> 00:09:19,780 nazywany jest struktura, gdy jesteś wdrażania drzewo lub połączonej listy 155 00:09:19,780 --> 00:09:25,730 lub [? spróbować. ?] Tak, to w zasadzie jak struct, 156 00:09:25,730 --> 00:09:28,560 ale jest o wiele więcej możliwości niż to. 157 00:09:28,560 --> 00:09:33,150 Obiekt posiada metody i właściwości. 158 00:09:33,150 --> 00:09:35,310 Metody są w zasadzie funkcje. 159 00:09:35,310 --> 00:09:39,480 Zasadniczo działa, że specyficzne dla określonego obiektu. 160 00:09:39,480 --> 00:09:45,440 >> I właściwości są w zasadzie Pole określić w struct. 161 00:09:45,440 --> 00:09:48,500 Tak więc dla każdego obiektu mamy kilka nieruchomości 162 00:09:48,500 --> 00:09:53,160 że ma pewne zmienne, które są specyficzne dla danego obiektu. 163 00:09:53,160 --> 00:09:57,170 I mamy kilka funkcji, które są również specyficzne dla danego obiektu. 164 00:09:57,170 --> 00:10:01,180 I funkcje są wywoływane metody oraz zmiennych nazywane są właściwości. 165 00:10:01,180 --> 00:10:03,190 To tylko nazwa. 166 00:10:03,190 --> 00:10:10,440 Podczas rzeczywistości, każdy widok widzisz podczas otwierania aplikacji iOS, 167 00:10:10,440 --> 00:10:17,720 powiedzmy, Twitter lub Facebook, każdy widok można zobaczyć jest obiekt. 168 00:10:17,720 --> 00:10:22,110 I nawet cała aplikacja jest Obiekt na początek. 169 00:10:22,110 --> 00:10:25,340 Bardzo ciekawa koncepcja. 170 00:10:25,340 --> 00:10:28,480 >> I dlaczego chcemy obiektu zorientowane programowanie? 171 00:10:28,480 --> 00:10:33,530 Więc można sobie wyobrazić, że kiedy cię Program robi się dość skomplikowane. 172 00:10:33,530 --> 00:10:36,400 Powiedzmy tylko, gdy jesteś realizacji szachownicę, 173 00:10:36,400 --> 00:10:40,020 logiczny ma być bardzo skomplikowane. 174 00:10:40,020 --> 00:10:43,280 Masz 36 różnych sztuk, tak, że jeśli 175 00:10:43,280 --> 00:10:48,370 chcę napisać logiki dla wszystkich 36 różnych sztuk w szachy, 176 00:10:48,370 --> 00:10:52,150 że będzie dużo różne funkcje i zmienne. 177 00:10:52,150 --> 00:10:54,070 Jest wiele problemów. 178 00:10:54,070 --> 00:10:58,980 I pewnie masz zamiar napisać inna metoda lub inna funkcja 179 00:10:58,980 --> 00:11:03,950 Dla każdego elementu, który dokładnie kontrolować, co robią. 180 00:11:03,950 --> 00:11:08,830 >> Ale jeśli nie obiektowego programowania wszystkich tych kawałków 181 00:11:08,830 --> 00:11:12,440 mogą być wydobywane w jeden obiekt. 182 00:11:12,440 --> 00:11:16,111 A obiekt będzie miał pewne wspólne Właściwości, takie jak Jaką sztukę 183 00:11:16,111 --> 00:11:16,610 to jest? 184 00:11:16,610 --> 00:11:17,740 Jaki to kolor? 185 00:11:17,740 --> 00:11:19,480 Jak może się poruszać? 186 00:11:19,480 --> 00:11:24,660 I w ten sposób masz znacznie uproszczona logika nim. 187 00:11:24,660 --> 00:11:28,480 Więc to jest po prostu bardzo dobry sposób do skomplikowanych programów, 188 00:11:28,480 --> 00:11:33,700 i hierarchiczne relacje w ramach programu, bardzo proste. 189 00:11:33,700 --> 00:11:36,800 Jak mamy zamiar zobaczyć Dlatego bardzo szybko, kiedy 190 00:11:36,800 --> 00:11:39,660 my rzeczywiście robi programming-- kiedy jesteśmy naprawdę 191 00:11:39,660 --> 00:11:42,830 robi kod S programowanie sesji później. 192 00:11:42,830 --> 00:11:48,120 >> Oraz, oprócz tego, oriented programming obiektu 193 00:11:48,120 --> 00:11:50,030 jest po prostu świetna zabawa. 194 00:11:50,030 --> 00:11:51,990 Musisz zaprojektować własny obiekt. 195 00:11:51,990 --> 00:11:56,080 Musisz zaprojektować co robi że wygląda jak ty. 196 00:11:56,080 --> 00:11:58,250 Nie ma dobrej odpowiedzi na to. 197 00:11:58,250 --> 00:12:02,940 I to zupełnie za interesujące. 198 00:12:02,940 --> 00:12:07,270 Tak więc w programowania obiektowego, dwa podstawowe pojęcia 199 00:12:07,270 --> 00:12:10,130 będą klasy i instancji. 200 00:12:10,130 --> 00:12:13,570 Klasa jest w zasadzie szablon do obiektu. 201 00:12:13,570 --> 00:12:18,070 I instancji jest w zasadzie jeden konkretny obiekt. 202 00:12:18,070 --> 00:12:21,090 >> Powiedzmy, że robisz cookie. 203 00:12:21,090 --> 00:12:24,800 W tym przypadku, każdy Cookie faktycznie kończy się z 204 00:12:24,800 --> 00:12:27,310 będzie przedmiotem. 205 00:12:27,310 --> 00:12:35,830 Ale płyta Cookie używane do pieczenia wszystkie ciasteczka będą klasy. 206 00:12:35,830 --> 00:12:37,880 Klasa jest w zasadzie szablonu. 207 00:12:37,880 --> 00:12:46,170 I instancja będzie jeden konkretny Obiekt powstał z tej klasy. 208 00:12:46,170 --> 00:12:49,970 >> I instancja zostanie utworzona na podstawie deklaracji klasy, 209 00:12:49,970 --> 00:12:56,760 jak zobaczymy w kolejnych slajdach. 210 00:12:56,760 --> 00:13:00,010 Więc faktycznie naprawdę szybkie przykładem [niesłyszalne]. 211 00:13:00,010 --> 00:13:04,280 Powiedzmy, że mamy do deklarowania Obiekt dla kota. 212 00:13:04,280 --> 00:13:07,930 Obiekt powinien have-- Kot powinien klasy 213 00:13:07,930 --> 00:13:11,260 mają pewne właściwości i metody. 214 00:13:11,260 --> 00:13:17,300 Jakie właściwości powinno się Klasa have-- Kot powinien mieć? 215 00:13:17,300 --> 00:13:20,580 >> Na przykład, kolor, wieku i rasy, tych, 216 00:13:20,580 --> 00:13:24,440 będzie zmienne, są specyficzne dla każdego kota. 217 00:13:24,440 --> 00:13:27,790 A to są pewne rzeczy, że używamy do opisania kota. 218 00:13:27,790 --> 00:13:31,880 Jakie metody, lub co może kot zrobić? 219 00:13:31,880 --> 00:13:37,160 Kilka przykładów byłoby pościg myszy, jeść ryby lub po prostu meow. 220 00:13:37,160 --> 00:13:40,900 Jest to bardzo szybkie Przykładem klasy kot. 221 00:13:40,900 --> 00:13:46,920 I bardzo specyficzne kot obiekt będzie kot 222 00:13:46,920 --> 00:13:50,930 gdzie określamy kolor skóry, wiek i rasę. 223 00:13:50,930 --> 00:13:53,790 >> W takim przypadku, nasz obiekt jest nie klasy już. 224 00:13:53,790 --> 00:14:00,010 Kopiujemy szablon z klasy i możemy podać każdą konkretne informacje 225 00:14:00,010 --> 00:14:04,510 do tego konkretnego obiektu aby niezależny. 226 00:14:04,510 --> 00:14:09,350 A kiedy dzwonisz Sposób wewnątrz obiektu 227 00:14:09,350 --> 00:14:16,640 po prostu zadzwonić meow na obiekcie, który jest po prostu stworzony kota. 228 00:14:16,640 --> 00:14:19,020 >> Prawdopodobnie będzie wydrukować coś jak "Hello World! 229 00:14:19,020 --> 00:14:20,000 Miau ". 230 00:14:20,000 --> 00:14:22,110 Całkiem ładny. 231 00:14:22,110 --> 00:14:24,500 Wszystko w porządku, po prostu dostać się do niektórych szczegółów 232 00:14:24,500 --> 00:14:30,650 i zobaczyć, co dokładnie oznacza, że przekładają się na bycie programowania iOS. 233 00:14:30,650 --> 00:14:36,500 Tak więc w programowaniu iOS każdy Zajęcia będą realizowane w dwóch plikach. 234 00:14:36,500 --> 00:14:41,420 Jeden plik jest tutaj, co nazywa interfejs. 235 00:14:41,420 --> 00:14:45,300 Kolejny plik jest tutaj, co nazywa się realizacji. 236 00:14:45,300 --> 00:14:48,890 >> Zazwyczaj interfejs będzie miał extension.h 237 00:14:48,890 --> 00:14:51,740 jak widzieliśmy w bibliotekach C. 238 00:14:51,740 --> 00:14:56,340 A plik realizacja jest będzie mieć extension.n. 239 00:14:56,340 --> 00:14:57,260 To trochę dziwne. 240 00:14:57,260 --> 00:15:01,270 Ale .N oznacza faktycznie .c, że nie jest Podstawowa różnica między tymi, 241 00:15:01,270 --> 00:15:02,100 dwa. 242 00:15:02,100 --> 00:15:06,650 Więc w tym przypadku, możemy zobaczyć, że jesteśmy deklarując interfejsu, Kot: obiekt. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 To się nazywa spadków. 245 00:15:13,760 --> 00:15:19,170 Jesteśmy w zasadzie dziedziczenia Kot z klasy klasy obiektu. 246 00:15:19,170 --> 00:15:24,790 Więc każda nieruchomość i sposób, że był uprzednio zdefiniowane w klasie obiektu 247 00:15:24,790 --> 00:15:28,560 zostanie automatycznie zdefiniowana w klasie kot, jak również. 248 00:15:28,560 --> 00:15:35,900 >> Oprócz tego, że definiuje kolor rasy i wieku, trzy zmienne. 249 00:15:35,900 --> 00:15:39,360 To faktycznie wygląda coś, czego nie robiłem. 250 00:15:39,360 --> 00:15:41,770 Wygląda na to, struct. 251 00:15:41,770 --> 00:15:44,950 Która jest w zasadzie składni dla deklaracji struct, 252 00:15:44,950 --> 00:15:47,710 i to jest całkowicie poprawne. 253 00:15:47,710 --> 00:15:51,825 A skoro już wspomniałem wcześniej, Różnica struct 254 00:15:51,825 --> 00:15:53,960 a obiekt, jeden z podstawowe różnice 255 00:15:53,960 --> 00:15:59,080 jest to, że obiekt ma metody podczas gdy struktura ma tylko zmienne. 256 00:15:59,080 --> 00:16:03,450 Tak więc oprócz właściwości lub zmienne, które stworzyliśmy dla obiektu, 257 00:16:03,450 --> 00:16:05,700 możemy określić jakąś metodę. 258 00:16:05,700 --> 00:16:09,720 >> Powiedzmy, że mamy tutaj dwa sposoby, jeden jest meow, 259 00:16:09,720 --> 00:16:12,460 innym jest pościg myszy. 260 00:16:12,460 --> 00:16:18,600 Prawdopodobnie chcą być przechodzącej Parametr podstawie poprzedniej metody 261 00:16:18,600 --> 00:16:20,440 Deklaracja wzór. 262 00:16:20,440 --> 00:16:22,160 Prawdopodobnie chcesz być przechodząc myszy. 263 00:16:22,160 --> 00:16:25,180 I prawdopodobnie będziesz chciał zwrócić oznaczający bool 264 00:16:25,180 --> 00:16:30,010 jeśli twój kot ma powodzeniem złapać mysz, czy nie. 265 00:16:30,010 --> 00:16:33,170 >> Jest to interfejs, ale możemy zobaczyć, że faktycznie interfejs 266 00:16:33,170 --> 00:16:35,150 nic nie robi. 267 00:16:35,150 --> 00:16:40,800 To po prostu mówi, program, co exists-- co występuje w klasie kotów. 268 00:16:40,800 --> 00:16:43,640 Tak więc, aby dla Program coś zrobić, 269 00:16:43,640 --> 00:16:46,680 musimy mieć pliki realizacji. 270 00:16:46,680 --> 00:16:51,940 Więc tutaj, pierwsza rzecz, którą robimy jest oczywiście sprowadzamy interfejs. 271 00:16:51,940 --> 00:16:56,470 Po sprowadzamy interfejs, zdefiniować sposób. 272 00:16:56,470 --> 00:17:00,150 >> Powiedzmy, że tutaj meow po prostu wydrukować 273 00:17:00,150 --> 00:17:01,740 "Hello World!" do konsoli. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 I po zakończeniu realizacji Plik, mamy bardzo dużo zrobić. 276 00:17:08,460 --> 00:17:14,530 Jest to po prostu klasa Deklaracja dla jednej grupy. 277 00:17:14,530 --> 00:17:19,970 Teraz pojawia się pytanie, jak można zadeklarować zmienną? 278 00:17:19,970 --> 00:17:26,880 Sposobem jest użycie klasy do tworzenia Obiekt w Objective C, tu jest napisane. 279 00:17:26,880 --> 00:17:30,730 >> Najpierw określić, że jest to wskaźnik kot, 280 00:17:30,730 --> 00:17:38,700 bo każdego obiektu w celu C wreszcie zrealizowany jako wskaźnika. 281 00:17:38,700 --> 00:17:46,210 I ty nazywasz klasę, nazywamy je jak Alloc, która jest zasadniczo malloc, 282 00:17:46,210 --> 00:17:51,220 mówi systemu operacyjnego Potrzebuję trochę miejsca w pamięci dla tego obiektu. 283 00:17:51,220 --> 00:17:55,780 Po, że mamy obiekt już i po prostu go zainicjować. 284 00:17:55,780 --> 00:17:56,780 To tylko konwencja. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Wiem, że to jest trochę dziwne, ale w rzeczywistości jest to w jaki sposób Apple robi rzeczy. 287 00:18:04,410 --> 00:18:07,130 >> Przypisywanie właściwości jest rzeczywiście bardzo proste. 288 00:18:07,130 --> 00:18:09,250 Jest bardzo podobna do co robisz, kiedy 289 00:18:09,250 --> 00:18:13,780 przypisujesz pewne specyficzne Pole wewnątrz struct. 290 00:18:13,780 --> 00:18:16,830 Trzeba tylko zmienną imię, nazwę właściwości, 291 00:18:16,830 --> 00:18:20,140 i przypisać konkretną wartość. 292 00:18:20,140 --> 00:18:24,120 I wywołanie metody jest bardzo podobny. 293 00:18:24,120 --> 00:18:29,080 Wywołanie metody jest w zasadzie to, co mówię o 294 00:18:29,080 --> 00:18:32,390 na wywołanie innej metody, w Objective C 295 00:18:32,390 --> 00:18:36,660 >> Jesteś przechodzącą obiekt, w w tym przypadku to będzie przypadku kategoria, 296 00:18:36,660 --> 00:18:42,490 a ty przekazując nazwę metody. 297 00:18:42,490 --> 00:18:47,130 Jakby pan mówi do obiektu, przypadku kategoria, że ​​należy meow. 298 00:18:47,130 --> 00:18:48,570 To dość ciekawe. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Następnie, nie jest bardziej istotne wzorzec projektowy 301 00:18:55,680 --> 00:18:59,940 że musimy porozmawiać o zanim się do rzeczywistego kodu S. 302 00:18:59,940 --> 00:19:03,300 To nazywane jest wzorzec projektowy sterowane zdarzeniami programowania. 303 00:19:03,300 --> 00:19:09,660 Jest to również prawdopodobnie jednym z najbardziej Podstawowe idee w programowaniu iOS. 304 00:19:09,660 --> 00:19:14,410 >> Więc chyba nie wiesz co dokładnie jest programowanie sterowane zdarzeniami, 305 00:19:14,410 --> 00:19:16,990 ale to naprawdę nie jest takie straszne. 306 00:19:16,990 --> 00:19:20,400 No faktycznie, masz już zrobione wcześniej. 307 00:19:20,400 --> 00:19:24,894 Jest to jedna z linii to prawdopodobnie już napisane w ostatnim [niesłyszalne] 308 00:19:24,894 --> 00:19:26,810 z CS50, google.maps.event.addListener (marker, 309 00:19:26,810 --> 00:19:27,810 "Kliknij", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Poprzez wywołanie tej linii jesteś zasadniczo mówiąc komputer 312 00:19:37,620 --> 00:19:42,650 że gdy impreza pod nazwą "Kliknij" dzieje się na znacznik, 313 00:19:42,650 --> 00:19:43,630 używać tej funkcji. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> To różni się od co robisz w mario.c. 316 00:19:50,950 --> 00:19:56,670 W mario.c po prostu uruchom program raz, to daje moc, 317 00:19:56,670 --> 00:19:58,590 i gotowe. 318 00:19:58,590 --> 00:20:02,590 Są trochę jak jeden strzał. programy 319 00:20:02,590 --> 00:20:05,830 Programy sterowane zdarzeniami są bardzo, bardzo różne. 320 00:20:05,830 --> 00:20:10,230 Wyobraźmy sobie, gdy Facebook jest jednym Program strzał to naprawdę nie jest dobre. 321 00:20:10,230 --> 00:20:13,750 Wystarczy przejść na Facebook raz to zrobić. 322 00:20:13,750 --> 00:20:16,700 To daje jakieś wyjście i nigdy nie dostałem go z powrotem. 323 00:20:16,700 --> 00:20:19,380 Nigdy nie ma nic więcej. 324 00:20:19,380 --> 00:20:23,880 >> Więc tutaj, zwłaszcza wzór używamy jest 325 00:20:23,880 --> 00:20:26,940 zdarzeniami, tak że każda funkcja będzie 326 00:20:26,940 --> 00:20:31,480 być oparte na tym, co złowione Wydarzenie stało. 327 00:20:31,480 --> 00:20:34,670 Na przykład, jeśli mamy przycisk i określić 328 00:20:34,670 --> 00:20:39,870 że w każdym przypadku, że kliknięciu przycisku, wywołać funkcję o nazwie "Hello World!" 329 00:20:39,870 --> 00:20:47,810 W ten sposób możemy naprawdę Funkcja zarządzania logiki 330 00:20:47,810 --> 00:20:50,560 przepływu w bardzo elastyczny sposób. 331 00:20:50,560 --> 00:20:55,840 Użytkownik może zrobić lub wywołania funkcji że została już wywołana. 332 00:20:55,840 --> 00:20:59,900 Jest całkowicie oparte na tym, co zrobić, użytkowników. 333 00:20:59,900 --> 00:21:04,080 >> Tak więc widzimy, że jest to w rzeczywistości o wiele lepiej niż mario.c. 334 00:21:04,080 --> 00:21:07,190 I dobrą wiadomością jest to, że Właściwie nie nowy pomysł. 335 00:21:07,190 --> 00:21:12,140 Wy już to zrobiły że w ostatnim błąd ustawienia. 336 00:21:12,140 --> 00:21:16,640 W Objective C, więc nie są trzy różne schematy 337 00:21:16,640 --> 00:21:19,030 programowanie sterowane zdarzeniami. 338 00:21:19,030 --> 00:21:21,970 Pierwszy schemat jest nazywa działania docelowe, 339 00:21:21,970 --> 00:21:26,990 gdzie można powiązać przycisk prasowa z niektórych funkcji. 340 00:21:26,990 --> 00:21:31,590 Powiedzmy, po kliknięciu niektóre przycisk wywołania niektórych funkcji. 341 00:21:31,590 --> 00:21:33,620 Jest to bardzo prosta czynność cel. 342 00:21:33,620 --> 00:21:35,580 >> Drugi jest rzeczywiście najtrudniejszy, 343 00:21:35,580 --> 00:21:38,450 to się nazywa delegacja na protokole. 344 00:21:38,450 --> 00:21:41,800 Mamy zamiar wyjaśnić które szczegółowo później. 345 00:21:41,800 --> 00:21:44,420 A trzeci sposób jest powiadomienie. 346 00:21:44,420 --> 00:21:46,770 Nie jest to faktycznie Bardzo ważne jeśli chodzi 347 00:21:46,770 --> 00:21:50,920 jak my zaniepokojony, ponieważ szansa że masz zamiar korzystać z powiadomień 348 00:21:50,920 --> 00:21:53,310 w ostatecznym projekcie jest dość niska. 349 00:21:53,310 --> 00:21:56,440 Tak więc mamy zamiar pominąć tę część. 350 00:21:56,440 --> 00:21:59,460 >> I będziemy nurkować w delegacji na protokole. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Więc co dokładnie jest protokół? 353 00:22:04,470 --> 00:22:06,450 A co to w delegacji? 354 00:22:06,450 --> 00:22:09,670 Porozmawiajmy o protokół na początek. 355 00:22:09,670 --> 00:22:13,360 Protokoły są tylko wydarzenia. 356 00:22:13,360 --> 00:22:19,230 Ale te wydarzenia są przyznawane Ci przez Apple na początek. 357 00:22:19,230 --> 00:22:22,640 Na przykład, nie jestem całkowicie pewien, jak wielu z was 358 00:22:22,640 --> 00:22:27,930 Chłopaki używać oryginalnego Apple mail lub kontakt aplikacja, 359 00:22:27,930 --> 00:22:32,180 ale za każdym razem przewijania Stół i naciśnij konkretnej komórki 360 00:22:32,180 --> 00:22:36,130 w tabeli, to jest zdarzenia. 361 00:22:36,130 --> 00:22:38,330 >> A jeśli chcesz zrobić zdarzenie przez siebie, 362 00:22:38,330 --> 00:22:40,410 to faktycznie trochę ciężko. 363 00:22:40,410 --> 00:22:44,880 Więc Apple skoro nawet do ciebie tak, że można po prostu korzystać bezpośrednio 364 00:22:44,880 --> 00:22:49,610 Impreza zrobić coś na własną rękę. 365 00:22:49,610 --> 00:22:52,980 Protokoły są rzeczywiście bardzo, bardzo szeroko stosowane 366 00:22:52,980 --> 00:22:58,320 w Objective C. Dobrze się Fakt, każda aplikacja 367 00:22:58,320 --> 00:23:00,870 ma coś złapać app delegata. 368 00:23:00,870 --> 00:23:06,330 Wewnątrz delikatna jest wszystko protokoły ładowania aplikacji. 369 00:23:06,330 --> 00:23:12,470 >> Powiedzmy, że nie jest Impreza dla aplikacji nie obciążenie. 370 00:23:12,470 --> 00:23:18,200 Więc co się stało po tym, jak utworzona aplikacja, po otwarciu aplikacji, 371 00:23:18,200 --> 00:23:22,630 po zamknięciu aplikacji, lub po umieścić iPhone spać. 372 00:23:22,630 --> 00:23:27,480 Są to wszystkie zdarzenia, które ma już wam. 373 00:23:27,480 --> 00:23:34,730 I pierwotnie wewnątrz tych cząstek nie będzie realizacji. 374 00:23:34,730 --> 00:23:39,750 Firma Apple po prostu powiedział, że tej funkcji stanie się, gdy jakieś zdarzenie nastąpi, 375 00:23:39,750 --> 00:23:44,380 ale to, co z tym zrobić Funkcja ta jest całkowicie do Ciebie. 376 00:23:44,380 --> 00:23:49,290 >> Delegacja jest w zasadzie mówi klasę 377 00:23:49,290 --> 00:23:53,060 że należy obsługiwać te protokoły. 378 00:23:53,060 --> 00:23:55,340 To trochę mylące, ale to będzie 379 00:23:55,340 --> 00:23:59,380 znacznie wyraźniejsze, gdy robimy kody s w akcji. 380 00:23:59,380 --> 00:24:04,760 Delegacja na protokole jest rzeczywiście bardzo wytrzymały mechanizm, w tym sensie, 381 00:24:04,760 --> 00:24:08,160 że jeśli robimy delegacji do określonej klasy 382 00:24:08,160 --> 00:24:12,400 możemy głównie obsługi wszystkie rodzaje zdarzeń 383 00:24:12,400 --> 00:24:17,040 przy użyciu dowolnej klasy mamy, bardzo wygodne narzędzie. 384 00:24:17,040 --> 00:24:21,530 >> Więc jeden szybki przykład dla Delegacja na protokole 385 00:24:21,530 --> 00:24:24,120 będzie to, co właśnie rozmawialiśmy. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Protokół ten nazywany jest specjalnie tableview [niesłyszalne] wybrać rolę 388 00:24:30,890 --> 00:24:35,480 na [? Indeks?] [? przeszłość. ?] Więc to Wydarzenie, które się złapać, gdy ci 389 00:24:35,480 --> 00:24:39,710 rzeczywiście specyficzne dotknij komórek w tableview, 390 00:24:39,710 --> 00:24:43,570 powiedzmy w mailu lub w aplikacji Kontakty. 391 00:24:43,570 --> 00:24:48,180 >> Wewnątrz funkcji nie było Początkowo nic nie robi. 392 00:24:48,180 --> 00:24:51,950 Funkcja nie niczego domyślnie. 393 00:24:51,950 --> 00:24:55,540 Ale można określić co robi funkcja, 394 00:24:55,540 --> 00:24:59,610 biorąc pod uwagę to, co chcesz z Twojej aplikacji. 395 00:24:59,610 --> 00:25:01,610 Bardzo wygodne narzędzie. 396 00:25:01,610 --> 00:25:06,840 I z tym wszystkim, powiedział jest, ja w zasadzie 397 00:25:06,840 --> 00:25:11,430 obejmuje kilka bardzo podstawową składnię i Podstawowym pojęciem w celu C 398 00:25:11,430 --> 00:25:15,860 programowania, a my możemy zrobić ów kod. 399 00:25:15,860 --> 00:25:17,980 O wiele bardziej ekscytujące. 400 00:25:17,980 --> 00:25:21,070 Więc ów kod jest rzeczywiście trochę przytłaczające 401 00:25:21,070 --> 00:25:23,330 otwarcie go po raz pierwszy. 402 00:25:23,330 --> 00:25:26,640 >> Jedno szybkie notatki, więc jeśli chcesz zrobić rozwoju iOS, 403 00:25:26,640 --> 00:25:29,630 Gorąco polecam masz Maca. 404 00:25:29,630 --> 00:25:33,930 Ze względu na sposób rozwoju iOS Windows jest bardzo, bardzo trudne. 405 00:25:33,930 --> 00:25:37,560 Jest to wykonalne, ale jest to naprawdę trudne. 406 00:25:37,560 --> 00:25:40,610 I na pewno nie Nie chcesz używać g zmienił. 407 00:25:40,610 --> 00:25:47,950 Więc ów kod mamy kilka różnych obszarów. 408 00:25:47,950 --> 00:25:53,050 Kiedy po raz pierwszy otwarcie s kod pojawi się obszar nawigacji, 409 00:25:53,050 --> 00:25:57,470 które w zasadzie pokazuje wszystko pliki, które jest w bieżącym projekcie. 410 00:25:57,470 --> 00:26:03,590 >> Masz obszar paska narzędzi, które jest w zasadzie zarządzania widoki, 411 00:26:03,590 --> 00:26:08,570 lub jakiś mały szybkie Narzędzia o ów samego kodu. 412 00:26:08,570 --> 00:26:11,140 I to jest rzeczywista powierzchnia redaktorem. 413 00:26:11,140 --> 00:26:15,900 Obszar ten jest bardzo podobny g edycja, ale znacznie lepiej niż g edycji. 414 00:26:15,900 --> 00:26:21,150 I w tym prawym polu, jest zwany obszar gospodarcze. 415 00:26:21,150 --> 00:26:27,170 Powierzchnia staje się bardzo przydatne, gdy podczas tworzenia interfejsu lub określającą 416 00:26:27,170 --> 00:26:30,070 kilka krótkich konfiguracje dla Twojej aplikacji. 417 00:26:30,070 --> 00:26:34,570 >> I ostatnim obszarem jest debugowanie. 418 00:26:34,570 --> 00:26:37,970 Ten obszar zawiera konsolę. 419 00:26:37,970 --> 00:26:43,170 Jeśli więc powiedzieć, printf, lub NSLog w naszym przypadku, 420 00:26:43,170 --> 00:26:47,330 wszystkie wyniki będzie tutaj podane. 421 00:26:47,330 --> 00:26:48,260 Wszystko w porządku? 422 00:26:48,260 --> 00:26:52,090 Myślę, że możemy bardzo szybko zrobić Przykład programowania iOS. 423 00:26:52,090 --> 00:26:54,220 I niech faktycznie otworzyć ów kod. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Więc za każdym razem otwierać s kod, to pokaże się coś takiego. 426 00:27:01,346 --> 00:27:03,220 To się zapytać Co chcesz zrobić? 427 00:27:03,220 --> 00:27:06,830 Czy chcesz rozpocząć coś losowy, plac zabaw dla dzieci, w zasadzie można 428 00:27:06,830 --> 00:27:11,250 może po prostu przetestować kod bez faktycznie, zobowiązując się do każdej aplikacji. 429 00:27:11,250 --> 00:27:13,020 >> Czy chcesz utworzyć nowy projekt? 430 00:27:13,020 --> 00:27:16,660 A może chcesz kontynuować pracy na istniejącym projekcie? 431 00:27:16,660 --> 00:27:20,270 W naszym przypadku mamy zamiar aby utworzyć nowy projekt. 432 00:27:20,270 --> 00:27:22,980 Więc to jest naprawdę ładne, y kod faktycznie ma już 433 00:27:22,980 --> 00:27:26,820 Szablony dać ci kilka do tworzenia obiektów. 434 00:27:26,820 --> 00:27:32,680 Jeśli chcesz zrobić grę, s kod faktycznie ma szablon gry dla Ciebie, 435 00:27:32,680 --> 00:27:36,890 Strona oparta ma zastosowania, aplikacja zakładka. 436 00:27:36,890 --> 00:27:39,280 W tym przypadku, będziemy zrobić coś bardzo prostego, 437 00:27:39,280 --> 00:27:43,230 i będziemy korzystać Jeden wniosek widok. 438 00:27:43,230 --> 00:27:48,270 >> Po, że tylko to, co chcesz zadzwonić produkt, a jak masz na imię, 439 00:27:48,270 --> 00:27:52,760 jaki jest twój identyfikator i jakiego języka używasz. 440 00:27:52,760 --> 00:27:57,060 Tu nie chcesz sprawdzić przy użyciu danych Core. 441 00:27:57,060 --> 00:28:00,170 Rdzeń danych jest w zasadzie databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Jeśli nie Rdzeń danych, s Kod będzie zdefiniowanie 443 00:28:05,360 --> 00:28:07,710 znacznie bardziej skomplikowana zajęcia dla Ciebie. 444 00:28:07,710 --> 00:28:12,740 Tak, aby wszystko proste, jesteśmy po prostu zrobić bez danych Core 445 00:28:12,740 --> 00:28:15,290 teraz. 446 00:28:15,290 --> 00:28:18,030 >> Problem mamy zamiar być przy użyciu jest that-- problemu 447 00:28:18,030 --> 00:28:23,770 jedziemy do tworzenia jest, że my w zasadzie chcesz importować Mario z C 448 00:28:23,770 --> 00:28:25,437 do aplikacji iOS. 449 00:28:25,437 --> 00:28:26,645 Więc nazwijmy, że Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Oczywiście, że można określić, jakie chcesz umieścić w swoim projekcie. 452 00:28:34,880 --> 00:28:37,870 A tam idziemy. 453 00:28:37,870 --> 00:28:41,390 >> Więc to jest trochę Przeważająca, ale w rzeczywistości jest to 454 00:28:41,390 --> 00:28:43,540 co właśnie zobaczyłem na slajdach. 455 00:28:43,540 --> 00:28:49,710 I pierwszy obszar widzimy teraz jest w zasadzie konfiguracja projektu. 456 00:28:49,710 --> 00:28:53,390 Więc wszystko, co chcesz zrobić Projekt, jaki rodzaj urządzenia, 457 00:28:53,390 --> 00:28:58,810 po prostu powiedzieć, co to za urządzenia Czy chcesz, aby aplikacja pojawiać się na? 458 00:28:58,810 --> 00:29:01,280 Czy iPhone, iPad lub uniwersalny? 459 00:29:01,280 --> 00:29:04,660 Więc orientacji urządzenia, wszystkie te rzeczy. 460 00:29:04,660 --> 00:29:08,490 Nie bardzo ważne, ale może być, ale 461 00:29:08,490 --> 00:29:11,050 Jest to miejsce, gdzie można skonfigurować Twój projekt, jeśli rzeczywiście 462 00:29:11,050 --> 00:29:15,180 chcą wdrożyć do sklepu Apple. 463 00:29:15,180 --> 00:29:20,420 >> Dobrze, spójrzmy na coś, co jest w środku naszego kodu. 464 00:29:20,420 --> 00:29:22,360 Przejdźmy przez nawigatora plików. 465 00:29:22,360 --> 00:29:30,140 I to są wszystkie pliki, które już przyszedł z szablonu, bardzo ładne. 466 00:29:30,140 --> 00:29:35,980 Kiedy więc kliknij jedną z nich to jest, jak to wygląda. 467 00:29:35,980 --> 00:29:38,530 Bardzo podobny do g edycji. 468 00:29:38,530 --> 00:29:41,340 Ale widać, że podświetlanie składni jest chyba 469 00:29:41,340 --> 00:29:42,780 trochę ładniejszy. 470 00:29:42,780 --> 00:29:45,610 I to jest w rzeczywistości o wiele bardziej potężniejsze niż edycji g. 471 00:29:45,610 --> 00:29:49,970 I można auto kompletne Wiele rzeczy dla ciebie, 472 00:29:49,970 --> 00:29:52,370 jak zobaczymy bardzo szybko. 473 00:29:52,370 --> 00:29:54,100 >> Otwórzmy obszar debugowania, jak również. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 W porządku, jak widać, Konsola jest tutaj. 476 00:30:07,000 --> 00:30:13,840 To jest to, co masz zamiar zobaczyć, gdzie jesteś w printf lub nsloging coś. 477 00:30:13,840 --> 00:30:17,155 Więc bez zbędnych ceregieli, niech rzeczywiście skompilować aplikację i zobaczyć co się dzieje. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Jedna zasadnicza cecha s kod, jest to, że ów kod 480 00:30:23,410 --> 00:30:25,850 pochodzi z symulatora iPhone. 481 00:30:25,850 --> 00:30:29,820 Więc nie musisz mieć iPhone wypróbować swój projekt, 482 00:30:29,820 --> 00:30:34,440 s Kod może symulować, że dla Ci, jak widzimy teraz. 483 00:30:34,440 --> 00:30:36,406 >> To całkiem miłe. 484 00:30:36,406 --> 00:30:38,640 To zabiera trochę Trochę czasu, aby skompilować 485 00:30:38,640 --> 00:30:43,040 iw zasadzie mamy pusta aplikacji 486 00:30:43,040 --> 00:30:44,640 które w rzeczywistości nie robi nic. 487 00:30:44,640 --> 00:30:46,175 Ale to kompiluje. 488 00:30:46,175 --> 00:30:47,380 To dość niesamowite. 489 00:30:47,380 --> 00:30:50,200 To znacznie lepiej niż C, co? 490 00:30:50,200 --> 00:30:52,130 W porządku, niech spróbuj dodać coś. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Jeden plik, który jest trochę dziwne tutaj nazywa storyboard. 493 00:31:02,650 --> 00:31:08,020 To jest naprawdę wielki, niesamowite cechą ów kod. 494 00:31:08,020 --> 00:31:14,170 Ponieważ w ów kod, można faktycznie przeciągnij i upuść elementy do interfejsu 495 00:31:14,170 --> 00:31:17,430 i to bezpośrednio widoczne. 496 00:31:17,430 --> 00:31:18,055 Spróbujmy tego. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Mamy upuść etykietę tutaj "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Możemy centrum tego. 500 00:31:29,740 --> 00:31:30,970 Całkiem fajne. 501 00:31:30,970 --> 00:31:33,915 Teraz możemy uruchomić ten symulacji zatrzymania. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Tutaj mamy "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Nawet nie zrobić jeszcze żadnego kodowania. 505 00:31:40,810 --> 00:31:42,750 Co do cholery się dzieje? 506 00:31:42,750 --> 00:31:45,880 To jest jak potężny Interfejs Builder może być. 507 00:31:45,880 --> 00:31:48,030 Ktoś nawet powiedział, że można chyba tylko 508 00:31:48,030 --> 00:31:52,800 zakończyć aplikację bez pisemnej prawdopodobnie tysiąc linii kodu 509 00:31:52,800 --> 00:31:54,820 tylko za pomocą Konstruktora interfejsu. 510 00:31:54,820 --> 00:31:59,680 Ale to chyba nie Najlepszym sposobem, aby to zrobić. 511 00:31:59,680 --> 00:32:01,670 >> Teraz rzeczywiście dostać się do kodowania. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Więc w struktury pliku jest rzeczywiście bardzo interesujące 514 00:32:08,330 --> 00:32:15,610 ponieważ, jak widać, nie ma główną funkcją w dowolnym miejscu. 515 00:32:15,610 --> 00:32:17,466 Patrz? 516 00:32:17,466 --> 00:32:19,340 Jak już wspomniano wcześniej, widać, że ta 517 00:32:19,340 --> 00:32:22,830 Wdrożenie jest plik dla konkretnej klasy. 518 00:32:22,830 --> 00:32:25,690 Ale nie ma głównego w dowolnym miejscu. 519 00:32:25,690 --> 00:32:27,490 Więc gdzie jest głównym? 520 00:32:27,490 --> 00:32:31,970 Faktycznie, jest głównym, ale Głównym jest ukryte od Ciebie. 521 00:32:31,970 --> 00:32:34,560 Głównym jest tutaj. 522 00:32:34,560 --> 00:32:37,120 To wygląda znajomo. 523 00:32:37,120 --> 00:32:41,000 >> Więc w zasadzie to, co iOS robi wewnątrz główne 524 00:32:41,000 --> 00:32:43,540 jest to, że gdy jest głównie nazwie, która jest w zasadzie 525 00:32:43,540 --> 00:32:49,000 gdy aplikacja jest wykonywana, to tworzy obiekt o nazwie AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Jak już wspomniałem wcześniej, cała Aplikacja jest w rzeczywistości obiekt sam w sobie. 528 00:32:57,350 --> 00:33:02,270 Tak więc w ten sposób, w zasadzie iOS aplikacja mówi kompilator 529 00:33:02,270 --> 00:33:05,540 że OK, mam zamiar stworzyć Produkt nazywa AppDelegate, 530 00:33:05,540 --> 00:33:07,620 i to będzie moja aplikacja. 531 00:33:07,620 --> 00:33:09,640 Więc trzeba iść przez ten AppDelegate 532 00:33:09,640 --> 00:33:12,040 i zobaczyć, co robi ten facet. 533 00:33:12,040 --> 00:33:14,850 Moja praca jest dla mnie zrobił. 534 00:33:14,850 --> 00:33:22,070 >> A w AppDelegate widać, że istnieją pewne funkcje naprawdę dziwne, 535 00:33:22,070 --> 00:33:25,290 dobrze faktycznie metody, które Apple już wam. 536 00:33:25,290 --> 00:33:27,464 Co to jest? 537 00:33:27,464 --> 00:33:31,010 Są to właściwie tylko protokoły że mówi. 538 00:33:31,010 --> 00:33:35,670 To są zdarzenia, że ​​Apple dał Ci zacząć. 539 00:33:35,670 --> 00:33:38,050 W niektórych nie ma nic funkcji już teraz, 540 00:33:38,050 --> 00:33:40,820 ale jeśli chcemy zainicjować coś dla naszej aplikacji 541 00:33:40,820 --> 00:33:46,140 przed wejściem do wyświetlania Żaden pogląd, możemy to zrobić tutaj. 542 00:33:46,140 --> 00:33:51,150 >> Możesz po prostu przeczytać nazwę i myślę, Impreza jest rzeczywiście bardzo jasne. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Więc teraz głównym stworzył Obiekt dla AppDelegate. 545 00:33:58,350 --> 00:34:05,220 A co AppDelegate zrobi jest faktycznie również ukryta przed tobą. 546 00:34:05,220 --> 00:34:09,250 AppDelegate zamierza rozpocząć loading akcji ViewController. 547 00:34:09,250 --> 00:34:13,170 Więc nie jest to w zasadzie zamiar zacząć załadunku wszystkie widoki, które trzeba 548 00:34:13,170 --> 00:34:17,500 i po prostu sprawiają, że widok na podstawie hierarchii. 549 00:34:17,500 --> 00:34:21,280 >> Więc w tym przypadku mamy tylko jeden widok, który jest tutaj. 550 00:34:21,280 --> 00:34:25,060 Więc to jest tylko widok że będzie się nazywać. 551 00:34:25,060 --> 00:34:28,159 Logika ViewController jest tutaj. 552 00:34:28,159 --> 00:34:32,159 Jest to kod, który w rzeczywistości kontroluje widok po prostu widział. 553 00:34:32,159 --> 00:34:33,679 Dobra, zróbmy coś tutaj. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Więc viewDidLoad brzmi jak imprezy, podczas gdy w rzeczywistości jest to również delegatem, 556 00:34:50,560 --> 00:34:52,500 jest to również protokół. 557 00:34:52,500 --> 00:34:56,350 >> Więc cokolwiek widok jest załadowany, wszystko wewnątrz funkcji 558 00:34:56,350 --> 00:34:57,920 zostanie wywołana. 559 00:34:57,920 --> 00:35:02,840 W tym przypadku powinniśmy zobaczyć "Hello Tianyu! ", Jeśli uruchomić program. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Robi się trochę powolna kompilacji plików storyboardu. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Ale tak naprawdę, to nie patrz na to wyjście. 564 00:35:18,190 --> 00:35:20,720 To jest bardzo fajne. 565 00:35:20,720 --> 00:35:22,000 Teraz faktycznie Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Idę do zdefiniowania działa bardzo szybko. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: wyniki (int) poziomu. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> W porządku, to jest rzeczywiście niesamowite cechą zakończeniu auto s kodu. 572 00:36:06,410 --> 00:36:10,680 Więc kiedy piszesz i wpisz wprowadzić, to już zrezygnowała z szablonu 573 00:36:10,680 --> 00:36:12,325 dla Ciebie, co jest całkiem fajne. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 To powinno wyglądać naprawdę znane was. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Przykro nam, że to moja wina. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Wszystko w porządku, super. 580 00:37:18,120 --> 00:37:22,710 Ta logika powinna wyglądać naprawdę zna do was, zwłaszcza tylko Mario. 581 00:37:22,710 --> 00:37:26,140 >> Ale teraz będziemy drukować do Konsola za każdym razem, 582 00:37:26,140 --> 00:37:29,280 ponieważ chcemy, aby w jakiś sposób utrzymać utwór z tego, co jest drukowane. 583 00:37:29,280 --> 00:37:31,810 Mamy zamiar użyć Wynika jakoś później, 584 00:37:31,810 --> 00:37:35,010 aby wyświetlić drukiem się doprowadzić do użytkownika. 585 00:37:35,010 --> 00:37:37,730 Zamiast więc jesteśmy po prostu nslogging wszystko, 586 00:37:37,730 --> 00:37:42,410 które mamy przechowywania wszystko w wyniku wywołania funkcji, 587 00:37:42,410 --> 00:37:44,070 ale logika jest dokładnie taka sama. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Po tym jak go kończymy po prostu wydrukować nasze wyniki. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> A tu zamiast drukować na moje nazwa, mamy zamiar wywołać funkcję. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Zobaczmy, co się dzieje. 594 00:38:18,090 --> 00:38:21,240 Ups, oczywiście. 595 00:38:21,240 --> 00:38:24,320 Mamy ładne mała piramida tutaj. 596 00:38:24,320 --> 00:38:28,370 Jest to w zasadzie C, jesteśmy po prostu manipulowania gdzie wywołać funkcję 597 00:38:28,370 --> 00:38:30,010 i jak funkcja wyglądać. 598 00:38:30,010 --> 00:38:31,560 Nie ma nic innego. 599 00:38:31,560 --> 00:38:34,040 Ale to jest w rzeczywistości Nie bardzo ekscytujące tutaj 600 00:38:34,040 --> 00:38:37,500 dlatego, że nie widzisz coś z iPhone app. 601 00:38:37,500 --> 00:38:42,120 >> A więc jeśli masz iPhone app-- jeśli rzeczywiście mają prawo Mario iOS 602 00:38:42,120 --> 00:38:45,080 teraz, nie będziesz aby zobaczyć wszystko, co 603 00:38:45,080 --> 00:38:49,450 nie ma nic wspólnego z Mario, ponieważ wszystkie te wyjścia do konsoli 604 00:38:49,450 --> 00:38:51,620 są ukryte przed użytkownikiem. 605 00:38:51,620 --> 00:38:53,850 To, co widzisz, co jest "Hello World !!!" 606 00:38:53,850 --> 00:38:55,720 Nie dobrze. 607 00:38:55,720 --> 00:39:03,090 Teraz spróbujmy zrobić użytkownik widzi co dokładnie mamy do drukowania. 608 00:39:03,090 --> 00:39:06,000 Więc nie musimy do znakowania więcej. 609 00:39:06,000 --> 00:39:09,800 Spróbujmy dowiedzieć się czegoś inne, mogą być użyteczne. 610 00:39:09,800 --> 00:39:12,140 >> Tu jest rzeczywiście jednym Element, który jest nazywany 611 00:39:12,140 --> 00:39:16,460 Pole tekstowe, które mogłyby być bardzo pomocne dla nas. 612 00:39:16,460 --> 00:39:19,880 To w zasadzie pokazuje region tekstu, który może być edytowany. 613 00:39:19,880 --> 00:39:22,320 Tak, że wygląda naprawdę pomocne. 614 00:39:22,320 --> 00:39:23,810 Teraz przeciągnij go i upuść go. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, mamy widok tekstowy naszym zdaniem, bardzo fantazyjne. 617 00:39:32,670 --> 00:39:35,430 To jest trochę za duży. 618 00:39:35,430 --> 00:39:38,150 Niech będzie mniejsza. 619 00:39:38,150 --> 00:39:40,290 Umieścić go w centrum. 620 00:39:40,290 --> 00:39:43,760 Sprawiają, że mniejsze, jak również. 621 00:39:43,760 --> 00:39:50,110 >> Teraz mamy widok tekstowy, który mogliśmy być używany do wyświetlania nasz wynik końcowy. 622 00:39:50,110 --> 00:39:52,860 Ale teraz to na pewno nie będzie działać 623 00:39:52,860 --> 00:39:56,970 bo nie ma no-- ViewController po prostu 624 00:39:56,970 --> 00:40:03,010 zdefiniowane nie wie, że Widok jest tam tekst. 625 00:40:03,010 --> 00:40:06,550 Więc trzeba jakoś odwołuje się widok tekstowy po prostu 626 00:40:06,550 --> 00:40:11,660 stworzony z klasy, że już z nami. 627 00:40:11,660 --> 00:40:14,860 >> Sposób, w jaki to rzeczywiście bardzo magiczne. 628 00:40:14,860 --> 00:40:18,190 Więc otwórz storyboard. 629 00:40:18,190 --> 00:40:22,220 Istnieje specjalny [niesłyszalne] nazywa [? Asystent?] [niesłyszalne]. 630 00:40:22,220 --> 00:40:25,190 Po kliknięciu, że jest to zamierza otworzyć dwa pliki. 631 00:40:25,190 --> 00:40:29,425 Jednym z nich jest klasy i druga Widok jest odpowiedni dla niego. 632 00:40:29,425 --> 00:40:31,920 To bardzo, bardzo pomocne. 633 00:40:31,920 --> 00:40:35,950 I niech po prostu przechodzi pliku .h. 634 00:40:35,950 --> 00:40:39,110 Kontrola ta jest [niesłyszalne] logika. 635 00:40:39,110 --> 00:40:47,280 Kontrola Naciśnij i przeciągnij Widok tekstu do deklaracji. 636 00:40:47,280 --> 00:40:48,780 Mamy zamiar zadzwonić że outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Podłącz. 639 00:40:53,670 --> 00:40:59,420 Więc tutaj mamy oświadczył nowy nieruchomości na naszej klasie ViewController. 640 00:40:59,420 --> 00:41:02,300 Oraz nowy obiekt Widok jest po prostu tekst 641 00:41:02,300 --> 00:41:05,000 stworzyliśmy w budynku interfejsu. 642 00:41:05,000 --> 00:41:07,990 Więc w ten sposób mogliśmy Dostęp do wszystkich danych 643 00:41:07,990 --> 00:41:13,630 i manipulować wszystko, co jest w środku Widok wyjście, które jest niesamowite. 644 00:41:13,630 --> 00:41:19,260 >> Tak więc w naszym rzeczywistym kodzie zróbmy coś z tym. 645 00:41:19,260 --> 00:41:23,810 Więc tym razem, gdy jesteśmy jak druku na ostateczny wynik dla Mario, 646 00:41:23,810 --> 00:41:28,020 jesteśmy w nie zalogowaniu niczego. 647 00:41:28,020 --> 00:41:30,080 To znaczy możemy utrzymać Oświadczenie logowania. 648 00:41:30,080 --> 00:41:41,490 Oprócz tego, że wysłać odczyt po prostu 649 00:41:41,490 --> 00:41:47,622 utworzony z myślą wyjścia, które jest UI TextView właśnie utworzyliśmy. 650 00:41:47,622 --> 00:41:48,746 Teraz zobaczmy, co się stanie. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Wow. 653 00:41:56,620 --> 00:41:59,130 Mamy piramidy w aplikacji już teraz. 654 00:41:59,130 --> 00:42:06,720 >> Tak więc użytkownik może zobaczyć nasze wyjście ponieaz skopiowaliśmy wyjście z naszego kodu 655 00:42:06,720 --> 00:42:08,045 do naszego interfejsu. 656 00:42:08,045 --> 00:42:10,950 To całkiem dobry. 657 00:42:10,950 --> 00:42:14,990 To nie jest w rzeczywistości, że ekscytujące, ponieważ can-- 658 00:42:14,990 --> 00:42:18,250 Wszystko jest ok robi przedstawiający piramidę do Ciebie, 659 00:42:18,250 --> 00:42:20,520 i nic nie można zrobić. 660 00:42:20,520 --> 00:42:22,330 To nie jest szczególnie ekscytujące. 661 00:42:22,330 --> 00:42:27,840 Więc teraz zróbmy przycisk że będzie jasne poglądy. 662 00:42:27,840 --> 00:42:30,290 Wydaje się, że przycisk będzie pomocne. 663 00:42:30,290 --> 00:42:33,270 Przeciągnij i upuść. 664 00:42:33,270 --> 00:42:33,900 Jeden przycisk. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Przycisk dwa. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Kiedy więc kliknij lewy Przycisk, widok należy wyczyścić. 669 00:42:52,052 --> 00:42:53,635 Nie powinno być nic na ekranie. 670 00:42:53,635 --> 00:42:56,970 A kiedy kliknij prawy przycisk, Mario, 671 00:42:56,970 --> 00:42:59,740 Widok będzie ponownie pojawić. 672 00:42:59,740 --> 00:43:05,510 Więc w ten sposób możemy również zrobić magiczne rzeczy, kontroli i przeciągnij 673 00:43:05,510 --> 00:43:08,740 do deklaracji klasy w asystenta director-- 674 00:43:08,740 --> 00:43:11,600 w asystenta widza. 675 00:43:11,600 --> 00:43:18,620 W tym przypadku mamy do określenia że powinny być działania. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> Więc tutaj mamy już utworzony Akcja nazywa clearMario, 679 00:43:26,830 --> 00:43:34,210 która jest metodą, która będzie nazywana gdy naciśniemy przycisk jasne. 680 00:43:34,210 --> 00:43:41,030 Tak więc w naszym faktycznie kodu, po prostu umieścić tekst wyjściowy i widok wyjściowy 681 00:43:41,030 --> 00:43:44,620 w nicość, a w ten sposób to wydaje się być oczywiste. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Poza tym, stwórzmy inna metoda nazywa runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oj, przepraszam, że nie powinno być w mieście. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Dobrze, że powinno za działania, jak również. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> A kiedy ta funkcja jest nazywa, po prostu uruchomić Mario dziesięć. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Miejmy nadzieję, że będzie dobrze. 692 00:44:39,780 --> 00:44:41,120 Czy to skompilować? 693 00:44:41,120 --> 00:44:43,920 Tak. 694 00:44:43,920 --> 00:44:45,090 Teraz mamy widok. 695 00:44:45,090 --> 00:44:46,560 Mamy wyjście. 696 00:44:46,560 --> 00:44:50,040 I niech po prostu zobaczyć, co się dzieje. 697 00:44:50,040 --> 00:44:52,590 To nie ma. 698 00:44:52,590 --> 00:44:54,500 To znowu. 699 00:44:54,500 --> 00:44:57,620 Więc tutaj mamy określone jaką funkcję 700 00:44:57,620 --> 00:45:00,400 zostanie wywołana gdy my na coś, 701 00:45:00,400 --> 00:45:03,160 kiedy nacisnąć konkretny przycisk. 702 00:45:03,160 --> 00:45:07,890 To jest przede Schemat działania docelowe 703 00:45:07,890 --> 00:45:12,510 w przypadku napędzane programowania w Objective C 704 00:45:12,510 --> 00:45:15,030 >> Oprócz tego, to nie jest bardzo ekscytujące 705 00:45:15,030 --> 00:45:19,810 bo tak naprawdę nie możemy zmienić jak wysokie piramidy będzie, 706 00:45:19,810 --> 00:45:23,640 więc prawdopodobnie chcesz w jakiś sposób uzyskać danych od użytkownika 707 00:45:23,640 --> 00:45:29,490 i zmienić wysokość Piramida w oparciu o to, co wyjście. 708 00:45:29,490 --> 00:45:32,900 Tak więc mamy zamiar zrobić. 709 00:45:32,900 --> 00:45:38,720 Więc tym razem, kiedy nazywamy runMario, nie wystarczy zadzwonić Mario bezpośrednio. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Ta jest tytuł. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegat. 714 00:46:23,700 --> 00:46:25,160 To jest bardzo ciekawe. 715 00:46:25,160 --> 00:46:26,720 Co to jest delegatem? 716 00:46:26,720 --> 00:46:28,950 Mam zamiar umieścić ja tutaj. 717 00:46:28,950 --> 00:46:31,038 I mamy zamiar zobaczyć co oznacza, że ​​później. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Więc tutaj mamy już utworzony szczególnym przykładem nazywa wpisu UI 720 00:46:51,120 --> 00:46:52,210 Widok. 721 00:46:52,210 --> 00:46:54,440 Alarm UI jest widok w zasadzie to, co będzie 722 00:46:54,440 --> 00:46:58,940 zobacz każdym razem coś wyskakuje się i prosi o wejście, 723 00:46:58,940 --> 00:47:03,080 jak co się stanie, gdy starasz kupić coś na app store. 724 00:47:03,080 --> 00:47:14,250 >> Poza tym, to po utwórz go, po prostu pokazać wpisu. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 W porządku, niech tak szybko Test będzie, że praca, czy nie. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 To jest bardzo fajne. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Teraz rzeczywiście stworzyć Pole wprowadzania do wpisu UI. 731 00:47:59,120 --> 00:48:01,170 Oto jak to zrobić. 732 00:48:01,170 --> 00:48:07,490 A my musimy mieć Widok wejścia do wpisu. 733 00:48:07,490 --> 00:48:09,020 Bardzo fajne. 734 00:48:09,020 --> 00:48:12,330 Powiedzmy, że 10. 735 00:48:12,330 --> 00:48:14,900 >> To nie robi nic w prawo teraz, bo rozmowa rzeczywiście 736 00:48:14,900 --> 00:48:17,770 nie uległ zmianie do wykonywania mario. 737 00:48:17,770 --> 00:48:23,470 Tak stało się mało trochę dziwne, bo kiedy 738 00:48:23,470 --> 00:48:30,790 naciskamy przycisk w dół, gdy my Naciśnięcie przycisku w widoku alarmu, 739 00:48:30,790 --> 00:48:35,560 coś się stanie, ale to się nie stanie. 740 00:48:35,560 --> 00:48:37,220 Jak możemy zobaczyć, że? 741 00:48:37,220 --> 00:48:41,280 Skąd mamy wiedzieć, że użytkownik oddalił powiadomienie widok 742 00:48:41,280 --> 00:48:45,630 a już wprowadzony numer, ponieważ teraz nic się nie dzieje naprawdę. 743 00:48:45,630 --> 00:48:50,450 >> Cóż, można się domyślić to dobrze, delegacja. 744 00:48:50,450 --> 00:48:55,440 Tak więc oprócz wszystkich te deklaracje, 745 00:48:55,440 --> 00:49:03,190 musimy dodać nową delegacji do Alarm nazywana UI widok delegata. 746 00:49:03,190 --> 00:49:06,440 Tak, że każdy Interakcja lub zdarzenie 747 00:49:06,440 --> 00:49:10,190 że będziemy mieć z widokiem ostrzegania UI 748 00:49:10,190 --> 00:49:14,100 ma być obsługiwane od naszej klasy, jak również. 749 00:49:14,100 --> 00:49:26,297 >> Tak więc, oprócz tego, będą Widok kliknij przycisk wpisu w indeksie. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Ta została osiągnięta. 752 00:49:37,730 --> 00:49:42,020 Więc w tym przypadku mamy already-- więc mamy 753 00:49:42,020 --> 00:49:46,210 okazało się protokół, który będzie obsługiwać zdarzenie, kiedy 754 00:49:46,210 --> 00:49:51,320 klikamy przycisk Gotowe na ostrzegania widzenia. 755 00:49:51,320 --> 00:49:55,976 Więc za każdym razem, kiedy zwolnić Alarm widok, tak się stanie. 756 00:49:55,976 --> 00:49:57,350 Pozwól mi tylko przetestować go bardzo szybko. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 No rzeczywiście, dotarliśmy tutaj. 759 00:50:19,300 --> 00:50:22,210 >> Więc, co nie będzie rzeczywiście się jest w rzeczywistości 760 00:50:22,210 --> 00:50:43,120 uzyskać the-- Dlatego chcemy, aby wyjść Tekst, który mamy wcześniej 761 00:50:43,120 --> 00:50:45,350 wpisana do ostrzegania widzenia. 762 00:50:45,350 --> 00:50:48,505 I opiera się na tekście, jesteśmy będzie wyświetlać Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 To bardzo szybko okazuje się, jeśli to rzeczywiście działa, czy nie. 765 00:50:55,480 --> 00:50:59,476 A więc w tym przypadku, jeśli wprowadzanie, powiedzmy, 10, powinniśmy zobaczyć 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Bardzo dobrze, mamy wiele tutaj. 768 00:51:05,210 --> 00:51:06,470 To całkiem dobry. 769 00:51:06,470 --> 00:51:16,840 Teraz ostatni krok będzie być: Tak Ostatnim krokiem musimy teraz zrobić 770 00:51:16,840 --> 00:51:21,100 jest po prostu zadzwonić Mario z Poziom oparty na wejściu 771 00:51:21,100 --> 00:51:23,270 że przygotowaliśmy się ostrzegania widzenia. 772 00:51:23,270 --> 00:51:26,920 Tak więc trzeba konwertować ten ciąg na iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Statyczny przepełnienia jest bardzo niesamowite. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 A potem po prostu zadzwonić do siebie Wartość marioWithLevels. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Zobaczmy, że będzie faktycznie pracują, czy nie. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Jesteśmy już podane piramidę. 781 00:52:01,550 --> 00:52:04,785 Spróbujmy zmienić wysokość. 782 00:52:04,785 --> 00:52:06,530 To naprawdę działa. 783 00:52:06,530 --> 00:52:07,610 To jest bardzo fajne. 784 00:52:07,610 --> 00:52:10,420 Tak, że teraz można po prostu Wejście dowolna wartość chcesz. 785 00:52:10,420 --> 00:52:12,440 Powiedzmy, że cztery. 786 00:52:12,440 --> 00:52:14,260 To dość niesamowite. 787 00:52:14,260 --> 00:52:17,090 Tak to jest w zasadzie Przykładem bardzo szybkie 788 00:52:17,090 --> 00:52:23,170 w jaki sposób utworzyć projekt w ów kod i jak bardzo szybko drut 789 00:52:23,170 --> 00:52:26,220 kilka naprawdę proste zdarzenia i funkcje. 790 00:52:26,220 --> 00:52:28,840 >> Więc źródłem będzie należy umieścić w Internecie później. 791 00:52:28,840 --> 00:52:33,400 Więc jeśli jesteś zainteresowany w jaki sposób działa system iOS Mario, 792 00:52:33,400 --> 00:52:38,360 Mam zamiar umieścić dokładnie takie same Projekty na stronie CS50 później. 793 00:52:38,360 --> 00:52:41,260 Jesteśmy w zasadzie zrobić z lato, zanim zakończymy 794 00:52:41,260 --> 00:52:45,190 Chcę tylko wskazać wam się kilka naprawdę niesamowite zasoby, które 795 00:52:45,190 --> 00:52:47,550 są dostępne w Internecie. 796 00:52:47,550 --> 00:52:52,270 >> Oczywiście dokumentacji firmy Apple będzie bardzo pomocne. 797 00:52:52,270 --> 00:52:57,630 A ponadto tym, że w szczególności Polecam cztery źródła, kod szkolnych, 798 00:52:57,630 --> 00:53:02,120 domek na drzewie, AppCoda i WWDC filmy. 799 00:53:02,120 --> 00:53:07,270 Szkoła oznaczeniu i domek na drzewie są wychowującą dwie internetowych, strony internetowe 800 00:53:07,270 --> 00:53:10,210 która wyraźnie koncentrują od inżynierii oprogramowania. 801 00:53:10,210 --> 00:53:16,930 Specjalnie dla kodu szkoły, mają naprawdę dobry tutorial na iOS. 802 00:53:16,930 --> 00:53:19,550 >> To jest naprawdę szybkie przykładem na to. 803 00:53:19,550 --> 00:53:22,980 Oni rzeczywiście stworzyć naprawdę cute-- spójrz na to niewiele cute iPhone 804 00:53:22,980 --> 00:53:24,920 koleś tam, jest to dość niesamowite. 805 00:53:24,920 --> 00:53:31,010 I sposób wyjaśniają Cel Składnia C jest zupełnie jasne. 806 00:53:31,010 --> 00:53:32,230 Drzewa domu jest taka sama. 807 00:53:32,230 --> 00:53:34,660 I AppCoda jest forum. 808 00:53:34,660 --> 00:53:38,130 To rzeczywiście blog, który został uruchomiony przez bardzo doświadczonego Objective C 809 00:53:38,130 --> 00:53:39,120 programista. 810 00:53:39,120 --> 00:53:43,950 I te wszystkie tutoriale w AppCoda są bardzo krótkie i łatwe do wdrożenia, 811 00:53:43,950 --> 00:53:45,390 gorąco polecam. 812 00:53:45,390 --> 00:53:47,700 >> A jeśli jesteś programistą, na pewno go sprawdzić 813 00:53:47,700 --> 00:53:55,660 jak filmy WWDC, gdzie można dowiedzieć się o najnowszych programowania iOS 814 00:53:55,660 --> 00:53:58,250 techniki, API i bibliotek. 815 00:53:58,250 --> 00:54:02,850 Tak, że jest dość dużo jest na seminarium. 816 00:54:02,850 --> 00:54:03,820 Dziękuję bardzo. 817 00:54:03,820 --> 00:54:08,040 I mam nadzieję, że się dobrze bawić tworzenie własnych aplikacji dla systemu iOS. 818 00:54:08,040 --> 00:54:09,302