1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU LIU: Hey, wie geht es wird alle? 3 00:00:13,590 --> 00:00:20,250 Und das ist die iOS App Programmierung Ziel c Seminar. 4 00:00:20,250 --> 00:00:21,520 Und mein Name ist Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Ich bin ein Lowell junior gerade jetzt, Konzentration in der Informatik. 6 00:00:26,114 --> 00:00:28,030 Also in diesem Seminar bin ich werde euch lehren 7 00:00:28,030 --> 00:00:30,770 ein wenig darüber, wie Sie eine Anwendung zu machen. 8 00:00:30,770 --> 00:00:33,030 Yay, bekommen dafür aufgeregt. 9 00:00:33,030 --> 00:00:36,790 >> Also, bevor wir überhaupt anfangen Tauch in die eigentliche Programmierseite, 10 00:00:36,790 --> 00:00:41,840 lassen Sie uns einfach sehr schnell sprechen Warum möchten Sie vielleicht eine iOS App zu bauen? 11 00:00:41,840 --> 00:00:43,940 Warum ist iOS so genial? 12 00:00:43,940 --> 00:00:47,250 Also das erste Problem, die erste Sache, die ziemlich genial für uns, 13 00:00:47,250 --> 00:00:51,190 vor allem als CS50 Student, ist, dass iOS 14 00:00:51,190 --> 00:00:55,860 verwendet Objective C. Nun, es gibt eine neue Sprache namens Swift, 15 00:00:55,860 --> 00:00:58,260 aber wir sind nicht zu gehen verwenden, die in diesem Seminar. 16 00:00:58,260 --> 00:01:01,540 Wenn Sie interessiert sind in Swift gibt ist ein unabhängiges Seminar darüber. 17 00:01:01,540 --> 00:01:05,590 Aber Objective C ist im Grunde eine Obermenge von C. Bedeutung 18 00:01:05,590 --> 00:01:10,230 dass alles, was Sie in C verwenden können in Objective C übersetzt werden 19 00:01:10,230 --> 00:01:11,630 sehr leicht. 20 00:01:11,630 --> 00:01:15,730 >> Wie Sie später, dass in der Tat sehen können es gibt einige sehr einfache Syntax, sind 21 00:01:15,730 --> 00:01:19,790 im Grunde genau das gleiche, C und Objective C. So, 22 00:01:19,790 --> 00:01:22,860 da Sie CS50 genommen haben up so weit, die Sie bereits 23 00:01:22,860 --> 00:01:26,500 weiß Objective C, von mindestens 40%. 24 00:01:26,500 --> 00:01:30,720 Außerdem hat Apple eine wirklich robuste API für iOS. 25 00:01:30,720 --> 00:01:33,750 Es gibt eine Menge wirklich verrückt Dinge, die Sie tun können. 26 00:01:33,750 --> 00:01:36,760 Eines davon ist jemand tatsächlich eine iOS App erstellt 27 00:01:36,760 --> 00:01:40,600 zur Steuerung von Fahrzeugen, die ist ziemlich interessant. 28 00:01:40,600 --> 00:01:42,610 Wahrscheinlich ein Hubschrauber ist spannender. 29 00:01:42,610 --> 00:01:47,020 Aber das ist, wie leistungsfähig die iOS-API kann. 30 00:01:47,020 --> 00:01:49,340 >> Und wie haben Sie vielleicht heraus im Augenblick dachte, 31 00:01:49,340 --> 00:01:53,000 der Stack-Überlauf ist wahrscheinlich eine der die wichtigsten Online-Ressourcen 32 00:01:53,000 --> 00:01:54,250 zur Verfügung. 33 00:01:54,250 --> 00:01:58,090 Und eine gute Nachricht, für jeden einziges Problem können Sie möglicherweise 34 00:01:58,090 --> 00:02:01,840 denken Sie an und bauen Sie Ihr Abschlussprojekt in Objective C, 35 00:02:01,840 --> 00:02:05,910 gibt es wahrscheinlich ein Stapelüberlauf Antwort. 36 00:02:05,910 --> 00:02:07,420 Es ist einfach genial. 37 00:02:07,420 --> 00:02:12,780 Hinzu kommt, dass, iOS ist wirklich eine Plattform 38 00:02:12,780 --> 00:02:16,260 wo es eine massive erreichen Publikum mit wenig Aufwand. 39 00:02:16,260 --> 00:02:20,170 Es ist nicht wie Android, wo alles ist ziemlich fragmentiert. 40 00:02:20,170 --> 00:02:22,540 >> Alles iOS ist vereinheitlicht. 41 00:02:22,540 --> 00:02:25,920 Und solange Sie erstellen eine App für das iPhone, 42 00:02:25,920 --> 00:02:31,260 Sie können sehr einfach Hafen dass auf iPad, iPad mini oder verschiedenen iPhone Größen. 43 00:02:31,260 --> 00:02:33,050 Dies alles sind wirklich praktisch. 44 00:02:33,050 --> 00:02:36,430 Und es ist einfach richtig gut zum Einprägen Ihre Freunde. 45 00:02:36,430 --> 00:02:38,920 Sie können nur ein iPhone halten und erklären Sie Ihrem Freund hey, 46 00:02:38,920 --> 00:02:40,250 das ist die App die ich mache. 47 00:02:40,250 --> 00:02:43,860 Sie können, dass für jeden zu tun Desktop-Anwendungen, das ist schön. 48 00:02:43,860 --> 00:02:48,870 >> So, jetzt wollen wir tatsächlich bekommen in die Sprache Objective C. 49 00:02:48,870 --> 00:02:52,910 Also, warum nicht wir beginnen einige wirklich grundlegende Syntax. 50 00:02:52,910 --> 00:02:57,410 Wie ich bereits erwähnte Ziel C Es ist im Grunde eine Obermenge von C 51 00:02:57,410 --> 00:03:01,860 So viele grundlegende Syntax sind eigentlich genau das gleiche. 52 00:03:01,860 --> 00:03:06,150 Deklaration einer Variablen und Hinzufügen von zwei Variablen zusammen 53 00:03:06,150 --> 00:03:09,440 Genau wie wir es in Mario getan. 54 00:03:09,440 --> 00:03:11,140 Nichts Neues hier. 55 00:03:11,140 --> 00:03:17,370 >> Auch die Untermieter für Schleife und Zustand ist auch die gleiche. 56 00:03:17,370 --> 00:03:22,370 Sie können eine for-Schleife genau wie Sie in einem Mario [unverständlich] haben können. 57 00:03:22,370 --> 00:03:26,280 Und Sie Bedingungen tun können wie, was Sie 58 00:03:26,280 --> 00:03:29,240 haben in Ihrem bisherigen p Sätze getan haben. 59 00:03:29,240 --> 00:03:33,400 Allerdings Objective C nicht vollständig C, 60 00:03:33,400 --> 00:03:36,640 und es ist etwas, ist irgendwie komisch darüber. 61 00:03:36,640 --> 00:03:42,340 >> Die erste ist, dass, wenn Sie sind C-Programmierung zu tun, Sie in der Regel rufen 62 00:03:42,340 --> 00:03:46,310 schließen und dann einen Bibliotheksnamen. 63 00:03:46,310 --> 00:03:49,860 Aber in Objective C anruft diese Chemikalie eingeführt. 64 00:03:49,860 --> 00:03:53,100 Im Grunde sagen, Funktionalität, nur unterschiedliche Namen. 65 00:03:53,100 --> 00:03:55,940 Und die Saiten tatsächlich ein wenig seltsam. 66 00:03:55,940 --> 00:03:58,250 Sie können, dass die erste zu sehen was irgendwie seltsam ist 67 00:03:58,250 --> 00:04:04,190 ist, dass Sie eine ziemlich weird-- haben sorry-- Sie ein ziemlich komisch NS haben 68 00:04:04,190 --> 00:04:04,960 melden Sie hier. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 Und die zweite Sache, das ist irgendwie seltsam 71 00:04:09,160 --> 00:04:14,090 wird Sie ein at-Zeichen vor tatsächlich erklärt die Zeichenfolge. 72 00:04:14,090 --> 00:04:19,209 Also das At-Zeichen im Grunde bedeutet, daß eine Zeichenfolge nicht nur eine Zeichenfolge, 73 00:04:19,209 --> 00:04:20,880 es ist tatsächlich ein Objekt. 74 00:04:20,880 --> 00:04:22,780 Wir werden erklären, später so nicht 75 00:04:22,780 --> 00:04:25,800 Panik, wenn Sie nicht zu tun zu verstehen, was das bedeutet. 76 00:04:25,800 --> 00:04:29,980 Und Druck auf Konsole ist ein bisschen anders, weil in C nennen wir printf, 77 00:04:29,980 --> 00:04:33,350 aber in Objective C nennen wir [unverständlich]. 78 00:04:33,350 --> 00:04:35,640 >> Sie fragen sich vielleicht, was das ist. 79 00:04:35,640 --> 00:04:38,070 Das ist im Grunde printf, nur eine andere Sprache. 80 00:04:38,070 --> 00:04:41,370 Genau die gleiche Nutzung, genau die gleiche Funktionalität. 81 00:04:41,370 --> 00:04:44,060 Nun stellt sich heraus, dass Objective C tatsächlich 82 00:04:44,060 --> 00:04:50,040 hat ein ns voran in fast alles, jeden Grunddatentyp, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 Der Grund dafür ist, dass ns tatsächlich steht für Next Step, 85 00:04:56,340 --> 00:04:59,980 die ein Unternehmen ist, dass Steve Jobs hat gegründet, 86 00:04:59,980 --> 00:05:03,960 die ein Unternehmen ist, wo die Sprache Objective C ist geboren. 87 00:05:03,960 --> 00:05:06,140 Das ist also im Grunde Tradition. 88 00:05:06,140 --> 00:05:09,010 Ich weiß, es ist ein bisschen seltsam, aber es ist von Apple. 89 00:05:09,010 --> 00:05:16,840 >> So etwas, was noch seltsamer ist als eine Funktion Erklärung. 90 00:05:16,840 --> 00:05:22,600 Das ist ganz anders als das, was wir finden Sie in C, denn hier ist es tatsächlich 91 00:05:22,600 --> 00:05:25,190 nicht wie C mehr. 92 00:05:25,190 --> 00:05:28,810 Was Sie hier-- durch das haben so ist dies kein Aufzählungspunkt, 93 00:05:28,810 --> 00:05:30,690 das ist ein Minus-Zeichen. 94 00:05:30,690 --> 00:05:36,440 Sie haben ein Minuszeichen Klammern Leere und dann der Name der Funktion. 95 00:05:36,440 --> 00:05:38,450 Sagen wir einfach, wenn wir Hallo Welt haben, dann 96 00:05:38,450 --> 00:05:42,820 der Rückgabetyp wäre nichtig weil wir nichts zurück. 97 00:05:42,820 --> 00:05:44,680 >> Was bekommt wirklich seltsam ist, dass wenn man 98 00:05:44,680 --> 00:05:49,580 mit mehr als einem Parameter vorbei in eine gleiche Funktion, 99 00:05:49,580 --> 00:05:53,870 wird wirklich seltsam wie hier gezeigt. 100 00:05:53,870 --> 00:05:58,230 Wir haben eine Methode Namen, genannt addInt zu [unverständlich] 101 00:05:58,230 --> 00:06:00,370 und wir sind vorbei einen Parameter. 102 00:06:00,370 --> 00:06:05,170 Aber danach haben wir mehr Methodennamen Anruf mit. 103 00:06:05,170 --> 00:06:08,500 Und nach mit wir vorbei der zweite Parameter. 104 00:06:08,500 --> 00:06:11,940 Dies ist eigentlich ein wenig seltsam, aber alle diese Funktionsdeklarationen 105 00:06:11,940 --> 00:06:14,770 nach dem gleichen Muster wie dieses. 106 00:06:14,770 --> 00:06:17,450 >> Wir haben ein Minuszeichen zu beginnen. 107 00:06:17,450 --> 00:06:21,550 Das Minuszeichen kann ein Pluszeichen sein manchmal, welche Art von Methode 108 00:06:21,550 --> 00:06:22,340 ist es. 109 00:06:22,340 --> 00:06:25,000 Verfahren ist grundsätzlich ein anderer Name für Funktion. 110 00:06:25,000 --> 00:06:26,760 Und wir sind zu gehen erklären, dass später, wenn 111 00:06:26,760 --> 00:06:30,580 wir über Objekt sprechen orientierten Programmierung. 112 00:06:30,580 --> 00:06:34,300 Sie zuerst die Rückkehr angeben Geben Sie in Klammern, 113 00:06:34,300 --> 00:06:37,450 danach kommt der Name der Methode. 114 00:06:37,450 --> 00:06:40,310 Sie geben gerade vorbei einen Parameter. 115 00:06:40,310 --> 00:06:44,750 Und wenn Sie mehr Parameter haben Sie den Namen der Methode erweitern müssen 116 00:06:44,750 --> 00:06:46,770 und im Grunde etwas schreiben Sie hier mehr. 117 00:06:46,770 --> 00:06:48,090 >> Es könnte alles, was Sie wollen. 118 00:06:48,090 --> 00:06:50,140 In unserem Fall ist es mit. 119 00:06:50,140 --> 00:06:56,160 Aber man könnte sagen Ende, oder oder oder abc voll ausgestattete Bar, was Sie wollen. 120 00:06:56,160 --> 00:06:59,500 Und dann nach, dass Sie Weitergabe-Parameter b. 121 00:06:59,500 --> 00:07:01,750 Dies ist ein wirklich seltsam Konvention, aber wir sind 122 00:07:01,750 --> 00:07:05,800 gehen, um zu sehen, warum Apple wollte zu, dass sehr schnell zu tun. 123 00:07:05,800 --> 00:07:10,530 So wie Sie Funktion aufrufen? 124 00:07:10,530 --> 00:07:15,520 Aufrufen einer Funktion in den Ziel- C ist auch verschieden von C. 125 00:07:15,520 --> 00:07:18,170 >> Eigentlich ruft ein Funktion in Objective C 126 00:07:18,170 --> 00:07:21,030 ist mehr wie Sie mit jemandem sprechen. 127 00:07:21,030 --> 00:07:27,030 Hier haben wir selbst, die wird ein Objekt bezeichnet. 128 00:07:27,030 --> 00:07:33,830 Sie sind im Grunde sagen die Objekt selbst zu sagen: "Hallo Welt!" 129 00:07:33,830 --> 00:07:36,830 Das ist, wie man die Funktion aufrufen. 130 00:07:36,830 --> 00:07:41,690 Eine Aufgabe und ein Verfahren Namen miteinander kombiniert. 131 00:07:41,690 --> 00:07:49,600 Und das ist, wo die seltsame Erweiterung für Methodennamen wirklich ins Spiel kommt. 132 00:07:49,600 --> 00:07:52,150 >> Schauen wir uns das zweite Beispiel. 133 00:07:52,150 --> 00:07:56,780 Wir haben gerade eine Methode namens definiert addInt mit blah blah blah. 134 00:07:56,780 --> 00:08:00,066 Also in diesem Fall, wenn Sie anrufen dass spezifische [? Nachricht?] es geht 135 00:08:00,066 --> 00:08:02,035 wie selbst addInt aussehen: 10 mit: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Es klingt wie Englisch. 138 00:08:08,070 --> 00:08:11,980 Obwohl die Funktion Funktionsdeklaration ist seltsam, 139 00:08:11,980 --> 00:08:15,600 der Punkt der Objective C ist Methodendeklaration Muster, 140 00:08:15,600 --> 00:08:18,830 ist, dass, wenn Sie anrufen die Funktion oder Verfahren 141 00:08:18,830 --> 00:08:21,980 es wird wie tatsächliche Englisch klingt. 142 00:08:21,980 --> 00:08:25,270 So ist es sehr intuitiv sobald man sich in sie. 143 00:08:25,270 --> 00:08:28,740 >> Besonders in diesem Fall, wo man im Grunde 144 00:08:28,740 --> 00:08:33,010 sehen, dass der Name der Funktion ist Art der Dokumentation selbst. 145 00:08:33,010 --> 00:08:35,390 Sie müssen nicht jede Weitere Erläuterungen zu sehen 146 00:08:35,390 --> 00:08:42,770 was genau passiert ist, was genau einen Parameter zu tun. 147 00:08:42,770 --> 00:08:48,470 Möchten Sie darüber hinaus, reden wir ein wenig etwas über objektorientierte Programmierung. 148 00:08:48,470 --> 00:08:52,160 Objektorientierte Programmierung ist eine der grundlegenden Programmierung 149 00:08:52,160 --> 00:08:57,110 Verfahren oder Muster, die ist Ziel C Objective C verwendet 150 00:08:57,110 --> 00:09:03,110 heißt Objective C, nicht C, für einen wirklich guten Grund. 151 00:09:03,110 --> 00:09:07,560 >> Also, bevor wir in zu erhalten Objective-C-Syntax, 152 00:09:07,560 --> 00:09:11,670 Lassen Sie uns ganz schnell betrachten Was genau ist ein Objekt. 153 00:09:11,670 --> 00:09:15,480 Wir haben wohl etwas getan wie Objekt vor, das 154 00:09:15,480 --> 00:09:19,780 nennt man die Struktur, wenn Sie Umsetzung eines Baumes oder eine verkettete Liste 155 00:09:19,780 --> 00:09:25,730 oder [? versuchen. ?] Also, es ist im Grunde wie eine Struktur, 156 00:09:25,730 --> 00:09:28,560 aber es ist viel mächtiger als das. 157 00:09:28,560 --> 00:09:33,150 Ein Objekt hat Methoden und Eigenschaften. 158 00:09:33,150 --> 00:09:35,310 Methoden sind im Grunde Funktionen. 159 00:09:35,310 --> 00:09:39,480 Funktioniert im Grunde, dass ein spezifisch für eine bestimmte Aufgabe. 160 00:09:39,480 --> 00:09:45,440 >> Und Eigenschaften sind im Wesentlichen die Feld, das Sie in der Struktur angeben. 161 00:09:45,440 --> 00:09:48,500 Also für jedes einzelne Objekt wir haben einige Immobilien 162 00:09:48,500 --> 00:09:53,160 dass einige Variablen, beziehen sich auf das Objekt. 163 00:09:53,160 --> 00:09:57,170 Und wir haben einige Funktionen, die sind spezifisch für das Objekt. 164 00:09:57,170 --> 00:10:01,180 Und die Funktionen sind Methoden aufgerufen und die Variablen werden Eigenschaften genannt. 165 00:10:01,180 --> 00:10:03,190 Es ist nur ein schicker Name. 166 00:10:03,190 --> 00:10:10,440 Während Sie tatsächlich jede einzelne Ansicht Sie sehen, während Sie eine iOS-App zu öffnen, 167 00:10:10,440 --> 00:10:17,720 sagen wir einfach, Twitter oder Facebook, jede einzelne Ansicht Sie sehen, ist ein Objekt. 168 00:10:17,720 --> 00:10:22,110 Und auch das ganze Programm ist ein Objekt, mit zu beginnen. 169 00:10:22,110 --> 00:10:25,340 Sehr interessantes Konzept. 170 00:10:25,340 --> 00:10:28,480 >> Und warum wollen wir Objekt orientierte Programmierung? 171 00:10:28,480 --> 00:10:33,530 So können Sie sich vorstellen, dass, wenn Sie Programm es ziemlich kompliziert. 172 00:10:33,530 --> 00:10:36,400 Sagen wir einfach, wenn man Umsetzung Schachbrett, 173 00:10:36,400 --> 00:10:40,020 die Logik zu gehen wirklich kompliziert sein. 174 00:10:40,020 --> 00:10:43,280 Sie haben 36 verschiedene Stücke, so, dass wenn man 175 00:10:43,280 --> 00:10:48,370 wollen Logik für alle Schreib 36 verschiedene Stücke in Schach, 176 00:10:48,370 --> 00:10:52,150 das wird eine Menge sein, verschiedene Funktionen und Variablen. 177 00:10:52,150 --> 00:10:54,070 Es ist eine Menge Ärger. 178 00:10:54,070 --> 00:10:58,980 Und wahrscheinlich wirst du einen schreiben sind verschiedene Verfahren oder andere Funktion 179 00:10:58,980 --> 00:11:03,950 für jede der Stück genau zu kontrollieren, was sie tun. 180 00:11:03,950 --> 00:11:08,830 >> Aber wenn Sie das tun objektorientierte Programmierung all dieser Stücke 181 00:11:08,830 --> 00:11:12,440 kann in abstrahiert werden ein einzelnes Objekt. 182 00:11:12,440 --> 00:11:16,111 Und das Objekt wird etwas gemeinsam haben Eigenschaften, wie welche Art von Stück 183 00:11:16,111 --> 00:11:16,610 ist das? 184 00:11:16,610 --> 00:11:17,740 Welche Farbe hat es? 185 00:11:17,740 --> 00:11:19,480 Wie kann es zu bewegen? 186 00:11:19,480 --> 00:11:24,660 Und auf diese Weise haben Sie stark vereinfacht die Logik davon. 187 00:11:24,660 --> 00:11:28,480 So ist es nur eine wirklich gute Möglichkeit komplizierte Programme zu machen, 188 00:11:28,480 --> 00:11:33,700 und hierarchische Beziehung innerhalb des Programms, sehr einfach. 189 00:11:33,700 --> 00:11:36,800 Als wir gehen, um zu sehen Grund sehr schnell, wenn 190 00:11:36,800 --> 00:11:39,660 wir tatsächlich tun, programming-- wenn wir tatsächlich 191 00:11:39,660 --> 00:11:42,830 tun ein S-Code Programmiersitzung später. 192 00:11:42,830 --> 00:11:48,120 >> Nun zusätzlich dazu, Objektorientierte Programmierung 193 00:11:48,120 --> 00:11:50,030 ist nur eine Menge Spaß. 194 00:11:50,030 --> 00:11:51,990 Sie haben eine eigene Objekt zu entwerfen. 195 00:11:51,990 --> 00:11:56,080 Sie haben zu entwerfen, was tut es aussehen alleine. 196 00:11:56,080 --> 00:11:58,250 Es gibt keine richtige Antwort darauf. 197 00:11:58,250 --> 00:12:02,940 Und es ist ganz interessant. 198 00:12:02,940 --> 00:12:07,270 So in der objektorientierten Programmierung, zwei grundlegende Konzepte 199 00:12:07,270 --> 00:12:10,130 wird Klasse und Instanz. 200 00:12:10,130 --> 00:12:13,570 Eine Klasse ist im Grunde eine Vorlage für Objekt. 201 00:12:13,570 --> 00:12:18,070 Und ein Beispiel ist im Grunde ein einzelnes Objekt. 202 00:12:18,070 --> 00:12:21,090 >> Sagen wir einfach, Sie machen ein Cookie sind. 203 00:12:21,090 --> 00:12:24,800 In diesem Fall wird jede einzelne Cookie Sie tatsächlich am Ende mit 204 00:12:24,800 --> 00:12:27,310 wird sich ein Objekt sein. 205 00:12:27,310 --> 00:12:35,830 Aber das Cookie Platte Sie verwenden, um zu backen alle Cookies eine Klasse sein. 206 00:12:35,830 --> 00:12:37,880 Eine Klasse ist im Grunde eine Vorlage. 207 00:12:37,880 --> 00:12:46,170 Und die Instanz ein spezifischer sein Objekt erstellt aus dieser Klasse. 208 00:12:46,170 --> 00:12:49,970 >> Und eine Instanz erstellt werden basierend auf Klassendeklaration, 209 00:12:49,970 --> 00:12:56,760 wie wir in späteren Dias sehen. 210 00:12:56,760 --> 00:13:00,010 Lassen Sie uns also tatsächlich ein wirklich kurzes Beispiel [unverständlich]. 211 00:13:00,010 --> 00:13:04,280 Nehmen wir an, wir erklären ein Objekt für eine Katze. 212 00:13:04,280 --> 00:13:07,930 Das Objekt sollte have-- die Katze Klasse sollte 213 00:13:07,930 --> 00:13:11,260 haben einige Eigenschaften und Methoden. 214 00:13:11,260 --> 00:13:17,300 Welche Eigenschaften sollte die Klasse have-- sollte die Katze haben? 215 00:13:17,300 --> 00:13:20,580 >> Zum Beispiel, Farbe, Alter und Rasse, die 216 00:13:20,580 --> 00:13:24,440 werden Variablen sein, dass sind für jede Katze. 217 00:13:24,440 --> 00:13:27,790 Und das sind einige Dinge, dass wir verwenden, um eine Katze zu beschreiben. 218 00:13:27,790 --> 00:13:31,880 Welche Art von Verfahren, oder was kann eine Katze tun? 219 00:13:31,880 --> 00:13:37,160 Einige kurze Beispiele würde Chase sein Maus, Fisch essen oder einfach nur miauen. 220 00:13:37,160 --> 00:13:40,900 Dies ist eine wirklich schnelle Beispiel Katze Klasse. 221 00:13:40,900 --> 00:13:46,920 Und eine wirklich spezifische Katze Objekt wird eine Katze 222 00:13:46,920 --> 00:13:50,930 wo wir angeben Farbe, Alter und Rasse. 223 00:13:50,930 --> 00:13:53,790 >> In diesem Fall ist unser Ziel nicht mehr eine Klasse mehr. 224 00:13:53,790 --> 00:14:00,010 Wir kopieren Sie die Vorlage aus der Klasse und wir uns bestimmte Informationen angeben 225 00:14:00,010 --> 00:14:04,510 zu diesem bestimmten Objekt um es unabhängig. 226 00:14:04,510 --> 00:14:09,350 Und wenn Sie anrufen eine Methode innerhalb eines Objekts, 227 00:14:09,350 --> 00:14:16,640 rufen Sie einfach meow auf das Objekt, das ist der gerade erstellten Katze. 228 00:14:16,640 --> 00:14:19,020 >> Wahrscheinlich werden Sie ausdrucken so etwas wie "Hallo Welt! 229 00:14:19,020 --> 00:14:20,000 Miau. " 230 00:14:20,000 --> 00:14:22,110 Recht nettes. 231 00:14:22,110 --> 00:14:24,500 Alles klar, lass uns einfach bekommen in einigen Details 232 00:14:24,500 --> 00:14:30,650 und sehen, was genau bedeutet, dass Übersetzen ins Leben iOS-Programmierung. 233 00:14:30,650 --> 00:14:36,500 So in iOS Programmierung jedes einzelne Klasse wird in zwei Dateien durchgeführt werden. 234 00:14:36,500 --> 00:14:41,420 Eine Datei ist hier, was wird als Schnittstelle. 235 00:14:41,420 --> 00:14:45,300 Eine weitere Datei ist hier, was heißt Umsetzung. 236 00:14:45,300 --> 00:14:48,890 >> Typischerweise wird die Schnittstellen wird extension.h haben 237 00:14:48,890 --> 00:14:51,740 wie wir es in C-Bibliotheken gesehen haben. 238 00:14:51,740 --> 00:14:56,340 Und Umsetzung Datei werde extension.n haben. 239 00:14:56,340 --> 00:14:57,260 Es ist ein bisschen seltsam. 240 00:14:57,260 --> 00:15:01,270 Jedoch .n bedeutet tatsächlich .c, gibt es keine fundamentalen Unterschied zwischen denen 241 00:15:01,270 --> 00:15:02,100 zwei. 242 00:15:02,100 --> 00:15:06,650 Also in diesem Fall, können wir sehen, dass wir erklärt Schnittstelle, Katze: Objekt. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Das nennt man Vererbung. 245 00:15:13,760 --> 00:15:19,170 Wir sind im Grunde erben die Katze Klasse von der Objektklasse. 246 00:15:19,170 --> 00:15:24,790 Also jeder Eigenschaft und Methode, die war die zuvor in der Objektklasse definiert 247 00:15:24,790 --> 00:15:28,560 wird automatisch festgelegt werden bei einer Katze Klasse auch. 248 00:15:28,560 --> 00:15:35,900 >> Darüber hinaus definieren wir Farben, Rasse und Alter, drei Variablen. 249 00:15:35,900 --> 00:15:39,360 Das Personal war sehr freundlich etwas, was Sie vorher getan haben. 250 00:15:39,360 --> 00:15:41,770 Es sieht aus wie struct. 251 00:15:41,770 --> 00:15:44,950 Das ist im Grunde die Syntax für Strukturdeklaration, 252 00:15:44,950 --> 00:15:47,710 und das ist völlig in Ordnung. 253 00:15:47,710 --> 00:15:51,825 Und da ich bereits erwähnt habe, der Unterschied eine Struktur 254 00:15:51,825 --> 00:15:53,960 und ein Objekt, eines der grundlegende Unterschiede 255 00:15:53,960 --> 00:15:59,080 ist, dass ein Objekt eine Methode, während eine Struktur hat nur Variablen. 256 00:15:59,080 --> 00:16:03,450 So dass zusätzlich zu den Eigenschaften oder Variablen, die wir für das Objekt erstellt haben, 257 00:16:03,450 --> 00:16:05,700 geben wir eine Methode. 258 00:16:05,700 --> 00:16:09,720 >> Sagen wir einfach, hier haben wir zwei Möglichkeiten, eine ist meow, 259 00:16:09,720 --> 00:16:12,460 ein anderes ist chase Maus. 260 00:16:12,460 --> 00:16:18,600 Wir wollen wahrscheinlich werden vorbei ein Parameter auf der Grundlage unserer früheren Verfahren 261 00:16:18,600 --> 00:16:20,440 Erklärung Muster. 262 00:16:20,440 --> 00:16:22,160 Sie wollen wahrscheinlich zu sein, indem ein Maus. 263 00:16:22,160 --> 00:16:25,180 Und werden Sie wahrscheinlich wollen um einen bool signifikanten zurück 264 00:16:25,180 --> 00:16:30,010 wenn Ihre Katze hat erfolgreich fing die Maus oder nicht. 265 00:16:30,010 --> 00:16:33,170 >> Dies ist die Schnittstelle, aber wir können zu sehen, dass die Schnittstelle tatsächlich 266 00:16:33,170 --> 00:16:35,150 tut nichts. 267 00:16:35,150 --> 00:16:40,800 Es sagt nur ein Programm was exists-- Was gibt es in der Katze Klasse. 268 00:16:40,800 --> 00:16:43,640 Also, um für die Programm, um etwas zu tun, 269 00:16:43,640 --> 00:16:46,680 wir brauchen, um die Umsetzung Dateien. 270 00:16:46,680 --> 00:16:51,940 So, hier, das erste, was wir tun, ist offensichtlich importieren wir die Schnittstelle. 271 00:16:51,940 --> 00:16:56,470 Nachdem wir die Schnittstelle zu importieren, definieren wir die Methode. 272 00:16:56,470 --> 00:17:00,150 >> Sagen wir einfach, hier meow nur drucken würde 273 00:17:00,150 --> 00:17:01,740 "Hallo Welt!" an die Konsole. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 Und nach der Umsetzung Datei, wir ziemlich viel getan. 276 00:17:08,460 --> 00:17:14,530 Dies ist im Grunde eine Klasse Deklaration für eine Klasse. 277 00:17:14,530 --> 00:17:19,970 Nun stellt sich die Frage, wie können Sie eine Variable deklarieren? 278 00:17:19,970 --> 00:17:26,880 Die Art, wie Sie eine Klasse verwenden, um eine zu erstellen Objekt in Objective C wird hier geschrieben. 279 00:17:26,880 --> 00:17:30,730 >> Sie zuerst festlegen, dass das ist eine Katze Zeiger, 280 00:17:30,730 --> 00:17:38,700 weil jedes Objekt in Objective C schließlich als Zeiger implementiert. 281 00:17:38,700 --> 00:17:46,210 Und Sie haben die Klasse aufrufen, rufen Sie als alloc, der im Grunde malloc, 282 00:17:46,210 --> 00:17:51,220 Erzählen Sie das Betriebssystem, das Sie brauche etwas Speicherplatz für dieses Objekt. 283 00:17:51,220 --> 00:17:55,780 Danach können Sie ein Objekt haben bereits und Sie nur initialisieren. 284 00:17:55,780 --> 00:17:56,780 Dies ist nur Konvention. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Ich weiß, es ist ein wenig seltsam, aber das ist eigentlich, wie Apple tut Sachen. 287 00:18:04,410 --> 00:18:07,130 >> Zuweisen von Eigenschaften eigentlich ziemlich einfach. 288 00:18:07,130 --> 00:18:09,250 Es ist sehr ähnlich was du tust, wenn 289 00:18:09,250 --> 00:18:13,780 Sie Zuweisen einige spezifische Feld innerhalb der Struktur. 290 00:18:13,780 --> 00:18:16,830 Sie müssen nur die Variable Namen, den Namen der Eigenschaft, 291 00:18:16,830 --> 00:18:20,140 und vergeben Sie einen bestimmten Wert zu. 292 00:18:20,140 --> 00:18:24,120 Und Aufrufen einer Methode ist sehr ähnlich. 293 00:18:24,120 --> 00:18:29,080 Der Aufruf einer Methode im Grunde, was ich sprechen 294 00:18:29,080 --> 00:18:32,390 für den Aufruf einer beliebigen Methode in Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Du Gabe eines Objekts, in dieser Fall es wird myCat sein, 296 00:18:36,660 --> 00:18:42,490 und du bist das Bestehen der Methodennamen. 297 00:18:42,490 --> 00:18:47,130 Wie, wenn Sie auf das Objekt zu sprechen, myCat, die Sie miauen sollte. 298 00:18:47,130 --> 00:18:48,570 Es ist ziemlich interessant. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Danach gibt es ein Weiteres Entwurfsmuster 301 00:18:55,680 --> 00:18:59,940 dass wir, darüber zu sprechen bevor man zur eigentlichen S-Code. 302 00:18:59,940 --> 00:19:03,300 Das Design-Muster wird als ereignisgesteuerte Programmierung. 303 00:19:03,300 --> 00:19:09,660 Dies ist wahrscheinlich auch einer der am meisten Grundgedanken in iOS-Programmierung. 304 00:19:09,660 --> 00:19:14,410 >> So werden Sie wahrscheinlich nicht, was genau, ist die ereignisgesteuerte Programmierung, 305 00:19:14,410 --> 00:19:16,990 aber es ist nicht wirklich so unheimlich. 306 00:19:16,990 --> 00:19:20,400 Nun, in der Tat, Sie haben bereits zuvor getan. 307 00:19:20,400 --> 00:19:24,894 Dies ist eine der Zeilen, die Sie wahrscheinlich haben bereits im letzten [unverständlich] geschrieben 308 00:19:24,894 --> 00:19:26,810 der CS50, google.maps.event.addListener (Marker, 309 00:19:26,810 --> 00:19:27,810 "Klick", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Durch den Aufruf dieser Zeile sind im wesentlichen dem Computer mitzuteilen, 312 00:19:37,620 --> 00:19:42,650 dass, wenn das Ereignis genannt "Klick" geschieht auf die Markierung, 313 00:19:42,650 --> 00:19:43,630 verwenden Sie diese Funktion. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Dies ist sehr verschieden von was Sie in mario.c tun. 316 00:19:50,950 --> 00:19:56,670 In mario.c Sie gerade führen Sie das Programm einmal, es gibt Ihnen eine Leistung, 317 00:19:56,670 --> 00:19:58,590 und Sie sind fertig. 318 00:19:58,590 --> 00:20:02,590 Dies sind ein bisschen wie One-Shot-Programme. 319 00:20:02,590 --> 00:20:05,830 Ereignisgesteuerte Programme sind sehr, sehr unterschiedlich. 320 00:20:05,830 --> 00:20:10,230 Stellen Sie sich vor, wenn Facebook ist ein One Schuss-Programm, es ist nicht wirklich gut. 321 00:20:10,230 --> 00:20:13,750 Sie gehen, nur um Facebook einmal und fertig. 322 00:20:13,750 --> 00:20:16,700 Es gibt Ihnen eine Ausgabe und Sie nie wieder. 323 00:20:16,700 --> 00:20:19,380 Sie kam nie etwas anderes. 324 00:20:19,380 --> 00:20:23,880 >> So, hier, vor allem das Muster, das wir verwenden, ist 325 00:20:23,880 --> 00:20:26,940 ereignisgesteuert, so dass jede Funktion wird 326 00:20:26,940 --> 00:20:31,480 basierend auf gefangen werden, was Ereignis eingetreten ist. 327 00:20:31,480 --> 00:20:34,670 Zum Beispiel, wenn wir eine Taste, und wir geben 328 00:20:34,670 --> 00:20:39,870 dass, wenn die Schaltfläche geklickt wird, rufen Sie die Funktion "Hallo Welt!" 329 00:20:39,870 --> 00:20:47,810 Auf diese Weise können wir wirklich die Funktionslogik verwalten 330 00:20:47,810 --> 00:20:50,560 fließen in sehr flexibler Weise. 331 00:20:50,560 --> 00:20:55,840 Der Benutzer kann tun oder rufen Sie eine Funktion dass bereits aufgerufen wurde. 332 00:20:55,840 --> 00:20:59,900 Es ist voll und ganz auf, was die Nutzer tun basiert. 333 00:20:59,900 --> 00:21:04,080 >> So können wir sehen, dass dies eigentlich viel besser als mario.c. 334 00:21:04,080 --> 00:21:07,190 Und eine gute Nachricht ist, dass es eigentlich kein neues Konzept. 335 00:21:07,190 --> 00:21:12,140 Ihr habt bereits getan dass in den letzten Problem eingestellt. 336 00:21:12,140 --> 00:21:16,640 So in Objective C gibt es drei verschiedene Diagramme 337 00:21:16,640 --> 00:21:19,030 für ereignisgesteuerte Programmierung. 338 00:21:19,030 --> 00:21:21,970 Das erste Diagramm ist genannte Zielaktion, 339 00:21:21,970 --> 00:21:26,990 in dem Sie eine Taste binden Presse mit einer Funktion. 340 00:21:26,990 --> 00:21:31,590 Sagen wir einfach, wenn Sie klicken einige Taste eine Funktion rufen Sie an. 341 00:21:31,590 --> 00:21:33,620 Dies ist sehr einfach Zielaktion. 342 00:21:33,620 --> 00:21:35,580 >> Das zweite ist wirklich das härteste, 343 00:21:35,580 --> 00:21:38,450 es heißt Delegation zu Protokoll. 344 00:21:38,450 --> 00:21:41,800 Wir werden erklären, daß in allen Einzelheiten später. 345 00:21:41,800 --> 00:21:44,420 Und die dritte Möglichkeit ist Benachrichtigung. 346 00:21:44,420 --> 00:21:46,770 Das ist eigentlich nicht sehr wichtig, soweit 347 00:21:46,770 --> 00:21:50,920 uns betrifft, denn die Chance, dass Sie gehen, um Benachrichtigung verwenden möchten 348 00:21:50,920 --> 00:21:53,310 in das endgültige Projekt ist ziemlich gering. 349 00:21:53,310 --> 00:21:56,440 Also werden wir diesen Teil überspringen. 350 00:21:56,440 --> 00:21:59,460 >> Und wir werden zu tauchen in Delegation zu Protokoll. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Also, was genau ist ein Protokoll? 353 00:22:04,470 --> 00:22:06,450 Oder was genau ist eine Delegation? 354 00:22:06,450 --> 00:22:09,670 Lassen Sie uns über Protokoll, mit zu beginnen zu sprechen. 355 00:22:09,670 --> 00:22:13,360 Protokolle sind nichts anderes als Ereignisse. 356 00:22:13,360 --> 00:22:19,230 Aber diese Ereignisse zu bestimmten Sie wurden von Apple zu starten mit. 357 00:22:19,230 --> 00:22:22,640 Zum Beispiel, ich bin nicht ganz sicher, wie viele von euch 358 00:22:22,640 --> 00:22:27,930 Jungs verwenden Apples Original- App Mail oder Kontaktformular, 359 00:22:27,930 --> 00:22:32,180 aber jedes Mal, wenn Sie blättern die Tabelle und drücken Sie die spezifische Zell 360 00:22:32,180 --> 00:22:36,130 auf dem Tisch ist, dass ein Ereignis. 361 00:22:36,130 --> 00:22:38,330 >> Und wenn Sie wollen, das Ereignis selbst, 362 00:22:38,330 --> 00:22:40,410 es ist eigentlich ein bisschen schwer. 363 00:22:40,410 --> 00:22:44,880 So hat Apple, dass auch dir gegeben so dass Sie direkt verwenden können 364 00:22:44,880 --> 00:22:49,610 das Ereignis, etwas auf eigene Faust tun. 365 00:22:49,610 --> 00:22:52,980 Protokolle sind eigentlich sehr, sehr weit verbreitet 366 00:22:52,980 --> 00:22:58,320 in Objective C. Nun, in der Tat, jede einzelne App 367 00:22:58,320 --> 00:23:00,870 hat etwas gefangen app-Delegaten. 368 00:23:00,870 --> 00:23:06,330 Innerhalb von empfindlichen ist alle das Protokolle für das Laden der App. 369 00:23:06,330 --> 00:23:12,470 >> Sagen wir einfach, es gibt eine Veranstaltung für App haben Last. 370 00:23:12,470 --> 00:23:18,200 Also, was passieren soll, nachdem Sie eine Anwendung erstellt, nachdem Sie die App öffnen, 371 00:23:18,200 --> 00:23:22,630 nachdem Sie die App zu schließen, oder nach Sie das iPhone in den Ruhezustand. 372 00:23:22,630 --> 00:23:27,480 Dies alles sind Ereignisse, die hat Ihnen bereits gegeben. 373 00:23:27,480 --> 00:23:34,730 Und die ursprünglich in diesen Partikeln wird es keine Implementierung. 374 00:23:34,730 --> 00:23:39,750 Apple hat gerade gesagt, dass diese Funktion passiert, wenn ein Ereignis eintritt, 375 00:23:39,750 --> 00:23:44,380 aber was man damit machen Funktion ist ganz Ihnen überlassen. 376 00:23:44,380 --> 00:23:49,290 >> Delegation ist im Grunde erzählt die Klasse 377 00:23:49,290 --> 00:23:53,060 dass Sie sollten diese Protokolle verarbeiten. 378 00:23:53,060 --> 00:23:55,340 Es ist ein wenig verwirrend, aber es wird 379 00:23:55,340 --> 00:23:59,380 viel klarer, wenn wir die s-Codes in Aktion. 380 00:23:59,380 --> 00:24:04,760 Delegation auf Protokoll ist eigentlich ein sehr robusten Mechanismus im Sinne 381 00:24:04,760 --> 00:24:08,160 dass, wenn wir tun Delegation zu einer bestimmten Klasse, 382 00:24:08,160 --> 00:24:12,400 wir im Wesentlichen verarbeiten kann Veranstaltungen aller Art 383 00:24:12,400 --> 00:24:17,040 mit jeder Klasse haben wir, sehr bequemes Werkzeug. 384 00:24:17,040 --> 00:24:21,530 >> So ein kleines Beispiel für Delegation zu Protokoll 385 00:24:21,530 --> 00:24:24,120 wird sein, was ich haben gerade darüber gesprochen. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Dieses Protokoll spezifisch aufgerufen Tableview [unverständlich] auszuwählen Rolle 388 00:24:30,890 --> 00:24:35,480 auf [? Index?] [? Vergangenheit. ?] Also das eine Veranstaltung, die gefangen werden würde, wenn Sie 389 00:24:35,480 --> 00:24:39,710 tatsächlich auf einem bestimmten Leitungs Zelle im Tableview, 390 00:24:39,710 --> 00:24:43,570 lassen Sie uns einfach in Ihre E-Mails sagen oder in Ihren Kontakten App. 391 00:24:43,570 --> 00:24:48,180 >> Innerhalb einer Funktion war ursprünglich nichts zu tun. 392 00:24:48,180 --> 00:24:51,950 Die Funktion nicht alles tun, standardmäßig. 393 00:24:51,950 --> 00:24:55,540 Aber können Sie festlegen, was die Funktion macht, 394 00:24:55,540 --> 00:24:59,610 gegeben, was Sie aus Ihrer Anwendung wollen. 395 00:24:59,610 --> 00:25:01,610 Sehr praktisches Tool. 396 00:25:01,610 --> 00:25:06,840 Und mit allem, Davon abgesehen, habe ich im Grunde 397 00:25:06,840 --> 00:25:11,430 decken einige sehr grundlegende Syntax und Grundkonzept für die Ziel-C 398 00:25:11,430 --> 00:25:15,860 Programmierung, und wir können etwas s Code zu tun. 399 00:25:15,860 --> 00:25:17,980 Viel spannender. 400 00:25:17,980 --> 00:25:21,070 So s Code ist eigentlich ein wenig überwältigend 401 00:25:21,070 --> 00:25:23,330 wenn Sie es öffnen zum ersten Mal. 402 00:25:23,330 --> 00:25:26,640 >> Eine kurze Notiz, wenn Sie also will iOS-Entwicklung zu tun, 403 00:25:26,640 --> 00:25:29,630 Ich empfehle Ihnen einen Mac haben. 404 00:25:29,630 --> 00:25:33,930 Da tut iOS Entwicklung Windows ist wirklich sehr, sehr hart. 405 00:25:33,930 --> 00:25:37,560 Es ist machbar, aber es ist wirklich schwer. 406 00:25:37,560 --> 00:25:40,610 Und auf jeden Fall tun, nicht zu bearbeiten g zu verwenden. 407 00:25:40,610 --> 00:25:47,950 So im s-Code haben wir verschiedenen Bereichen. 408 00:25:47,950 --> 00:25:53,050 Beim ersten Öffnen bis s-Code finden Sie eine Navigationsleiste zu sehen, 409 00:25:53,050 --> 00:25:57,470 was im Grunde zeigt Ihnen alle Dateien, die in Ihrem aktuellen Projekt ist. 410 00:25:57,470 --> 00:26:03,590 >> Sie haben eine Symbolleistenbereich, die ist im Grunde die Verwaltung Blick, 411 00:26:03,590 --> 00:26:08,570 oder ein wenig schneller Werkzeuge zum s-Code selbst. 412 00:26:08,570 --> 00:26:11,140 Und das ist die eigentliche Editor-Bereich. 413 00:26:11,140 --> 00:26:15,900 Dieses Gebiet ist sehr ähnlich g bearbeiten aber viel besser als g bearbeiten. 414 00:26:15,900 --> 00:26:21,150 Und in diesem rechten Bereich ist genannt Wirtschaftsraum. 415 00:26:21,150 --> 00:26:27,170 Das Gebiet wird wirklich praktisch, wenn Sie erstellen sind Schnittstelle oder die Angabe 416 00:26:27,170 --> 00:26:30,070 einige schnelle Setups für Ihre Anwendung. 417 00:26:30,070 --> 00:26:34,570 >> Und der letzte Bereich ist die Fehlersuche. 418 00:26:34,570 --> 00:26:37,970 Dieser Bereich enthält die Konsole. 419 00:26:37,970 --> 00:26:43,170 Also, wenn Sie sagen, printf, NSLog oder in unserem Fall, 420 00:26:43,170 --> 00:26:47,330 alle Ergebnisse werde hier ausgedruckt werden. 421 00:26:47,330 --> 00:26:48,260 In Ordnung? 422 00:26:48,260 --> 00:26:52,090 Ich denke, wir können sehr schnell tun ein Beispiel für iOS-Programmierung. 423 00:26:52,090 --> 00:26:54,220 Und lassen Sie uns bis s Code tatsächlich zu öffnen. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Also jedes Mal, wenn Sie s Code zu öffnen, ist es gehen zu zeigen, bis so etwas. 426 00:27:01,346 --> 00:27:03,220 Es wird Sie fragen, was möchten sie tun? 427 00:27:03,220 --> 00:27:06,830 Wollen Sie etwas beginnen soll zufällige, einen Spielplatz, im Grunde 428 00:27:06,830 --> 00:27:11,250 kann nur Code zu testen, ohne tatsächlich verpflichten, jedem App. 429 00:27:11,250 --> 00:27:13,020 >> Wollen Sie ein neues Projekt erstellen? 430 00:27:13,020 --> 00:27:16,660 Oder haben Sie den Vorgang fortsetzen möchten Arbeiten am bestehenden Projekt? 431 00:27:16,660 --> 00:27:20,270 In unserem Fall werden wir um ein neues Projekt zu erstellen. 432 00:27:20,270 --> 00:27:22,980 Also es ist wirklich schön, s Code tatsächlich schon 433 00:27:22,980 --> 00:27:26,820 da Sie einige Vorlagen zum Anlegen von Objekten. 434 00:27:26,820 --> 00:27:32,680 Wenn Sie ein Spiel machen wollen, s-Code tatsächlich ein Spiel Vorlage für Sie, 435 00:27:32,680 --> 00:27:36,890 hat Seite-basierte Anwendungen, Registerkarte basierte Anwendung. 436 00:27:36,890 --> 00:27:39,280 In diesem Fall werden wir etwas sehr einfach zu tun, 437 00:27:39,280 --> 00:27:43,230 und wir werden ein verwenden Einzelansicht Anwendung. 438 00:27:43,230 --> 00:27:48,270 >> Danach genau das, was Sie anrufen möchten Ihr Produkt, und wie ist dein Name, 439 00:27:48,270 --> 00:27:52,760 was ist Ihre Kennung und welche Sprache Sie verwenden. 440 00:27:52,760 --> 00:27:57,060 Hier haben wir nicht wollen, überprüfen mit Core Data. 441 00:27:57,060 --> 00:28:00,170 Core Data ist im Grunde eine databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Wenn Sie Core Data zu tun, s Code wird zu definieren, 443 00:28:05,360 --> 00:28:07,710 viel komplizierter Klassen für Sie. 444 00:28:07,710 --> 00:28:12,740 Also, alles einfach zu halten, sind wir gerade dabei, ohne Core Data zu tun 445 00:28:12,740 --> 00:28:15,290 jetzt sofort. 446 00:28:15,290 --> 00:28:18,030 >> Das Problem, wir werden sein Hilfe ist dass-- Problems 447 00:28:18,030 --> 00:28:23,770 wir gehen zu erschaffen ist, dass wir Grundsätzlich wollen von C importieren Mario 448 00:28:23,770 --> 00:28:25,437 auf einem iOS-App. 449 00:28:25,437 --> 00:28:26,645 So nennen wir, dass Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Natürlich können Sie, was Sie angeben, wollen in Ihrem Projekt setzen. 452 00:28:34,880 --> 00:28:37,870 Und wir gehen. 453 00:28:37,870 --> 00:28:41,390 >> Das ist also ein wenig überwältigend, aber dies ist tatsächlich 454 00:28:41,390 --> 00:28:43,540 was wir gerade gesehen, auf den Folien. 455 00:28:43,540 --> 00:28:49,710 Und der erste Bereich im Moment sehen wir ist im Grunde Projektkonfiguration. 456 00:28:49,710 --> 00:28:53,390 Also alles, was Sie tun möchten, Projekt, welche Art von Gerät, 457 00:28:53,390 --> 00:28:58,810 sagen wir einfach, welche Art von Gerät tun Sie Ihre Anwendung auf erscheint? 458 00:28:58,810 --> 00:29:01,280 Ist es iPhone, iPad oder universal? 459 00:29:01,280 --> 00:29:04,660 So Gerät Orientierung, all dieses Zeug. 460 00:29:04,660 --> 00:29:08,490 Nicht sehr wichtig, jedoch könnte, aber dies 461 00:29:08,490 --> 00:29:11,050 ist ein Ort, an dem Ihnen bei der Einrichtung Ihr Projekt, wenn Sie tatsächlich 462 00:29:11,050 --> 00:29:15,180 wollen mit dem Apple-Store zu implementieren. 463 00:29:15,180 --> 00:29:20,420 >> Also gut, lassen Sie uns etwas, das in unserem Code ist. 464 00:29:20,420 --> 00:29:22,360 Lassen Sie uns über den Dateimanager zu gehen. 465 00:29:22,360 --> 00:29:30,140 Und dies sind alle Dateien, die bereits kam mit der Vorlage, sehr schön. 466 00:29:30,140 --> 00:29:35,980 Also, wenn wir auf einer von ihnen das ist, wie es aussieht. 467 00:29:35,980 --> 00:29:38,530 Sehr ähnlich g bearbeiten. 468 00:29:38,530 --> 00:29:41,340 Aber Sie, dass die sehen können Syntax-Highlighting ist wahrscheinlich 469 00:29:41,340 --> 00:29:42,780 ein bisschen schöner. 470 00:29:42,780 --> 00:29:45,610 Und es ist eigentlich viel mehr mächtiger als g Bearbeitung. 471 00:29:45,610 --> 00:29:49,970 Und Sie können Auto-Vervollständigen eine Menge Dinge für Sie, 472 00:29:49,970 --> 00:29:52,370 da wir sehr schnell zu sehen. 473 00:29:52,370 --> 00:29:54,100 >> Wir öffnen die Debugging-Bereich als gut. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Also gut, wie wir sehen können, Die Konsole ist hier richtig. 476 00:30:07,000 --> 00:30:13,840 Dies ist, was Sie gehen zu sehen, wo Sie sind in printf oder nsloging etwas. 477 00:30:13,840 --> 00:30:17,155 So ohne weiteres lassen Sie uns wirklich kompilieren Sie die App und sehen was passiert. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Ein wesentliches Merkmal für s-Code, ist, dass s-Code 480 00:30:23,410 --> 00:30:25,850 kommt mit einem iPhone-Simulator. 481 00:30:25,850 --> 00:30:29,820 So dass Sie nicht brauchen, um eine haben iPhone, um Ihr Projekt zu versuchen, 482 00:30:29,820 --> 00:30:34,440 s-Code kann, dass für Simulation Sie, wie wir jetzt sehen können. 483 00:30:34,440 --> 00:30:36,406 >> Es ist ziemlich nett. 484 00:30:36,406 --> 00:30:38,640 Es hat sich ein wenig wenig Zeit zu kompilieren 485 00:30:38,640 --> 00:30:43,040 und im Grunde haben wir eine leere Anwendung, 486 00:30:43,040 --> 00:30:44,640 was eigentlich nichts. 487 00:30:44,640 --> 00:30:46,175 Aber es kompiliert. 488 00:30:46,175 --> 00:30:47,380 Es ist ziemlich genial. 489 00:30:47,380 --> 00:30:50,200 Es ist viel besser als C, oder? 490 00:30:50,200 --> 00:30:52,130 Also gut, dann lasst uns versuchen, etwas hinzuzufügen. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Eine Datei, die ein wenig ist hier seltsam heißt Storyboard. 493 00:31:02,650 --> 00:31:08,020 Dies ist tatsächlich eine große, genial Funktion für s-Code. 494 00:31:08,020 --> 00:31:14,170 Da im s-Code, können Sie tatsächlich ziehen and-Drop-Elemente auf die Schnittstelle 495 00:31:14,170 --> 00:31:17,430 und es wird direkt angezeigt. 496 00:31:17,430 --> 00:31:18,055 Lassen Sie uns versuchen, dass. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Wir lassen hier eine Bezeichnung, "Hallo Welt !!!" 499 00:31:27,236 --> 00:31:29,740 Wir können zu zentrieren, dass. 500 00:31:29,740 --> 00:31:30,970 Ziemlich cool. 501 00:31:30,970 --> 00:31:33,915 Lassen Sie uns jetzt führen Sie dieses Stop-Simulation. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Hier haben wir "Hallo Welt !!!" 504 00:31:38,700 --> 00:31:40,810 Wir haben nicht einmal jede Kodierung noch nicht. 505 00:31:40,810 --> 00:31:42,750 Was zum Teufel ist passiert? 506 00:31:42,750 --> 00:31:45,880 Dies ist, wie leistungsfähig Interface Builder kann. 507 00:31:45,880 --> 00:31:48,030 Jemand sagte sogar, dass Sie können wahrscheinlich nur 508 00:31:48,030 --> 00:31:52,800 füllen Sie eine App ohne Schrift wahrscheinlich mehr als tausend Zeilen Code 509 00:31:52,800 --> 00:31:54,820 nur mit der Interface Builder. 510 00:31:54,820 --> 00:31:59,680 Aber es ist wahrscheinlich nicht der beste Weg, es zu tun. 511 00:31:59,680 --> 00:32:01,670 >> Lassen Sie uns nun tatsächlich kommen zur Codierung. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 So der Struktur von Datei ist eigentlich sehr interessant 514 00:32:08,330 --> 00:32:15,610 weil, wie Sie sehen können, gibt keine Hauptfunktion überall. 515 00:32:15,610 --> 00:32:17,466 Siehst du? 516 00:32:17,466 --> 00:32:19,340 Wie wir bereits erwähnt, Sie, dass diese sehen können 517 00:32:19,340 --> 00:32:22,830 ist eine Implementierung-Datei für eine bestimmte Klasse. 518 00:32:22,830 --> 00:32:25,690 Aber es gibt keine Haupt überall. 519 00:32:25,690 --> 00:32:27,490 Also, wo ist Haupt? 520 00:32:27,490 --> 00:32:31,970 Tatsächlich gibt es eine Haupt, aber die Haupt tatsächlich vor Ihnen verborgen. 521 00:32:31,970 --> 00:32:34,560 Die wichtigste ist hier. 522 00:32:34,560 --> 00:32:37,120 Das kommt mir bekannt vor. 523 00:32:37,120 --> 00:32:41,000 >> Also im Grunde, was iOS innerhalb Haupt tun 524 00:32:41,000 --> 00:32:43,540 ist, dass, wenn Haupt ist genannt, das ist im Grunde 525 00:32:43,540 --> 00:32:49,000 wenn die App ausgeführt wird, wird es erstellt ein Objekt namens AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Wie ich schon erwähnt, die gesamte App ist eigentlich ein Objekt für sich. 528 00:32:57,350 --> 00:33:02,270 So auf diese Weise im Wesentlichen die iOS-App sagt dem Compiler 529 00:33:02,270 --> 00:33:05,540 dass OK, ich werde zu erstellen ein Produkt namens AppDelegate, 530 00:33:05,540 --> 00:33:07,620 und das wird meine Anwendung sein. 531 00:33:07,620 --> 00:33:09,640 Sie müssen also gehen durch diese AppDelegate 532 00:33:09,640 --> 00:33:12,040 und sehen, was der Kerl tut. 533 00:33:12,040 --> 00:33:14,850 Mein Job ist für mich getan. 534 00:33:14,850 --> 00:33:22,070 >> Und in AppDelegate das sieht man es gibt einige wirklich seltsame Funktionen, 535 00:33:22,070 --> 00:33:25,290 Naja, eigentlich Methoden, dass Apple hat bereits euch gegeben. 536 00:33:25,290 --> 00:33:27,464 Was ist das? 537 00:33:27,464 --> 00:33:31,010 Dabei handelt es sich eigentlich nur Protokolle daß ich redete. 538 00:33:31,010 --> 00:33:35,670 Das sind Ereignisse, die Apple- gegeben hat, mit zu beginnen. 539 00:33:35,670 --> 00:33:38,050 Es gibt nichts in einigen der Funktionen im Augenblick, 540 00:33:38,050 --> 00:33:40,820 aber wenn wir initialisieren möchten etwas für unsere App 541 00:33:40,820 --> 00:33:46,140 bevor man in die Anzeige jede Ansicht, das machen wir hier. 542 00:33:46,140 --> 00:33:51,150 >> Sie können nur den Namen zu lesen und ich denke, die Veranstaltung ist eigentlich wirklich klar. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 So, jetzt Haupt geschaffen hat ein Objekt für AppDelegate. 545 00:33:58,350 --> 00:34:05,220 Und was AppDelegate tun wird ist eigentlich auch vor Ihnen verborgen. 546 00:34:05,220 --> 00:34:09,250 Die AppDelegate wird beginnen Laden der Viewcontroller Lager. 547 00:34:09,250 --> 00:34:13,170 So ist es im Grunde geht zu starten Laden Sie alle Ansichten, die Sie haben 548 00:34:13,170 --> 00:34:17,500 und nur die Aussicht machen auf Basis der Hierarchie. 549 00:34:17,500 --> 00:34:21,280 >> Also in diesem Fall haben wir nur eine Ansicht, die hier. 550 00:34:21,280 --> 00:34:25,060 Das ist also die einzige Ansicht das wird aufgerufen. 551 00:34:25,060 --> 00:34:28,159 Der Viewcontroller Logik ist hier richtig. 552 00:34:28,159 --> 00:34:32,159 Dies ist der Code, der tatsächlich steuert die Aussicht, die wir gerade gesehen haben. 553 00:34:32,159 --> 00:34:33,679 Alles klar, lass uns etwas zu tun hier. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 So viewDidLoad klingt wie ein Ereignis, wenn in der Tat ist dies auch ein Delegierter, 556 00:34:50,560 --> 00:34:52,500 dies ist auch ein Protokoll. 557 00:34:52,500 --> 00:34:56,350 >> Also was auch immer der Ansicht geladen ist, alles innerhalb der Funktion 558 00:34:56,350 --> 00:34:57,920 aufgerufen. 559 00:34:57,920 --> 00:35:02,840 In diesem Fall sollten wir "Hallo ist Tianyu! ", Wenn man das Programm ausführen. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Es ist schon ein wenig langsam Kompilieren Storyboard-Dateien. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Nun ja, wir sehen einen Ausgang für sie. 564 00:35:18,190 --> 00:35:20,720 Es ist ziemlich cool. 565 00:35:20,720 --> 00:35:22,000 Lassen Sie uns nun tatsächlich tun Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Ich werde das zu definieren sehr schnell funktionieren. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: (int) Ergebnisse zu erzielen. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> In Ordnung, das ist eigentlich das genial Merkmal s Code Auto-Vervollständigung. 572 00:36:06,410 --> 00:36:10,680 Also, wenn Sie zum Schreiben, und geben Sie ein, es hat bereits die Vorlage gegeben 573 00:36:10,680 --> 00:36:12,325 für Sie, das ist ziemlich cool. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Das sollte wirklich suchen vertraut euch. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Es tut uns leid, das ist meine Schuld. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Alles klar, cool. 580 00:37:18,120 --> 00:37:22,710 Diese Logik sollte wirklich bekannt vor an euch, vor allem nur Mario. 581 00:37:22,710 --> 00:37:26,140 >> Aber wir werden jetzt ausdrucken zu die Konsole jedes Mal, 582 00:37:26,140 --> 00:37:29,280 denn wir wollen irgendwie halten Übersicht über das, was wir den Druck. 583 00:37:29,280 --> 00:37:31,810 Wir werden die benutzen ergibt irgendwie später 584 00:37:31,810 --> 00:37:35,010 um den Druck anzuzeigen aus, um den Benutzer entstehen. 585 00:37:35,010 --> 00:37:37,730 Anstatt also wir gerade sind nslogging alles, 586 00:37:37,730 --> 00:37:42,410 die wir tun alles, was die Speicherung in einem Funktionsaufruf Ergebnis 587 00:37:42,410 --> 00:37:44,070 aber die Logik ist genau die gleiche. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Nachdem wir es, wir beenden nur drucken unsere Ergebnisse. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> Und hier statt Ausdruck meiner Namen, werden wir eine Funktion aufrufen. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Mal sehen, was passiert. 594 00:38:18,090 --> 00:38:21,240 Hoppla, offensichtlich. 595 00:38:21,240 --> 00:38:24,320 Wir haben eine schöne kleine Pyramide hier. 596 00:38:24,320 --> 00:38:28,370 Dies ist im Wesentlichen C, sind wir nur Manipulation, in dem Sie eine Funktion aufrufen 597 00:38:28,370 --> 00:38:30,010 und wie eine Funktion aussehen. 598 00:38:30,010 --> 00:38:31,560 Es gibt nichts anderes. 599 00:38:31,560 --> 00:38:34,040 Aber das ist eigentlich nicht sehr spannend hier, 600 00:38:34,040 --> 00:38:37,500 weil wir nicht sehen, nichts von der iPhone-App. 601 00:38:37,500 --> 00:38:42,120 >> Also, wenn Sie wirklich ein iPhone app-- wenn Sie tatsächlich Mario iOS Recht 602 00:38:42,120 --> 00:38:45,080 jetzt, du wirst doch nicht um etwas zu sehen, dass 603 00:38:45,080 --> 00:38:49,450 etwas mit Mario, weil zu tun alle diese Ausgänge in einer Konsole 604 00:38:49,450 --> 00:38:51,620 werden von einem Benutzer verborgen. 605 00:38:51,620 --> 00:38:53,850 Dies ist, was Sie sehen, was "Hallo Welt !!!" 606 00:38:53,850 --> 00:38:55,720 Nicht gut. 607 00:38:55,720 --> 00:39:03,090 Lassen Sie uns nun versuchen, den Benutzer sehen was genau wir Ausdrucken. 608 00:39:03,090 --> 00:39:06,000 So brauchen wir nicht mehr zu kennzeichnen. 609 00:39:06,000 --> 00:39:09,800 Lassen Sie uns versuchen, herauszufinden, was anderes, das nützlich sein könnte. 610 00:39:09,800 --> 00:39:12,140 >> Es ist tatsächlich eine Element, das heißt 611 00:39:12,140 --> 00:39:16,460 Textfeld, die geeignet sind, sehr hilfreich für uns. 612 00:39:16,460 --> 00:39:19,880 Es zeigt im Grunde eine Region Text, der bearbeitet werden kann. 613 00:39:19,880 --> 00:39:22,320 Also das sieht wirklich hilfreich. 614 00:39:22,320 --> 00:39:23,810 Lassen Sie uns jetzt ziehen Sie es und legen Sie es. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, wir haben eine Text-Ansicht aus unserer Sicht wirklich Lust. 617 00:39:32,670 --> 00:39:35,430 Das ist ein bisschen zu groß. 618 00:39:35,430 --> 00:39:38,150 Machen wir es kleiner. 619 00:39:38,150 --> 00:39:40,290 Legen Sie es in die Mitte. 620 00:39:40,290 --> 00:39:43,760 Machen Sie es kleiner als gut. 621 00:39:43,760 --> 00:39:50,110 >> Jetzt haben wir einen Text-Ansicht, die wir konnten, verwendet, um unsere endgültige Ergebnis angezeigt werden. 622 00:39:50,110 --> 00:39:52,860 Aber im Moment ist es auf jeden Fall nicht zur Arbeit gehen 623 00:39:52,860 --> 00:39:56,970 da die NO- Viewcontroller wir gerade 624 00:39:56,970 --> 00:40:03,010 definiert weiß nicht, dass gibt es eine Text-Ansicht gibt. 625 00:40:03,010 --> 00:40:06,550 Also müssen wir irgendwie verknüpfen Sie die Textansicht wir gerade 626 00:40:06,550 --> 00:40:11,660 mit der Klasse erstellt, hat bereits mit uns kommen. 627 00:40:11,660 --> 00:40:14,860 >> Die Art, wie wir das tun, ist eigentlich wirklich magisch. 628 00:40:14,860 --> 00:40:18,190 So eröffnen Storyboard. 629 00:40:18,190 --> 00:40:22,220 Es gibt eine spezielle [unverständlich] genannt [? Assistent?] [unverständlich]. 630 00:40:22,220 --> 00:40:25,190 Wenn Sie, dass Sie, es ist werde zwei Dateien zu öffnen. 631 00:40:25,190 --> 00:40:29,425 One ist eine Klasse, die andere ist eine entsprechende Ansicht für sie. 632 00:40:29,425 --> 00:40:31,920 Es ist sehr, sehr hilfreich. 633 00:40:31,920 --> 00:40:35,950 Und lassen Sie uns geht gerade durch die h-Datei. 634 00:40:35,950 --> 00:40:39,110 Kontrolle, das ist [unverständlich] Logik. 635 00:40:39,110 --> 00:40:47,280 Drücken Sie Strg und ziehen die Textansicht in die Erklärung. 636 00:40:47,280 --> 00:40:48,780 Wir werden diese outputView nennen. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Schließen. 639 00:40:53,670 --> 00:40:59,420 Also hier haben wir eine neue deklariert Immobilie zu unserer Viewcontroller Klasse. 640 00:40:59,420 --> 00:41:02,300 Und die neue Eigenschaft ist nur der Text-Ansicht 641 00:41:02,300 --> 00:41:05,000 wir in der Schnittstelle Gebäude erstellt haben. 642 00:41:05,000 --> 00:41:07,990 Also auf diese Weise konnten wir Zugang alle Daten 643 00:41:07,990 --> 00:41:13,630 und zu manipulieren, alles, was im Inneren ist die Ausgangsansicht, die genial ist. 644 00:41:13,630 --> 00:41:19,260 >> Also in unserem eigentlichen Code, Lassen Sie uns etwas zu tun mit ihm. 645 00:41:19,260 --> 00:41:23,810 Dieses Mal, wenn wir wie Drucken aus dem Endergebnis für Mario, 646 00:41:23,810 --> 00:41:28,020 wir sind in nichts Anmeldung. 647 00:41:28,020 --> 00:41:30,080 Ich meine, wir halten konnte die logging-Anweisung. 648 00:41:30,080 --> 00:41:41,490 Darüber hinaus haben wir senden das Auslesen wir gerade 649 00:41:41,490 --> 00:41:47,622 an den Ausgang Ansicht, erstellt die ist ein UI-Textview wir gerade erstellt. 650 00:41:47,622 --> 00:41:48,746 Nun wollen wir sehen, was passiert. 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 Wir haben eine Pyramide in der App jetzt. 654 00:41:59,130 --> 00:42:06,720 >> So kann der Benutzer unserer Ausgabe, da sehen haben wir die Ausgabe von unseren Code kopieren 655 00:42:06,720 --> 00:42:08,045 unsere Schnittstelle. 656 00:42:08,045 --> 00:42:10,950 Es ist ziemlich gut. 657 00:42:10,950 --> 00:42:14,990 Es ist eigentlich nicht, dass spannend, weil wir can-- 658 00:42:14,990 --> 00:42:18,250 All die app tut zeigt eine Pyramide zu Ihnen, 659 00:42:18,250 --> 00:42:20,520 und es gibt nichts, was Sie dagegen tun können. 660 00:42:20,520 --> 00:42:22,330 Es ist nicht besonders aufregend. 661 00:42:22,330 --> 00:42:27,840 So, jetzt machen wir einen Taste loslassen dass die Ansichten zu löschen. 662 00:42:27,840 --> 00:42:30,290 Es scheint, dass ein Knopf wird hilfreich sein. 663 00:42:30,290 --> 00:42:33,270 Per Drag & Drop. 664 00:42:33,270 --> 00:42:33,900 Taste ein. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Taste zwei. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Wenn wir Sie mit der linken Taste sollte der Ansicht zu löschen. 669 00:42:52,052 --> 00:42:53,635 Es sollte nichts auf dem Bildschirm sein. 670 00:42:53,635 --> 00:42:56,970 Und wenn wir auf die rechte Taste, Mario, 671 00:42:56,970 --> 00:42:59,740 der Blick wird wieder angezeigt. 672 00:42:59,740 --> 00:43:05,510 Also auf diese Weise führen wir auch die magische Sachen, Kontrolle und ziehen 673 00:43:05,510 --> 00:43:08,740 zu der Klassendeklaration im Assistenten director-- 674 00:43:08,740 --> 00:43:11,600 im Assistenten Betrachter. 675 00:43:11,600 --> 00:43:18,620 In diesem Fall werden wir die Angabe , dass im Falle einer Klage sein. 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 >> Also hier haben wir bereits erstellt haben eine Aktion namens clearMario, 679 00:43:26,830 --> 00:43:34,210 wobei das Verfahren, die aufgerufen werden würde, wenn wir drücken Sie die Taste klar. 680 00:43:34,210 --> 00:43:41,030 Also in unserem eigentlich Code, lass uns einfach setzen Sie den Ausgangstext und die Ausgabeansicht 681 00:43:41,030 --> 00:43:44,620 in nichts, und auf diese Weise es erscheint klar zu sein. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Darüber hinaus erstellen wir eine andere Methode namens runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh sorry, das sollte kein Eigentum. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Na gut, das sollte eine Handlung als gut. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> Und wenn dieser Funktion ist genannt, wir laufen Mario zehn. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Hoffentlich wird gut. 692 00:44:39,780 --> 00:44:41,120 Ist es zu kompilieren? 693 00:44:41,120 --> 00:44:43,920 Ja. 694 00:44:43,920 --> 00:44:45,090 Jetzt haben wir einen Blick. 695 00:44:45,090 --> 00:44:46,560 Wir haben einen Ausgang. 696 00:44:46,560 --> 00:44:50,040 Und lassen Sie uns sehen, was passiert. 697 00:44:50,040 --> 00:44:52,590 Das ist vorbei. 698 00:44:52,590 --> 00:44:54,500 Es ist wieder da. 699 00:44:54,500 --> 00:44:57,620 Also hier haben wir festgelegt haben, welche Art von Funktion 700 00:44:57,620 --> 00:45:00,400 aufgerufen wird, wenn wir geben etwas, 701 00:45:00,400 --> 00:45:03,160 wenn wir drücken Sie eine bestimmte Taste. 702 00:45:03,160 --> 00:45:07,890 Dies ist im Grunde das Zielaktionsprogramm 703 00:45:07,890 --> 00:45:12,510 für ereignisgesteuerte Programmierung in Objective C. 704 00:45:12,510 --> 00:45:15,030 >> Hinzu kommt, dass, es ist nicht sehr aufregend, 705 00:45:15,030 --> 00:45:19,810 weil wir nicht wirklich verändern können wie hoch der Pyramide wird, 706 00:45:19,810 --> 00:45:23,640 so dass wir wollen wahrscheinlich irgendwie ein Eingabe von der Benutzer 707 00:45:23,640 --> 00:45:29,490 und ändern Sie die Höhe der Pyramide auf, was sie ausgegeben. 708 00:45:29,490 --> 00:45:32,900 Also werden wir das tun. 709 00:45:32,900 --> 00:45:38,720 Dieses Mal, wenn wir als runMario, wir nicht nur nennen Mario direkt tun. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Dieses irgendjemandes Titel. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegierter. 714 00:46:23,700 --> 00:46:25,160 Dies ist sehr interessant. 715 00:46:25,160 --> 00:46:26,720 Was ist ein Delegierter? 716 00:46:26,720 --> 00:46:28,950 Ich werde selbst hier setzen. 717 00:46:28,950 --> 00:46:31,038 Und wir werden sehen, was das später. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Also hier haben wir im Grunde erstellt haben ein bestimmte Instanz ein UI Benachrichtigung genannt 720 00:46:51,120 --> 00:46:52,210 Blick. 721 00:46:52,210 --> 00:46:54,440 Ein UI Warnungsansicht ist im Grunde, was du willst 722 00:46:54,440 --> 00:46:58,940 sehen jedes Mal etwas pops und fordert Sie zur Eingabe, 723 00:46:58,940 --> 00:47:03,080 wie das, was passiert, wenn Sie versuchen, etwas auf einem App Store kaufen. 724 00:47:03,080 --> 00:47:14,250 >> Hinzu kommt, dass, nachdem Sie erstellen Sie es, zeigen wir nur die Warnung. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Alles klar, lass uns einfach schnell Test soll das gehen oder nicht. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Das ist sehr cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Lassen Sie uns nun tatsächlich schaffen ein Eingabefeld für den UI-Benachrichtigung. 731 00:47:59,120 --> 00:48:01,170 Dies ist, wie wir das tun. 732 00:48:01,170 --> 00:48:07,490 Und wir sollten ein haben Eingang Ansicht für die Warnung. 733 00:48:07,490 --> 00:48:09,020 Sehr cool. 734 00:48:09,020 --> 00:48:12,330 Sagen wir einfach, 10. 735 00:48:12,330 --> 00:48:14,900 >> Es ist nicht alles richtig machen Jetzt, da der Aufruf tatsächlich 736 00:48:14,900 --> 00:48:17,770 nicht zur Ausführung von mario ändern. 737 00:48:17,770 --> 00:48:23,470 So hat ein wenig zu wenig seltsam, weil, wenn 738 00:48:23,470 --> 00:48:30,790 wir einen Knopf nach unten drücken, wenn wir drücken Sie eine Taste in der Warnungsansicht, 739 00:48:30,790 --> 00:48:35,560 etwas passieren sollte, aber es nicht geschieht. 740 00:48:35,560 --> 00:48:37,220 Woher wissen wir, dass zu fangen? 741 00:48:37,220 --> 00:48:41,280 Woher wissen wir, dass ein Benutzer hat eine Warnungsansicht entlassen 742 00:48:41,280 --> 00:48:45,630 und bereits eine Nummer eingegeben, weil jetzt nichts tatsächlich passiert. 743 00:48:45,630 --> 00:48:50,450 >> Nun, hätten Sie vermutet, es richtig, Delegation. 744 00:48:50,450 --> 00:48:55,440 So dass zusätzlich zu allen diese Erklärungen, 745 00:48:55,440 --> 00:49:03,190 wir brauchen, um eine neue Delegation hinzufügen es heißt UI Warnungsansicht Delegierten. 746 00:49:03,190 --> 00:49:06,440 So dass jedes einzelne Interaktion oder Veranstaltung 747 00:49:06,440 --> 00:49:10,190 dass wir gehen zu müssen mit dem UI Warnungsansicht 748 00:49:10,190 --> 00:49:14,100 wird zu behandeln von unserer Klasse als gut. 749 00:49:14,100 --> 00:49:26,297 >> So dass zusätzlich zu, dass es werden Warnungsansicht Klick-Taste am Index. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Dies wird erreicht. 752 00:49:37,730 --> 00:49:42,020 Also in diesem Fall haben wir bereits-- so haben wir 753 00:49:42,020 --> 00:49:46,210 ein Protokoll festgestellt, dass wird die Veranstaltung bei der hand 754 00:49:46,210 --> 00:49:51,320 Wir klicken auf die Schaltfläche Fertig auf der Hut Blick. 755 00:49:51,320 --> 00:49:55,976 Also jedes Mal, wir entlassen die Benachrichtigung Ansicht nach sollte dies geschehen. 756 00:49:55,976 --> 00:49:57,350 Lassen Sie mich nur testen Sie es ganz schnell. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Nun ja, wir hier erreicht haben. 759 00:50:19,300 --> 00:50:22,210 >> Hier also, was wir nicht tatsächlich ist eigentlich 760 00:50:22,210 --> 00:50:43,120 erhalten the-- Deshalb wollen wir raus der Text, den wir bisher haben 761 00:50:43,120 --> 00:50:45,350 in der Warnungsansicht eingetragen. 762 00:50:45,350 --> 00:50:48,505 Und basierend auf Text, wir sind gehen zu Mario anzeigen. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Dadurch wird sehr schnell heraus ob es tatsächlich funktioniert oder nicht. 765 00:50:55,480 --> 00:50:59,476 So dass in diesem Fall, wenn wir Eingang, sagen wir mal, 10, 10, wir sollten sehen. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Sehr gut, wir haben hier eine Zahl. 768 00:51:05,210 --> 00:51:06,470 Es ist ziemlich gut. 769 00:51:06,470 --> 00:51:16,840 Jetzt ist der letzte Schritt wird also die be-- letzte Schritt, den wir jetzt tun müssen 770 00:51:16,840 --> 00:51:21,100 befindet sich nur nennen Mario mit Pegel am Eingang der Basis 771 00:51:21,100 --> 00:51:23,270 dass wir in Warnungsansicht setzen. 772 00:51:23,270 --> 00:51:26,920 Also müssen wir wandeln diese Zeichenfolge in iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Statische Überlauf ist sehr genial. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 Und dann nennen wir nur selbst marioWithLevels Wert. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Mal sehen wird, dass tatsächlich funktionieren oder nicht. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Wir sind schon eine Pyramide gegeben. 781 00:52:01,550 --> 00:52:04,785 Lassen Sie uns versuchen, um die Höhe zu ändern. 782 00:52:04,785 --> 00:52:06,530 Dass tatsächlich funktioniert. 783 00:52:06,530 --> 00:52:07,610 Es ist ziemlich cool. 784 00:52:07,610 --> 00:52:10,420 So dass jetzt können Sie nur Eingang jeder gewünschten Wert. 785 00:52:10,420 --> 00:52:12,440 Sagen wir einfach, vier. 786 00:52:12,440 --> 00:52:14,260 Das ist ziemlich genial. 787 00:52:14,260 --> 00:52:17,090 Das ist also im Grunde ein wirklich kleines Beispiel 788 00:52:17,090 --> 00:52:23,170 für wie Sie ein Projekt im s-Code erstellen und wie man ganz schnell verkabeln 789 00:52:23,170 --> 00:52:26,220 einige wirklich einfache Ereignisse und Funktionen. 790 00:52:26,220 --> 00:52:28,840 >> So ist die Quelle wird später online gestellt werden. 791 00:52:28,840 --> 00:52:33,400 Also, wenn Sie daran interessiert sind in wie iOS Mario arbeitet, 792 00:52:33,400 --> 00:52:38,360 Ich werde genau das gleiche setzen Projekte auf den CS50 Website später. 793 00:52:38,360 --> 00:52:41,260 Wir sind im Grunde mit der fertig Sommer, und bevor wir fertig 794 00:52:41,260 --> 00:52:45,190 Ich will einfach nur Jungs, darauf hinzuweisen Sie einige wirklich genial Ressourcen, 795 00:52:45,190 --> 00:52:47,550 sind online verfügbar. 796 00:52:47,550 --> 00:52:52,270 >> Offensichtlich ist der Apple-Dokumentation wird sich als sehr hilfreich. 797 00:52:52,270 --> 00:52:57,630 Aber zusätzlich zu, dass ich vor allem empfehlen vier Quellen, Code-Schule, 798 00:52:57,630 --> 00:53:02,120 Baumhaus, AppCoda und WWDC Videos. 799 00:53:02,120 --> 00:53:07,270 Code Schule und Baumhaus sind zwei Online Erziehungs Websites, 800 00:53:07,270 --> 00:53:10,210 das spezifisch konzentrieren auf Software-Engineering. 801 00:53:10,210 --> 00:53:16,930 Speziell für Code Schule, sie haben wirklich gute Anleitung für iOS. 802 00:53:16,930 --> 00:53:19,550 >> Das ist ein wirklich kleines Beispiel dafür. 803 00:53:19,550 --> 00:53:22,980 Sie tatsächlich eine wirklich cute-- Blick auf das kleine niedliche iPhone 804 00:53:22,980 --> 00:53:24,920 Kerl da drüben, das ist ziemlich genial. 805 00:53:24,920 --> 00:53:31,010 Und die Art, wie sie erklären, Ziel C-Syntax ist vollkommen klar. 806 00:53:31,010 --> 00:53:32,230 Baumhaus ist die gleiche. 807 00:53:32,230 --> 00:53:34,660 Und AppCoda ist ein Forum. 808 00:53:34,660 --> 00:53:38,130 Es ist eigentlich ein Blog, das durchgeführt wurde von einem wirklich erfahrenen Objective C 809 00:53:38,130 --> 00:53:39,120 Programmierer. 810 00:53:39,120 --> 00:53:43,950 Und all die Tutorials in AppCoda sind ziemlich kurz und einfach zu implementieren, 811 00:53:43,950 --> 00:53:45,390 sehr zu empfehlen. 812 00:53:45,390 --> 00:53:47,700 >> Und wenn Sie ein Entwickler sind, jeden Fall prüfen 813 00:53:47,700 --> 00:53:55,660 wie die WWDC Videos, wo man lernen Sie die neueste iOS-Programmierung 814 00:53:55,660 --> 00:53:58,250 Techniken, APIs und Bibliotheken. 815 00:53:58,250 --> 00:54:02,850 Das ist also so ziemlich es für das Seminar. 816 00:54:02,850 --> 00:54:03,820 Vielen Dank. 817 00:54:03,820 --> 00:54:08,040 Und ich hoffe, Sie haben Spaß Erstellen Ihrer eigenen iOS-App. 818 00:54:08,040 --> 00:54:09,302