1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> Rhed SHI: Willkommen siehe CS50 Seminar - 3 00:00:09,800 --> 00:00:11,630 Einführung in iOS. 4 00:00:11,630 --> 00:00:13,290 Ich danke Ihnen allen für Ihr Kommen. 5 00:00:13,290 --> 00:00:16,610 Ich hoffe, Sie sind genauso aufgeregt wie ich bin über iOS. 6 00:00:16,610 --> 00:00:22,300 Letztes Jahr nahm ich CS50 als Sophomore, und ich im Grunde gelernt iOS für meine 7 00:00:22,300 --> 00:00:23,490 Abschlussprojekt. 8 00:00:23,490 --> 00:00:26,350 Und es war schön - 9 00:00:26,350 --> 00:00:30,530 gut, es war nicht einfach, aber es gibt viel Unterstützung Tutorials online. 10 00:00:30,530 --> 00:00:33,760 Und ich hoffe wirklich, dass mit diesem Seminar, gebe ich dir Jungs einen Kopf 11 00:00:33,760 --> 00:00:36,750 beginnen auf iOS-Entwicklung 12 00:00:36,750 --> 00:00:40,490 >> Also, in Bezug auf die iOS-Entwicklung, gibt es zwei Dinge, die wir 13 00:00:40,490 --> 00:00:42,090 wollen heute zu decken. 14 00:00:42,090 --> 00:00:43,290 Erstens, die Sprache - 15 00:00:43,290 --> 00:00:46,650 die Sprache wird sich in sein Objective-C. Wir werden tatsächlich hören 16 00:00:46,650 --> 00:00:47,750 etwas wirklich spannend. 17 00:00:47,750 --> 00:00:51,500 So können Sie die ganze Apple bei Gemeinschaft von Entwicklern und bauen einige 18 00:00:51,500 --> 00:00:52,940 Apps wirklich genial. 19 00:00:52,940 --> 00:00:58,670 >> Auch iOS 7 ist schön, hoffentlich für einige von euch. 20 00:00:58,670 --> 00:01:01,130 Aber es ist umstritten, ich weiß. 21 00:01:01,130 --> 00:01:05,349 Und vor allem, was ich tun möchte, ist Führungs Sie durch Objective-C, und auch 22 00:01:05,349 --> 00:01:10,650 Xcode, das ist der integrierte Entwicklungsumgebung, die du sein wirst 23 00:01:10,650 --> 00:01:13,460 Arbeiten in für iOS. 24 00:01:13,460 --> 00:01:19,140 >> Und so, nur ein Wort auf Objective-C. Im Grunde ist es genau das gleiche wie C, 25 00:01:19,140 --> 00:01:22,790 aber mit einer Menge anderer Dinge. 26 00:01:22,790 --> 00:01:27,710 Und so strenger, es ist eigentlich ein Super-Set von C. Also alles, was Sie 27 00:01:27,710 --> 00:01:32,280 können jetzt in C, das ist im Grunde mag pset 0 bis 6, die Sie 28 00:01:32,280 --> 00:01:34,170 kann in Objective-C zu tun. 29 00:01:34,170 --> 00:01:38,620 >> Also, nicht das Gefühl, Angst, über diese neue Sprache, die Sie gehen zu lernen sind. 30 00:01:38,620 --> 00:01:42,120 Sie haben schon eine Menge davon abgedeckt, weil Sie alles getan haben C am vergangenen 31 00:01:42,120 --> 00:01:45,880 Semester, außer jetzt wirst du viel mehr, mit zu arbeiten. 32 00:01:45,880 --> 00:01:49,270 Und ich bin gerade dabei, ein führen Sie durch paar Beispiele zu einigen markieren 33 00:01:49,270 --> 00:01:53,920 der wichtigsten Unterschiede, die ich fand, waren wirklich wichtig, als ich erfuhr, 34 00:01:53,920 --> 00:01:57,180 Objective-C im letzten Jahr. 35 00:01:57,180 --> 00:02:00,910 >> Naja, eigentlich so, der andere Punkt ist, Objective-C ist, natürlich, 36 00:02:00,910 --> 00:02:02,200 objektorientiert. 37 00:02:02,200 --> 00:02:06,340 Und wir werden ein wenig diskutieren über das, was das bedeutet, dass später. 38 00:02:06,340 --> 00:02:11,340 Im Grunde ist es wie, wie Sie gearbeitet Strukturen in diesem letzten pset, mit 39 00:02:11,340 --> 00:02:13,360 Knoten und ähnliche andere Sachen. 40 00:02:13,360 --> 00:02:17,110 Außer in Objective-C, alles ist ein Objekt, und du gehst zu 41 00:02:17,110 --> 00:02:20,720 vorbei um Zeiger auf Objekte anstatt die Werte selber. 42 00:02:20,720 --> 00:02:25,050 Also, es ist nur etwas, was wichtig im Auge zu behalten. 43 00:02:25,050 --> 00:02:29,140 >> Also, warum fangen wir nicht mit ein paar Unterschiede in der Syntax zwischen C und 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Ich möchte hervorheben # include, Sie wissen, Standard io.h in C und C + +, mit 46 00:02:38,310 --> 00:02:44,030 die Objective-C-Version, dass die # import ist, und dann eine Art 47 00:02:44,030 --> 00:02:44,790 Header-Datei. 48 00:02:44,790 --> 00:02:48,165 In diesem Fall wäre es UIKit sein, Sie wissen, Schrägstrich UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Es könnte auch sein, wissen Sie, MKMapView Schrägstrich, um Sie, wenn Sie wollen MKMapview.h 50 00:02:53,560 --> 00:02:56,370 zu tun, wie, die Karte innerhalb der App. 51 00:02:56,370 --> 00:02:57,110 Ähnliche Dinge. 52 00:02:57,110 --> 00:03:01,250 >> Also, das Wichtigste ist, sind hat sich nun geändert zu importieren. 53 00:03:01,250 --> 00:03:04,340 Aber die Idee bleibt. 54 00:03:04,340 --> 00:03:10,460 Du wirst eine Art Import werden der Header-Datei in Ihr Programm. 55 00:03:10,460 --> 00:03:14,550 >> Ich möchte auch den Unterschied markieren zwischen printf und NSLog. 56 00:03:14,550 --> 00:03:19,760 Allerdings, wie wir früher gesagt, Objective-C ist eine strenge Super-Satz von 57 00:03:19,760 --> 00:03:22,800 C, was bedeutet, dass printf besteht in Objective-C, auch. 58 00:03:22,800 --> 00:03:24,340 Aber die meisten Menschen nicht mit, dass. 59 00:03:24,340 --> 00:03:28,245 Die meisten Menschen nutzen diese, weil es NSLog gibt Ihnen einen Zeitstempel, und wir werden sehen 60 00:03:28,245 --> 00:03:29,780 es später in Aktion. 61 00:03:29,780 --> 00:03:33,560 Aber, es ist in der Regel ein nützlicher Weg zum ausdrucken Variablen. 62 00:03:33,560 --> 00:03:38,220 >> Und ich möchte auch, dass markieren NSLog erfolgt in genau der gleichen 63 00:03:38,220 --> 00:03:41,650 Platzhalterwerte wie printf tut - 64 00:03:41,650 --> 00:03:45,900 so% d ist für einen int, % F ist für einen Schwimmer. 65 00:03:45,900 --> 00:03:49,750 Aber ich will hervorheben Diese allerletzte - 66 00:03:49,750 --> 00:03:52,960 NSLog% zu unterzeichnen - 67 00:03:52,960 --> 00:03:55,390 das ist ein Platzhalter für ein Objekt. 68 00:03:55,390 --> 00:04:01,160 Und wie ich bereits sagte, Objective-C Angebote so ziemlich allem in Objekten, 69 00:04:01,160 --> 00:04:05,020 und so wird dies in Gebrauch kommen, wenn Sie ausdrucken, vielleicht, vielleicht wollen ein 70 00:04:05,020 --> 00:04:08,390 NSArray oder NSDictionary, oder eine NSString. 71 00:04:08,390 --> 00:04:13,750 >> Also, auch feststellen, dass in unserer NSLog Aussage, haben wir ein at-Zeichen vor 72 00:04:13,750 --> 00:04:15,380 des Angebots - 73 00:04:15,380 --> 00:04:20,769 das heißt, dass die Saiten bedeuten, jetzt, in Objective-C sind Objekte. 74 00:04:20,769 --> 00:04:23,310 Sie sind nicht mehr einfach char Sterne. 75 00:04:23,310 --> 00:04:25,530 Sie sind Objekte und sind als solche behandelt. 76 00:04:25,530 --> 00:04:28,690 >> Also, es ist wirklich wichtig, dass, wenn Sie verwenden NSLog es dauert, in einem NS- 77 00:04:28,690 --> 00:04:32,580 string, was bedeutet, dass müssen Sie eine zumin vor sind Ihre 78 00:04:32,580 --> 00:04:34,270 Anführungszeichen. 79 00:04:34,270 --> 00:04:38,290 Und deshalb sehen Sie, hier, in allen meine Funktion ruft zu diesem NSLog, ich 80 00:04:38,290 --> 00:04:42,400 eine zumin vor der Zitate, auch obwohl die% d% f und die sind 81 00:04:42,400 --> 00:04:45,200 alle gleich aus C. 82 00:04:45,200 --> 00:04:47,930 >> Haben Sie Fragen so weit? 83 00:04:47,930 --> 00:04:50,920 Ich werde versuchen, durch diese so schnell gehen dass wir mehr Zeit, um zu arbeiten 84 00:04:50,920 --> 00:04:55,210 mit Xcode und Objective-C, so dass Sie Jungs können mehr bekommen 85 00:04:55,210 --> 00:04:57,630 mit ihm vertraut. 86 00:04:57,630 --> 00:05:01,900 >> Als nächstes möchte ich etwas hervorheben konzeptionell wichtig. 87 00:05:01,900 --> 00:05:05,130 Also, in C, die meisten Dinge sind Funktionen. 88 00:05:05,130 --> 00:05:06,280 Wir machen einen Funktionsaufruf. 89 00:05:06,280 --> 00:05:10,190 Wir erklären Funktionen auf diese Weise, mit die Rück ersten geben, dann die 90 00:05:10,190 --> 00:05:13,570 Funktionsnamen, Klammern und dann unabhängig Argumente und die Art der 91 00:05:13,570 --> 00:05:15,590 diese Argumente, die wir weitergeben wollen in. 92 00:05:15,590 --> 00:05:19,970 Und Objective-C, denn alles ist ein Objekt oder Klasse - 93 00:05:19,970 --> 00:05:23,970 so Klasse und Objekt sind zwei Begriffe, die meist auch miteinander, 94 00:05:23,970 --> 00:05:28,270 so ich sie synonym verwenden während des Seminars. 95 00:05:28,270 --> 00:05:34,090 >> Aber, sehen Sie, dass wir Methoden in Objective-C und nicht Funktionen. 96 00:05:34,090 --> 00:05:36,390 Und Methoden gehören zu Objekten. 97 00:05:36,390 --> 00:05:38,950 So wie, vielleicht nehmen beispielsweise Knoten - 98 00:05:38,950 --> 00:05:40,250 unsere Art [unverständlich] 99 00:05:40,250 --> 00:05:44,390 Knoten aus pset 6 oder 5 - 100 00:05:44,390 --> 00:05:49,590 Wir haben das Wort, Immobilien, oder der nächste Knoten-Zeiger. 101 00:05:49,590 --> 00:05:53,880 Methoden sind einfach Funktionen innerhalb der eine Art von Struktur. 102 00:05:53,880 --> 00:05:57,510 >> So, in diesem Fall die Struktur wäre das Objekt, und das Verfahren ist 103 00:05:57,510 --> 00:05:59,260 etwas, das zu einem Objekt gehört. 104 00:05:59,260 --> 00:06:02,650 Und das ist, wie würden Sie erklären, Art, eine Methode. 105 00:06:02,650 --> 00:06:07,990 Sie würden mit wieder die Rückkehr zu starten Typ - so habe ich versucht, Farb 106 00:06:07,990 --> 00:06:12,990 codieren die Schlüsselwörter hier, so dass Sie Jungs können die zumindest Formatierung siehe 107 00:06:12,990 --> 00:06:17,650 Ähnlichkeiten zwischen Funktion Erklärungen und Methodendeklarationen. 108 00:06:17,650 --> 00:06:21,990 Also, beginnen Sie mit, Sie wissen, eine Rückkehr Art - in diesem Fall ist es ein Array oder 109 00:06:21,990 --> 00:06:23,910 ein NSArray Zeiger - 110 00:06:23,910 --> 00:06:26,710 und dann muss man diese Methode. 111 00:06:26,710 --> 00:06:30,900 Und dann, was ist interessant, hier ist dass anstelle der mit Klammern, wir 112 00:06:30,900 --> 00:06:32,900 haben diese Doppelpunkte. 113 00:06:32,900 --> 00:06:38,450 Und dann, vor der unsere Argumente, die wir setzen, wieder, in Klammern die Art 114 00:06:38,450 --> 00:06:39,370 unserer Argumentation. 115 00:06:39,370 --> 00:06:43,160 >> Also, im Moment bin ich versucht, um die Vergleich zwischen, wissen Sie, n und 116 00:06:43,160 --> 00:06:45,450 Nummer, weil sie beide wie ints. 117 00:06:45,450 --> 00:06:49,580 Und dann die andere ist eine Art NSUInteger. 118 00:06:49,580 --> 00:06:56,390 Und dann, mit Objective-C, wenn Sie möchten mehrere Argumente haben 119 00:06:56,390 --> 00:07:00,030 Ihre Methode Klausel, Sie, eine Art, trennen sie aus der Art wie diese - 120 00:07:00,030 --> 00:07:03,790 Ich bin mir nicht ganz sicher, wie ich es beschreiben soll, aber das ist ein gutes Beispiel, wie Sie 121 00:07:03,790 --> 00:07:06,530 kann mehrere Argumente in dort haben. 122 00:07:06,530 --> 00:07:10,360 >> Man könnte natürlich einfach total ignorieren die andArray Doppelpunkt NSArray 123 00:07:10,360 --> 00:07:13,240 Array, wenn Sie nur eine Methode gesucht das dauert in ein Argument. 124 00:07:13,240 --> 00:07:13,677 Ja, Frage. 125 00:07:13,677 --> 00:07:18,701 >> ZIELGRUPPE: Sind beide NSUInteger und NSArray Argumente, die ergriffen werden können, 126 00:07:18,701 --> 00:07:21,530 innerhalb der NSArray? 127 00:07:21,530 --> 00:07:22,060 >> Rhed SHI: Ja. 128 00:07:22,060 --> 00:07:23,400 Also, lassen Sie mich erklären. 129 00:07:23,400 --> 00:07:23,790 Also, ja. 130 00:07:23,790 --> 00:07:30,260 So, das war die Frage, sind NSUInteger und NSArray * Typen der Argumente, 131 00:07:30,260 --> 00:07:31,570 und das ist richtig. 132 00:07:31,570 --> 00:07:35,700 Also, Sie wollen immer was geben die Art der Ihr Argument ist. 133 00:07:35,700 --> 00:07:41,570 Und hier, ich versuche Ihnen vorstellen etwas von der Syntax und Vokabeln von 134 00:07:41,570 --> 00:07:45,910 Objective-C, so dass die tatsächlichen Typen sind dass Sie zu tun haben werden. 135 00:07:45,910 --> 00:07:48,970 >> Und so werden Sie feststellen, Arrays nicht mehr, eine Art, 136 00:07:48,970 --> 00:07:50,780 einfache Halterung Dinge. 137 00:07:50,780 --> 00:07:52,060 Sie sind Objekte. 138 00:07:52,060 --> 00:07:56,700 Obwohl, wenn wir gehen in die nächste Rutsche, können wir sehen, dass wir 139 00:07:56,700 --> 00:08:02,510 Hard-Code ein NSArray in Objective-C mit einfach am Symbol vor 140 00:08:02,510 --> 00:08:04,190 die Klammern. 141 00:08:04,190 --> 00:08:08,650 Ich bin nicht, eigentlich, ganz sicher, ob Ich syntaktisch hart codiert ein Array 142 00:08:08,650 --> 00:08:16,020 richtig für die C-Version, aber das ist soll in einem C-Array sein. 143 00:08:16,020 --> 00:08:19,760 >> Also, das ist, wie würden Sie, wissen Sie, vielleicht die Funktionen oder verwenden Sie die 144 00:08:19,760 --> 00:08:21,990 Methoden, die wir zuvor erstellt haben. 145 00:08:21,990 --> 00:08:22,250 Right? 146 00:08:22,250 --> 00:08:25,340 Also, das ist, wo wir erklären unsere Funktion und unsere Methode. 147 00:08:25,340 --> 00:08:28,020 Und nun, um sie in die wir nutzen wollen Programm, und dies 148 00:08:28,020 --> 00:08:29,450 wie wir es tun. 149 00:08:29,450 --> 00:08:32,400 Also, in C, würden Sie haben, wissen Sie, vielleicht, ein bool b und setzen Sie es 150 00:08:32,400 --> 00:08:36,549 gleich die Funktion und dann Sie in den Argumenten übergeben. 151 00:08:36,549 --> 00:08:39,190 >> In Objective-C, ist es ziemlich viel die gleiche Sache. 152 00:08:39,190 --> 00:08:43,370 Sie haben NSArray * my_array, und es ist werde gleich - nun, das einzige 153 00:08:43,370 --> 00:08:47,460 Unterschied hier ist, was dieses Objekt, was ich in gelb markiert, und 154 00:08:47,460 --> 00:08:51,180 wie Sie sehen können, in C, es gibt kein anderes Wort gelb. 155 00:08:51,180 --> 00:08:54,170 Und es ist, weil Methoden gehören mit einem bestimmten Objekt. 156 00:08:54,170 --> 00:08:59,800 Also das ist, warum ich brauche, um ein Objekt haben dass, irgendwie, ruft diese Methode auf 157 00:08:59,800 --> 00:09:04,360 die Zahl Null, und dann die NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 Haben Sie Fragen dazu? 159 00:09:05,350 --> 00:09:12,190 >> Wir werden diese Konzepte in Aktion zu sehen ziemlich bald, wenn wir in einer Demo zu gehen. 160 00:09:12,190 --> 00:09:13,400 OK. 161 00:09:13,400 --> 00:09:17,170 Nun möchte ich ein wenig kurz sprechen Xcode über 5, die ist 162 00:09:17,170 --> 00:09:21,160 integrierte Entwicklungsumgebung dass Sie mit arbeiten. 163 00:09:21,160 --> 00:09:26,160 Ich kenne viele von Ihnen, oder einige von euch, nicht über Mac, was ein Problem ist 164 00:09:26,160 --> 00:09:30,490 weil Xcode ist nicht verfügbar für Windows und PC. 165 00:09:30,490 --> 00:09:32,785 Fragen Sie mich nicht warum, aber wahrscheinlich - 166 00:09:32,785 --> 00:09:33,730 ja, corporate. 167 00:09:33,730 --> 00:09:35,290 Was auch immer. 168 00:09:35,290 --> 00:09:39,360 Aber trotzdem, so, ich entschuldige mich, wenn einige Sie haben eine Art von Download 169 00:09:39,360 --> 00:09:43,000 virtuelle Maschine für Mac Um Xcode 5 laufen. 170 00:09:43,000 --> 00:09:46,460 Aber es ist eine ziemlich raffinierte Software zu verwenden. 171 00:09:46,460 --> 00:09:51,280 >> Und so, bevor wir tauchen ein in jeder Art der Demo, ich will dir nur zeigen, eine 172 00:09:51,280 --> 00:09:55,700 Bild von Xcode sieht aus wie in Ihrem Fenster, und dann auch noch darüber zu sprechen 173 00:09:55,700 --> 00:09:57,670 was dieser ganze Raum ist. 174 00:09:57,670 --> 00:10:01,600 Also, es ist eine Art, wie Lernen, wie man Microsoft Word, außer Sie wollen 175 00:10:01,600 --> 00:10:04,675 mit allem vertraut zu machen verschiedene Dinge, die 176 00:10:04,675 --> 00:10:06,250 werden hier los ist. 177 00:10:06,250 --> 00:10:11,160 >> Also zuerst möchte ich Sie darauf auf der Symbolleiste am oberen Rand. 178 00:10:11,160 --> 00:10:14,450 Sie werden sehen, dass an der Spitze, Sie werden die Dateinamen haben - 179 00:10:14,450 --> 00:10:18,100 oder, eigentlich, Projektnamen und dann Ihr Dateinamen. 180 00:10:18,100 --> 00:10:20,940 Beachten Sie die Spiel-und die Aus-Taster. 181 00:10:20,940 --> 00:10:24,210 Das sind diejenigen, die Sie sein verwenden, um Ihre App auf dem laufen 182 00:10:24,210 --> 00:10:25,600 Simulator - 183 00:10:25,600 --> 00:10:26,550 die iOS-Simulator. 184 00:10:26,550 --> 00:10:29,940 Das kommt automatisch mit Xcode 5, so dass Sie sich keine Sorgen zu machen 185 00:10:29,940 --> 00:10:32,070 Herunterladen eine Art Simulator. 186 00:10:32,070 --> 00:10:34,700 Drücken Sie einfach Spiel und dann läuft er Ihre App. 187 00:10:34,700 --> 00:10:39,230 Und Sie können spielen, um mit Ihnen, und Sie werden sehen, wie es funktioniert später. 188 00:10:39,230 --> 00:10:42,690 >> Und dann, in der Mitte, ist natürlich , wo alle Ihre schönen Code ist 189 00:10:42,690 --> 00:10:44,240 gehen wird. 190 00:10:44,240 --> 00:10:48,340 Und dann, auf der linken Seite, werden Sie über diese, Art, Ordner - 191 00:10:48,340 --> 00:10:50,340 Navigation - 192 00:10:50,340 --> 00:10:53,970 und dann werden Sie auch sehen, dass, zusammen mit dem Ordnersymbol, gibt es eine 193 00:10:53,970 --> 00:10:57,680 Reihe von anderen Symbolen gibt, die wird später nützlich sein. 194 00:10:57,680 --> 00:11:04,710 >> Und dann auf der rechten Seite ist ein Dienstprogramm Bereich, in dem Sie arbeiten können 195 00:11:04,710 --> 00:11:09,620 einige der Objekte, und geben Sie wissen, was die Farbe sein sollte, was 196 00:11:09,620 --> 00:11:12,040 die Schriftart sollte, et cetera. 197 00:11:12,040 --> 00:11:15,890 Obwohl alles, was Sie tun im Utility-Bereich, können Sie 198 00:11:15,890 --> 00:11:17,480 tun in Code. 199 00:11:17,480 --> 00:11:21,630 Und so werde ich durch zwei gehen werden Beispiele für die Verwendung, einfach, keinen Code 200 00:11:21,630 --> 00:11:23,730 Alles - oder sehr wenig Code - 201 00:11:23,730 --> 00:11:28,290 Verse gesamten Code, gerade so, dass ihr Jungs wissen, was Sie können und was nicht zu tun 202 00:11:28,290 --> 00:11:29,260 Xcode und Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> Und dann, endlich, unten an der Unterseite, Sie haben die Debug-Bereich. 204 00:11:32,770 --> 00:11:37,270 Also, Sie müssen nicht mehr GDB laufen, et cetera, auf Ihren Programmen. 205 00:11:37,270 --> 00:11:39,180 Er tut es automatisch für Sie. 206 00:11:39,180 --> 00:11:42,880 Und Sie können auch drucken Sachen zu diesem Bereich. 207 00:11:42,880 --> 00:11:46,790 Also eigentlich, später, wir gehen durch mario.c, wenn euch noch daran erinnern, 208 00:11:46,790 --> 00:11:49,000 dass in Xcode. 209 00:11:49,000 --> 00:11:50,360 Damit soll Spaß machen. 210 00:11:50,360 --> 00:11:55,870 >> Und dann, nur um es zurück zu bringen Objective-C, möchte ich hervorheben, was 211 00:11:55,870 --> 00:11:57,440 Sie mit, wenn Aussagen machen kann. 212 00:11:57,440 --> 00:12:03,160 Also, wissen Sie, da Objective-C ist eine Obermenge von C, alles, was Sie tun, ist, 213 00:12:03,160 --> 00:12:06,890 wörtlich die gleichen wie C. Sie nur haben leichte Unterschiede. 214 00:12:06,890 --> 00:12:10,810 Also, werden Sie das Formular für eine if bemerken Aussage ist immer noch das gleiche - man muss 215 00:12:10,810 --> 00:12:14,280 wenn, dann haben Sie mit Klammern ein Zustand, der im Inneren, und dann 216 00:12:14,280 --> 00:12:17,150 geschweiften Klammern für was Sie wollen innerhalb von dort zu tun. 217 00:12:17,150 --> 00:12:21,680 >> , Diese Folie nach oben setzen jedoch wollte ich hier einfach zu veranschaulichen, 218 00:12:21,680 --> 00:12:25,680 weil wir jetzt mit Objekten zu tun haben, wir müssen diese Dinge verwenden 219 00:12:25,680 --> 00:12:31,240 wie genannt, ist gleich-String, der ist, zufällig, ein Verfahren der ein 220 00:12:31,240 --> 00:12:33,710 String oder ein NSString-Objekt. 221 00:12:33,710 --> 00:12:38,600 So, Wort, in diesem Fall ist ein NSString Objekt, und es ist eine Methode namens hat 222 00:12:38,600 --> 00:12:44,150 gleich string, und dann sind wir vorbei in einem hartcodierte Zeichenfolge zu sehen 223 00:12:44,150 --> 00:12:48,110 ob diese gleich sind zueinander. 224 00:12:48,110 --> 00:12:51,580 >> Haben Sie Fragen so weit? 225 00:12:51,580 --> 00:12:52,440 OK. 226 00:12:52,440 --> 00:12:56,190 Und, ich will gehen über eine Erklärung auch für. 227 00:12:56,190 --> 00:13:01,420 >> So, zum Beispiel, wenn man wollte Schleifen über der Länge einer Zeichenkette in C, diese 228 00:13:01,420 --> 00:13:03,710 sollten Ihnen vertraut sein. 229 00:13:03,710 --> 00:13:07,840 Und in Objective-C, ich will auf diese Art von zu markieren,, 230 00:13:07,840 --> 00:13:09,235 Methode namens Count. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Na ja, eigentlich, lassen Sie mich nur nehme das zurück. 233 00:13:15,550 --> 00:13:17,200 Zahl ist eine Methode der Anordnung. 234 00:13:17,200 --> 00:13:21,070 Allerdings ist es insbesondere ein Eigentum des Array, das ist, warum Sie 235 00:13:21,070 --> 00:13:22,380 können die Punktnotation zu verwenden. 236 00:13:22,380 --> 00:13:25,870 Aber ich will nicht zu sehr ins bekommen Diese Konzeption Zeug, ich will nur 237 00:13:25,870 --> 00:13:30,140 um Ihnen zu zeigen, wie die Dinge aussehen würde wie in Objective-C gegenüber C. 238 00:13:30,140 --> 00:13:35,400 >> Und auch, ich möchte darauf hinweisen, dass obwohl ich habe mit NSUInteger 239 00:13:35,400 --> 00:13:39,860 vor allem meine ich in Objective-C, Sie können auch int, int, da ist 240 00:13:39,860 --> 00:13:42,290 in Objective-C völlig gültig ist, auch. 241 00:13:42,290 --> 00:13:42,475 Ja? 242 00:13:42,475 --> 00:13:44,350 >> ZIELGRUPPE: Ist es nur stilistischen oder ist - 243 00:13:44,350 --> 00:13:44,760 >> Rhed SHI: Ja. 244 00:13:44,760 --> 00:13:46,060 Also, wie Sie sehen werden - 245 00:13:46,060 --> 00:13:49,390 ja, die Frage war, ist, dass nur eine stilistische Frage. 246 00:13:49,390 --> 00:13:54,820 Wie Sie sehen, habe ich eine, irgendwie, Stern Sternchen, was sich an der Unterseite, und 247 00:13:54,820 --> 00:13:59,870 dieser Link führt Sie zu einer Stack-Überlauf zu bilden, wo jemand erklärt 248 00:13:59,870 --> 00:14:03,640 der Unterschied zwischen einem int in NSInteger und ein NSUInteger. 249 00:14:03,640 --> 00:14:05,540 Und so, dass Sie später lesen kann. 250 00:14:05,540 --> 00:14:07,640 Diese Folien werden natürlich zur Verfügung. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Mal sehen. 253 00:14:11,280 --> 00:14:12,150 OK, genial. 254 00:14:12,150 --> 00:14:15,410 So ist dies auch in der Folie enthalten weil ich dachte, das war ein großer 255 00:14:15,410 --> 00:14:19,370 Website, die Sie führt Objective-C-Syntax. 256 00:14:19,370 --> 00:14:24,410 Also, eigentlich, warum wir nicht zu bewegen Chrome und überprüfen Sie diese Website? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Richtig. 259 00:14:31,300 --> 00:14:36,670 Also, was ich möchte Ihnen zeigen, Jungs hier ist dieses Bild. 260 00:14:36,670 --> 00:14:41,630 Also, das ist, irgendwie, das sein, was Sie gehen zu einem von innen sehen 261 00:14:41,630 --> 00:14:42,890 Xcode-Datei. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 Eigentlich nicht, warum wir nicht nur ein Moment, irgendwie, nehmen diese in. 264 00:14:51,430 --> 00:14:53,470 >> Also, dieses Buch - 265 00:14:53,470 --> 00:14:55,880 das ist das Objekt, das wir es zu tun haben. 266 00:14:55,880 --> 00:14:59,680 Und dann ist es offensichtlich sein wird von einem anderen Objekt geerbt, aber 267 00:14:59,680 --> 00:15:01,810 Sie müssen nicht Sorgen machen. 268 00:15:01,810 --> 00:15:04,430 Und dann, vielleicht hat einige Mitgliedsvariablen. 269 00:15:04,430 --> 00:15:09,160 >> Das Wichtigste, was ich möchte Ihnen zeigen, ist die Instanz-Methoden, hier. 270 00:15:09,160 --> 00:15:12,670 Also, Instanz-Methoden bezeichnet werden dieses Minus-Zeichen. 271 00:15:12,670 --> 00:15:15,550 Und dann, als Sie feststellen, wir sind bereits ab, das Paradigma zu sehen 272 00:15:15,550 --> 00:15:17,670 Verfahren zur Erklärung, oder? 273 00:15:17,670 --> 00:15:22,670 Der Rückgabetyp, der Name der Methode, und dann wird der Typ des Arguments, und 274 00:15:22,670 --> 00:15:24,660 dann wird der Name des Arguments. 275 00:15:24,660 --> 00:15:29,090 Und das Minus-Zeichen bedeutet, dass es ein B. Verfahren, was bedeutet, dass 276 00:15:29,090 --> 00:15:32,270 Diese Methoden sind nur zur Verfügung Objekte, die instanziiert haben. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Um das zu kontrastieren, Methoden mit einem Plus Zeichen vor ihnen sind Klasse 279 00:15:39,100 --> 00:15:43,640 Methoden, was bedeutet, dass Sie anrufen diese Methoden, auch wenn Sie nicht über 280 00:15:43,640 --> 00:15:45,970 noch ein Objekt erstellt. 281 00:15:45,970 --> 00:15:51,600 Also, für ein klares Beispiel NSString ist eine Klasse. 282 00:15:51,600 --> 00:15:55,850 Und Sie können uns anrufen, zum Beispiel, Klassenmethoden auf NSString - 283 00:15:55,850 --> 00:15:58,660 die tatsächliche, wie, Wort NSString. 284 00:15:58,660 --> 00:16:02,050 >> Jedoch, um diese zu verwenden Methoden, die Sie tatsächlich 285 00:16:02,050 --> 00:16:03,460 benötigen, um eine Zeichenfolge zu erstellen. 286 00:16:03,460 --> 00:16:08,980 Zum Beispiel NSString Sterne Zeichenfolge entspricht in Anführungszeichen, hallo Welt. 287 00:16:08,980 --> 00:16:10,910 Und dann können Sie diese Methoden verwenden - 288 00:16:10,910 --> 00:16:11,990 Instanz-Methoden - 289 00:16:11,990 --> 00:16:14,790 Hallo Welt auf diesem String. 290 00:16:14,790 --> 00:16:17,825 Also, das ist der Unterschied zwischen Instanzmethoden und Klassenmethoden. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> Und, wir haben nur diesen Teil abgedeckt. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Immobilien sind eine andere Sache, die sind innerhalb von Objekten, im Grunde. 295 00:16:33,750 --> 00:16:37,530 Und Sie ihnen erklären, die auf Objekt-Schlüsselwort. 296 00:16:37,530 --> 00:16:39,940 Sie haben folgende Optionen, hier, dass ich später erklären, wenn 297 00:16:39,940 --> 00:16:43,110 wir gehen in eine Demo. 298 00:16:43,110 --> 00:16:43,660 Ja? 299 00:16:43,660 --> 00:16:43,950 Hallo. 300 00:16:43,950 --> 00:16:45,440 >> ZIELGRUPPE: Könnten Sie vergrößern, bitte? 301 00:16:45,440 --> 00:16:46,130 >> Rhed SHI: Oh ja. 302 00:16:46,130 --> 00:16:46,560 Entschuldigung. 303 00:16:46,560 --> 00:16:49,140 >> ZIELGRUPPE: Danke. 304 00:16:49,140 --> 00:16:50,005 >> Rhed SHI: Das sollte viel besser sein. 305 00:16:50,005 --> 00:16:51,240 >> ZIELGRUPPE: Ja. 306 00:16:51,240 --> 00:16:53,940 Danke. 307 00:16:53,940 --> 00:16:56,815 >> Rhed SHI: Ja, erinnern Sie mich bitte, wenn Ich vergessen zu vergrößern oder zu verkleinern. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Also, das ist alles was ich wollte Ihnen für zeigen - 310 00:17:03,570 --> 00:17:05,970 whoa, das ist eine Menge - 311 00:17:05,970 --> 00:17:06,790 für diese Website. 312 00:17:06,790 --> 00:17:12,210 Also, lasst uns zurück zu unserer Folien zu gehen. 313 00:17:12,210 --> 00:17:17,819 >> Eigentlich jetzt einen Moment Zeit nehmen lassen in eine Demo zu tauchen. 314 00:17:17,819 --> 00:17:25,490 Also, wir beginnen mit einem neue Xcode-Projekt. 315 00:17:25,490 --> 00:17:33,040 Also, wenn Sie auf alle Xcode öffnen Ihre Maschinen sollte es dauern, einige 316 00:17:33,040 --> 00:17:36,720 Seite, wo es heißt, wie, entweder offen bis ein vorhandenes Projekt oder eine neue 317 00:17:36,720 --> 00:17:39,230 Projekt, und Sie sollten klicken Sie auf ein neues Projekt. 318 00:17:39,230 --> 00:17:41,477 Und dann sollte es dauern, Sie zu diesem Bildschirm. 319 00:17:41,477 --> 00:17:41,593 Ja? 320 00:17:41,593 --> 00:17:44,279 >> ZIELGRUPPE: Wenn wir nicht einen Mac, wir nur irgendwie entspannen? 321 00:17:44,279 --> 00:17:46,870 >> Rhed SHI: Oder schauen Sie auf mit jemandem, ja. 322 00:17:46,870 --> 00:17:47,740 Ja. 323 00:17:47,740 --> 00:17:50,660 Sie können zu chillen. 324 00:17:50,660 --> 00:17:51,570 OK. 325 00:17:51,570 --> 00:17:55,410 >> Also, was wir zuerst tun, jetzt, ist, eigentlich, wir werden tun, eine 326 00:17:55,410 --> 00:17:56,600 Einzelansicht-Anwendung. 327 00:17:56,600 --> 00:18:01,340 Also, wenn Sie feststellen, was ist toll über Xcode und Apple Unterstützung für 328 00:18:01,340 --> 00:18:05,690 Entwickler ist, dass Sie eine Menge haben Vorlagen mit bereits arbeiten. 329 00:18:05,690 --> 00:18:09,210 Sie könnten zum Beispiel, machen Sie eine Master-Detail-Anwendung. 330 00:18:09,210 --> 00:18:10,920 Sie können ein Spiel zu machen - 331 00:18:10,920 --> 00:18:13,860 und tatsächlich, ich werde nicht in die Spiele gehen, denn Spiele sind eine andere Geschichte 332 00:18:13,860 --> 00:18:15,320 für iOS-Entwicklung. 333 00:18:15,320 --> 00:18:18,930 Und sie sind Art zu trennen, so werde ich nicht darauf eingehen. 334 00:18:18,930 --> 00:18:22,580 >> Dann haben Sie seitenbasierten Anwendungen. 335 00:18:22,580 --> 00:18:24,010 Sie haben eine Registerkarte Anwendung - 336 00:18:24,010 --> 00:18:29,350 so wie beispielsweise die Bank of America hat wahrscheinlich, wie, eine Tabbed-App. 337 00:18:29,350 --> 00:18:32,140 Es ist die, wo man die Tasten an der Unterseite. 338 00:18:32,140 --> 00:18:34,750 Und dann haben Sie ein Sprite Kit-Spiel. 339 00:18:34,750 --> 00:18:38,670 >> Oder Sie von Grund arbeiten können, die ist das, was wir später tun. 340 00:18:38,670 --> 00:18:42,470 Aber lassen Sie uns zunächst mit zu beginnen eine einheitliche Sicht-Anwendung. 341 00:18:42,470 --> 00:18:48,590 Dann werde es für ein Produkt Namen, und wir können nur tun, Test. 342 00:18:48,590 --> 00:18:50,190 Name der Organisation - 343 00:18:50,190 --> 00:18:54,140 so, Name der Organisation, Unternehmenskennung - 344 00:18:54,140 --> 00:18:58,100 die sind wichtig, wenn du gehst Ihre App im App Store gestellt. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Andere als die, wird der Code werde laufen, ohne dass dies absolut in Ordnung. 347 00:19:05,116 --> 00:19:09,940 >> Dies wird wichtig sein, wenn Sie wollen - so, per se, wie, legen Sie Ihre App 348 00:19:09,940 --> 00:19:14,080 auf Ihr Telefon oder so etwas, und Test Sie es aus, Sie wissen, im richtigen Leben - 349 00:19:14,080 --> 00:19:15,360 Dies wird wichtig sein. 350 00:19:15,360 --> 00:19:20,110 Dies neigt dazu, in der Regel zugeordnet sein eine Art Entwickler-Konto 351 00:19:20,110 --> 00:19:20,970 mit Apple. 352 00:19:20,970 --> 00:19:24,740 >> Und ja, ich weiß, wahrscheinlich viele von euch wird keine Entwicklerkonten. 353 00:19:24,740 --> 00:19:26,460 Ich weiß, hat die Universität ein. 354 00:19:26,460 --> 00:19:27,630 Ich denke, CS hat einen. 355 00:19:27,630 --> 00:19:32,770 Aber können Sie mich emailen und ich werde versuchen um das herauszufinden für Sie. 356 00:19:32,770 --> 00:19:38,210 Aber jetzt habe ich gerade auf in Platzhalter einige Dinge hier. 357 00:19:38,210 --> 00:19:41,250 >> Und Sie können natürlich auch hier, wählen Sie ob Sie wollen, dass es allein in sein 358 00:19:41,250 --> 00:19:44,410 iPhone, iPad in, oder beides - 359 00:19:44,410 --> 00:19:46,630 universelle Anwendung. 360 00:19:46,630 --> 00:19:56,170 So, jetzt, lass es uns tun universal, nur beide Seiten der Plattform anzusehen. 361 00:19:56,170 --> 00:19:57,120 >> Mal sehen. 362 00:19:57,120 --> 00:20:01,510 So, jetzt werde ich, um zu speichern es in einer Art Ordner. 363 00:20:01,510 --> 00:20:04,500 Egal, wo - man immer bewegen Sie es später. 364 00:20:04,500 --> 00:20:09,380 Und jetzt haben wir gebracht werden, unsere Xcode-Projekt. 365 00:20:09,380 --> 00:20:12,890 Ich würde nicht über all dies zu kümmern. 366 00:20:12,890 --> 00:20:17,510 Ich würde vorschlagen, nicht jede Berührung dies, wenn Sie genau wissen, was 367 00:20:17,510 --> 00:20:18,260 Sie tun. 368 00:20:18,260 --> 00:20:21,750 Also, all das, einfach ignorieren in den meisten Fällen. 369 00:20:21,750 --> 00:20:26,940 Sie müssen nicht, sie zu berühren, und wenn Sie tun Sie mess up einige Dinge hier, es 370 00:20:26,940 --> 00:20:28,600 wird ein wenig schwierig. 371 00:20:28,600 --> 00:20:32,480 >> Also, warum wir nicht zu schauen Die Dateien auf der 372 00:20:32,480 --> 00:20:34,700 linke Seite in unserem Navigator. 373 00:20:34,700 --> 00:20:37,060 Hier haben wir AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 Wir haben AppDelegate.m So, wie Sie Ankündigung haben wir Dateien, Header, 375 00:20:43,430 --> 00:20:45,720 enden in Punkt h, und wir haben Umsetzung - 376 00:20:45,720 --> 00:20:46,970 tatsächlich, lassen Sie mich zoomen 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 OK. 379 00:20:57,060 --> 00:20:59,940 Lassen Sie mich zoomen 380 00:20:59,940 --> 00:21:05,810 >> Richtig, so dass Sie Dateien und Header haben Sie Implementierungsdateien. 381 00:21:05,810 --> 00:21:07,060 Eigentlich - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 OK. 384 00:21:09,240 --> 00:21:11,800 Dies ist ein wenig seltsam, aber Geduld mit mir. 385 00:21:11,800 --> 00:21:16,140 Dann, weil wir eine einheitliche Sicht gewählt Anwendung, werden wir zu sein 386 00:21:16,140 --> 00:21:17,340 Arbeit mit Storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Also, das ist etwas, das Storyboard von Apple hat sich mit, um wirklich helfen zu kommen 388 00:21:22,140 --> 00:21:26,550 Entwickler schnell Prototypen deren Anwendungen. 389 00:21:26,550 --> 00:21:29,410 Also, das ist, wo Sie erstellen können eine App, ohne das Schreiben ein 390 00:21:29,410 --> 00:21:31,710 einzige Zeile Code. 391 00:21:31,710 --> 00:21:35,390 Doch in unserer Einzelansicht Anwendung wir tun, haben natürlich ein 392 00:21:35,390 --> 00:21:41,270 Datei für die aus unserer Sicht die ist ein View-Controller. 393 00:21:41,270 --> 00:21:45,150 Also, wir haben die Kopf-und die Implementierung-Datei hier. 394 00:21:45,150 --> 00:21:52,350 >> Und ich werde jetzt zu verkleinern, weil wir müssen in der Storyboard zu arbeiten. 395 00:21:52,350 --> 00:21:55,190 So, hier ist unsere Sicht. 396 00:21:55,190 --> 00:22:00,120 Wenn wir einfach, führen Sie die App gerade jetzt, es gibt nicht viel Aufregendes los. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Also, genießen Sie diesen weißen Bildschirm zu sehen. 399 00:22:05,040 --> 00:22:06,110 OK? 400 00:22:06,110 --> 00:22:14,010 >> Und in unserem Versorgungsgebiet, können wir hinzufügen eine Reihe von verschiedenen Dingen zu. 401 00:22:14,010 --> 00:22:19,290 Also, wenn Sie mit Bildschirmen zu tun in iOS, sind der Ansicht-Controller 402 00:22:19,290 --> 00:22:23,150 Objekte, die einzukapseln, Art, Ihre Ansichten. 403 00:22:23,150 --> 00:22:26,980 Also, ein View-Controller immer hat eine Eigenschaft namens Blick. 404 00:22:26,980 --> 00:22:29,610 Und diese Ansicht, in der Regel enthält, Sie wissen, was Sie 405 00:22:29,610 --> 00:22:30,810 wollen auf einem Bildschirm zu sehen. 406 00:22:30,810 --> 00:22:39,210 >> Also, na ja, sagen wir einfach, indem Sie beginnen, vielleicht, vielleicht ein Label. 407 00:22:39,210 --> 00:22:41,450 Also, lassen wir es ein Etikett auf - 408 00:22:41,450 --> 00:22:44,080 kleben Sie es in der Mitte. 409 00:22:44,080 --> 00:22:49,560 So, jetzt, dass ich auf dem Etikett angeklickt, ich in den Eigenschaften-Inspektor gehen 410 00:22:49,560 --> 00:22:51,510 und starten Sie den Wert zu ändern. 411 00:22:51,510 --> 00:22:55,040 Nennen wir es CS50 Farben. 412 00:22:55,040 --> 00:22:58,220 >> Und ich kann auch die Schriftart ändern. 413 00:22:58,220 --> 00:23:02,630 Anstatt also tun System, welches der Standard, können wir eine kundenspezifische man tun. 414 00:23:02,630 --> 00:23:03,770 Wir können ändern - 415 00:23:03,770 --> 00:23:06,453 Sie wissen, Ultralight, machen es 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 Und dann können wir unsere Feld größer. 418 00:23:11,370 --> 00:23:14,410 >> ZIELGRUPPE: Glauben Sie, Sie können vergrößern in nur ein wenig mehr, vielleicht? 419 00:23:14,410 --> 00:23:14,810 >> Rhed SHI: Ja? 420 00:23:14,810 --> 00:23:16,196 OK. 421 00:23:16,196 --> 00:23:17,450 >> ZIELGRUPPE: Tippen Sie einfach auf das? 422 00:23:17,450 --> 00:23:19,020 >> Rhed SHI: Mal sehen. 423 00:23:19,020 --> 00:23:20,382 Hat es funktioniert? 424 00:23:20,382 --> 00:23:22,270 >> ZIELGRUPPE: Just passieren die Xcode? 425 00:23:22,270 --> 00:23:23,520 >> Rhed SHI: Sicher. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 OK. 428 00:23:25,940 --> 00:23:26,275 Ehrfürchtig. 429 00:23:26,275 --> 00:23:27,072 >> PUBLIKUM: Das Label unter? 430 00:23:27,072 --> 00:23:28,920 Das Label? 431 00:23:28,920 --> 00:23:29,480 >> Rhed GKV: Was ist das? 432 00:23:29,480 --> 00:23:32,050 >> ZIELGRUPPE: Welche Dropdown- war das Label, unter? 433 00:23:32,050 --> 00:23:35,170 >> Rhed SHI: So, das war die Frage, was Drop-Down war das Label, unter? 434 00:23:35,170 --> 00:23:37,260 Es sollte einfach unter hier zu sein. 435 00:23:37,260 --> 00:23:39,330 Ich denke, es ist ein Würfel Sache. 436 00:23:39,330 --> 00:23:40,910 Aber in der Regel ist dies der Standard - 437 00:23:40,910 --> 00:23:43,250 Ich werde einfach hier unten bis ich ein Etikett. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Ja. 440 00:23:47,730 --> 00:23:48,950 >> So, jetzt haben wir unser Label. 441 00:23:48,950 --> 00:23:51,040 Lassen Sie es zu zentrieren. 442 00:23:51,040 --> 00:23:56,410 Und Xcode gibt uns Richtlinien zum Zentrieren von Objekten. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 So, jetzt wollen wir unseren Code erneut aus. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Dort gehen wir. 447 00:24:08,800 --> 00:24:10,310 Also, wir haben CS50 Farben. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 Und jetzt lassen wir einen Knopf dort, oder? 450 00:24:15,420 --> 00:24:17,480 Denn wir machen wollen diese interaktiv. 451 00:24:17,480 --> 00:24:19,410 Also, lassen wir hier eine Schaltfläche. 452 00:24:19,410 --> 00:24:39,020 Und wir werden diese Schaltfläche "tap hier nennen , um fortzufahren. "Wir werden es zu zentrieren, auch 453 00:24:39,020 --> 00:24:39,990 Eigentlich ist es bereits zentriert. 454 00:24:39,990 --> 00:24:40,630 Ja. 455 00:24:40,630 --> 00:24:43,130 >> So, jetzt haben wir einen Knopf. 456 00:24:43,130 --> 00:24:53,000 Und wenn wir diese wieder laufen, wir gehen eine nette kleine Taste hier haben. 457 00:24:53,000 --> 00:24:56,520 Und ich kann darauf klicken, aber es nicht tun nichts, weil wir nicht getan haben, 458 00:24:56,520 --> 00:24:58,500 nichts mit der Taste noch. 459 00:24:58,500 --> 00:25:01,740 >> Also, lassen Sie eine andere Ansicht zu erstellen, oder? 460 00:25:01,740 --> 00:25:04,160 Also, sagen wir, ich möchte tippen diese Taste, und ich will 461 00:25:04,160 --> 00:25:05,730 gehen Sie zu einer anderen Seite - 462 00:25:05,730 --> 00:25:06,820 eine andere Ansicht. 463 00:25:06,820 --> 00:25:14,440 Was ich tun werde, ist, ich erstellen kann ein View-Controller, oder? 464 00:25:14,440 --> 00:25:19,690 Jetzt werde ich auf meinem Schaltfläche klicken, und dann, das Wichtigste ist, werde ich 465 00:25:19,690 --> 00:25:20,910 klicken - oder - 466 00:25:20,910 --> 00:25:23,660 ja, Pressensteuerung auf meiner Tastatur. 467 00:25:23,660 --> 00:25:24,880 Kontrolle. 468 00:25:24,880 --> 00:25:27,005 Klicken Sie auf die Schaltfläche, und ziehen Sie. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Also, denken Sie daran, die Strg-Taste halten. 471 00:25:33,550 --> 00:25:35,160 Lass uns das noch mal. 472 00:25:35,160 --> 00:25:40,930 Also, halten Steuerung, klicken Sie auf, und ziehen zu dem, was Sie tun möchten. 473 00:25:40,930 --> 00:25:41,520 OK. 474 00:25:41,520 --> 00:25:43,610 >> Und jetzt habe ich mehrere Optionen hier. 475 00:25:43,610 --> 00:25:47,900 Ich kann entweder zu schieben, oder ich einen tun können modal, oder ich kann eine benutzerdefinierte tun. 476 00:25:47,900 --> 00:25:50,900 Push ist nur, wenn Sie ein Navigation-Controller. 477 00:25:50,900 --> 00:25:54,270 Gerade jetzt, unseren ersten Blick Controller nicht innerhalb irgend 478 00:25:54,270 --> 00:25:55,610 Navigation-Controller. 479 00:25:55,610 --> 00:25:59,500 So ist die Navigation-Controller die ein das gibt Ihnen die Zurück-Taste auf 480 00:25:59,500 --> 00:26:03,910 die iOS-App, wo Sie haben, wissen Sie, dass oben, irgendwie, dicke bar - 481 00:26:03,910 --> 00:26:06,480 wo können Sie zurückgehen, oder Vorwärts, et cetera. 482 00:26:06,480 --> 00:26:07,740 Gerade jetzt, kann ich nicht haben. 483 00:26:07,740 --> 00:26:11,050 Und ja, das ist, warum ich einen Push nicht. 484 00:26:11,050 --> 00:26:12,480 >> Also, auf Push klickte ich zufällig hier. 485 00:26:12,480 --> 00:26:16,480 Und eigentlich wollen wir den Code auszuführen, und es sollte auf mich stürzt. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Nur wenn ich die Taste obwohl, so - 488 00:26:22,960 --> 00:26:23,420 rechts. 489 00:26:23,420 --> 00:26:26,480 Also, das ist schlecht. 490 00:26:26,480 --> 00:26:31,330 >> Und, wie Sie sehen können, hier, wir haben die Fehlermeldung. 491 00:26:31,330 --> 00:26:35,460 Also, "Push segues kann nur verwendet werden, wenn Quellensteuerung wird durch eine verwaltete 492 00:26:35,460 --> 00:26:40,700 Instanz von UI-Navigation-Controller. " So, da dies nicht innerhalb von einem 493 00:26:40,700 --> 00:26:44,030 Navigation-Controller, Ich konnte das nicht tun. 494 00:26:44,030 --> 00:26:48,782 >> So, jetzt werde ich wieder auf die Ordner, geht zurück auf Storyboard. 495 00:26:48,782 --> 00:26:51,680 >> PUBLIKUM: Was ist die Navigation Controller, schon wieder? 496 00:26:51,680 --> 00:26:55,260 >> Rhed SHI: So, jetzt werde ich Ihnen zeigen. 497 00:26:55,260 --> 00:26:56,200 Mal sehen. 498 00:26:56,200 --> 00:27:00,510 Also, ich werde mich auf dieser Ansicht klicken Controller, und dann werde ich gehen 499 00:27:00,510 --> 00:27:03,920 bis zum Produkt - 500 00:27:03,920 --> 00:27:06,240 Eigentlich nicht, sorry - Editor. 501 00:27:06,240 --> 00:27:08,360 Und ich werde in zu gehen - 502 00:27:08,360 --> 00:27:09,350 Eigentlich habe ich darauf klicke? 503 00:27:09,350 --> 00:27:10,070 Nein. 504 00:27:10,070 --> 00:27:11,080 Dort gehen wir. 505 00:27:11,080 --> 00:27:16,270 Ich werde in den Editor gehen nach oben, unten gehen einbetten und dann im Navigations 506 00:27:16,270 --> 00:27:17,520 Controller. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> OK. 509 00:27:20,720 --> 00:27:27,750 Und sieht mein Arbeitsplatz wirklich chaotisch, so lassen sich diese zu reinigen. 510 00:27:27,750 --> 00:27:29,000 So ist all das Storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 Und auf diese Weise - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 OK, Stop - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Ich kann schnell etwas zu bauen wie diese. 517 00:27:50,860 --> 00:27:53,020 Und dann, jetzt kann ich wieder gehen, wissen Sie? 518 00:27:53,020 --> 00:27:55,730 >> Aber das ist irgendwie langweilig, oder? 519 00:27:55,730 --> 00:28:03,020 Also, was ich tun möchte, ist, das will ich nicht zu machen, einfach nur, einen Blick 520 00:28:03,020 --> 00:28:03,870 Controller. 521 00:28:03,870 --> 00:28:07,720 Sagen wir, ich wollte tatsächlich ein Tisch-View-Controller, so kann ich setzen in 522 00:28:07,720 --> 00:28:12,110 einige schöne Farben in die Tabelle. 523 00:28:12,110 --> 00:28:16,210 >> So, jetzt, dass ich in meinem Tabellenansicht setzen Controller, ich brauche, um es wieder zu verbinden 524 00:28:16,210 --> 00:28:18,560 von diesen Button, um die View-Controller. 525 00:28:18,560 --> 00:28:21,780 Also muss ich meine Steuer tun, Klick, Drag Sache wieder. 526 00:28:21,780 --> 00:28:27,318 Und jetzt kann ich Push zu tun, weil ich es einbinden es in einer Navigation-Controller. 527 00:28:27,318 --> 00:28:32,210 >> ZIELGRUPPE: Navigation Controller nur ermöglicht es Ihnen, von Ort zu Ort? 528 00:28:32,210 --> 00:28:33,540 >> Rhed SHI: Ja. 529 00:28:33,540 --> 00:28:38,670 Also, technisch, ist es ein Objekt, wo - 530 00:28:38,670 --> 00:28:43,150 ja, innerhalb des Navigations Controller-Objekt, es 531 00:28:43,150 --> 00:28:44,780 verfolgt ein Array. 532 00:28:44,780 --> 00:28:48,300 Und das Array enthält alle nachfolgenden sehen Controller. 533 00:28:48,300 --> 00:28:51,560 Das ist, warum, wenn Sie wieder zu drücken, es geht zurück auf die vorherige Seite. 534 00:28:51,560 --> 00:28:55,260 Da die Navigation-Controller Objekt oder der Code, der sich kümmert um 535 00:28:55,260 --> 00:28:58,890 Diese Aufgabe hat ein Array, das hält Spur dieser Ansicht-Controller und 536 00:28:58,890 --> 00:29:01,870 dann wissen Sie, DQ die Ansicht Controller und geben Sie wieder die 537 00:29:01,870 --> 00:29:02,750 vorherige. 538 00:29:02,750 --> 00:29:05,200 >> Also, das ist technische Sachen, aber - 539 00:29:05,200 --> 00:29:07,505 und ich werde Ihnen zeigen, später in Code, wenn wir Zeit haben. 540 00:29:07,505 --> 00:29:10,270 Ich bin eine Art läuft auf Zeit, sondern - 541 00:29:10,270 --> 00:29:15,610 >> Also, mit der Tabellenansicht was wir tun können, ist - 542 00:29:15,610 --> 00:29:18,440 Es ist in der Regel automatisch Dynamic Prototype - 543 00:29:18,440 --> 00:29:20,640 wir werden es Statische Zellen zu machen, sonst sind wir zu gehen 544 00:29:20,640 --> 00:29:22,920 laufen in einige Probleme. 545 00:29:22,920 --> 00:29:28,470 >> Und dann, sagen wir mal, ich werde um einen Abschnitt zu haben. 546 00:29:28,470 --> 00:29:31,000 Also, wie Abschnitte - 547 00:29:31,000 --> 00:29:35,160 wenn Sie jemals die Musik-App gesehen haben, wenn Sie haben Künstler, würde Abschnitte 548 00:29:35,160 --> 00:29:37,830 sein, die a durch Z's - 549 00:29:37,830 --> 00:29:38,780 die Buchstaben - 550 00:29:38,780 --> 00:29:42,600 und dann, wissen Sie, die einzelnen Reihen würden die Künstler Namen sein. 551 00:29:42,600 --> 00:29:47,460 Und so ist, was ist cool hier, ist, dass ich Zugriff auf alle Objekte innerhalb 552 00:29:47,460 --> 00:29:50,430 meiner Storyboard durch diese Dropdown-Menü, zu. 553 00:29:50,430 --> 00:29:56,600 >> Also, ich werde auf meinem Abschnitt klicken, und ich möchte, weißt du, vielleicht fünf Zeilen. 554 00:29:56,600 --> 00:30:00,770 Und dann, innerhalb jeder Zeile, Ich möchte ein Label setzen. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 Und ich werde dieses Blau anrufen. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 Und dann möchte ich ein UI-Ansicht setzen Sie , vielleicht für, wie, einer kleinen Box. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Damit kann ich Menschen zeigen eine Vorschau auf die Farbe. 561 00:30:28,710 --> 00:30:34,150 Und ich werde wieder auf dem Grundstück gehen und ändern, dass die Farbe auf, oh, ich weiß nicht 562 00:30:34,150 --> 00:30:35,510 kennen, diese ein. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> Und dann merkt auch hier, wenn ich Zubehör, kann ich viel haben 565 00:30:43,150 --> 00:30:46,160 der verschiedenen Zubehör Sie sehen, dass in der Regel. 566 00:30:46,160 --> 00:30:55,250 Die Offenlegung Anzeige, das Detail, oder Häkchen oder einfach nur Details. 567 00:30:55,250 --> 00:30:59,080 Also, vielleicht können wir tun, wie, eine Offenlegung Indikator, zum Beispiel. 568 00:30:59,080 --> 00:31:03,540 >> Und dann, warum nehmen wir nicht diese, Kopie fügen Sie sie und setzen Sie sie in die 569 00:31:03,540 --> 00:31:06,740 nächste Tabellenzeile. 570 00:31:06,740 --> 00:31:08,115 So können wir diese Yellow anrufen. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 Und ich haben könnte, um diese zu erweitern. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Machen wir es gelb. 575 00:31:17,290 --> 00:31:20,610 Und auf diese Weise können wir kopieren fügen unserem Weg nach unten. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Was war es? 578 00:31:25,370 --> 00:31:26,620 Lila. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Also, das sind alles typische CS50 Farben, die Sie in der Klasse gesehen habe - 581 00:31:34,740 --> 00:31:37,160 tatsächlich, sorry - 582 00:31:37,160 --> 00:31:38,410 oder auf der Website. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Hoffentlich euch sehen können was ich hier mache. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 OK. 587 00:31:57,890 --> 00:31:58,490 Letzte. 588 00:31:58,490 --> 00:32:02,040 >> ZIELGRUPPE: Wie haben Sie hinzufügen zunächst die Zeile? 589 00:32:02,040 --> 00:32:04,740 >> Rhed SHI: So, das war die Frage, wie habe ich zunächst die Zeile hinzufügen? 590 00:32:04,740 --> 00:32:07,500 Ich ging in diesem Tabellenbereich - oder aber ich kann 591 00:32:07,500 --> 00:32:09,200 wählen Sie den Tabellenbereich - 592 00:32:09,200 --> 00:32:11,250 und dann hier, ich aktualisiert die Anzahl der Zeilen. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> Und, lassen Sie mich hoffen, dass das funktioniert. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 OK. 597 00:32:31,480 --> 00:32:32,870 Mal sehen, ob das funktioniert. 598 00:32:32,870 --> 00:32:34,000 Oh, perfekt, genial. 599 00:32:34,000 --> 00:32:35,300 OK. 600 00:32:35,300 --> 00:32:40,330 Während ich den Aufbau meiner Demo, einige Dinge nicht ausgerichtet ist, so, vielen Dank für 601 00:32:40,330 --> 00:32:42,510 der Applaus. 602 00:32:42,510 --> 00:32:42,920 >> Ja. 603 00:32:42,920 --> 00:32:44,770 So, mal sehen. 604 00:32:44,770 --> 00:32:47,550 Wir machen das nur, um neun alles - oder eigentlich, sagen wir einfach 605 00:32:47,550 --> 00:32:51,420 drehen alle diese Offenlegung in Indikatoren. 606 00:32:51,420 --> 00:32:55,790 Und dann, was ich möchte Ihnen zeigen, auch, war, wie ich kann jeder von denen nehmen 607 00:32:55,790 --> 00:32:59,230 Tabellenzeilen und haben ihnen zu interagieren - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 Nein. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> Oh. 612 00:33:06,030 --> 00:33:07,230 Außerdem möchte ich Ihnen zeigen, - 613 00:33:07,230 --> 00:33:13,080 hier kann ich den Titel habe meine Navigation-Controller, oder? 614 00:33:13,080 --> 00:33:17,090 Also eigentlich, werden Sie feststellen, sobald ich Embedded-Controller diese Ansicht innen 615 00:33:17,090 --> 00:33:22,010 der Navigation-Controller, sehen wir Diese Navigationsleiste am oberen Rand unserer 616 00:33:22,010 --> 00:33:25,340 Storyboard-Darstellung einer View-Controller. 617 00:33:25,340 --> 00:33:29,270 Und so gibt uns, wie, eine visuelle, Art, zu führen, um unsere sichtbare Bildschirm. 618 00:33:29,270 --> 00:33:34,360 Dies wird offensichtlich, um sein, die Navigationsleiste. 619 00:33:34,360 --> 00:33:40,950 >> Und was ich zu schnell zu tun, Jetzt wird in einem anderen setzen - 620 00:33:40,950 --> 00:33:45,880 so dass diese Tabelle View-Controller Ich habe durch , einen von diesen und Ziehen 621 00:33:45,880 --> 00:33:49,800 hier, und das ist, was mir erlaubt schnell, wirklich, erstellen eine Tabellenansicht 622 00:33:49,800 --> 00:33:50,850 Controller. 623 00:33:50,850 --> 00:33:54,100 Wenn wir die Zeit haben, obwohl, Sie sehen, dass, programmatisch, es ist ein 624 00:33:54,100 --> 00:33:57,660 bisschen schwierig, eine Tabelle zu erstellen View-Controller, denn es 625 00:33:57,660 --> 00:34:02,520 gibt ein paar Methoden, die sind erforderlich, damit Sie, irgendwie, schreiben 626 00:34:02,520 --> 00:34:07,130 aus, damit der Tabellenansicht Controller korrekt angezeigt. 627 00:34:07,130 --> 00:34:15,340 >> Aber ich will dir nur zeigen, jetzt, ein Beispiel, wo, wenn ich das zu nehmen, 628 00:34:15,340 --> 00:34:15,920 zum Beispiel - 629 00:34:15,920 --> 00:34:18,290 Ich habe in einem anderen View-Controller setzen. 630 00:34:18,290 --> 00:34:27,320 Und nun, sagen wir, ich will Kontrolle Alt meine erste blau 631 00:34:27,320 --> 00:34:28,980 Tabellenzeile zu hier. 632 00:34:28,980 --> 00:34:31,070 Und ich möchte dieses Blau anrufen. 633 00:34:31,070 --> 00:34:32,570 Und dann - 634 00:34:32,570 --> 00:34:34,159 mal sehen. 635 00:34:34,159 --> 00:34:41,050 Ich bin an der jetzt ansehen, und ich kann ändern der Hintergrund blau. 636 00:34:41,050 --> 00:34:45,945 >> Und so, Kündigung, hier, dieses Dropdown- Menü gibt Ihnen auch eine Hierarchie der alle 637 00:34:45,945 --> 00:34:47,040 dieser Objekte. 638 00:34:47,040 --> 00:34:50,530 So eine wichtige Sache zu beachten, hier, ist, dass all diese Dinge hier - 639 00:34:50,530 --> 00:34:54,330 Diese Tabelle View-Controller, der Tisch Ansicht Tabellenansicht Abschnitt Tabellenansicht 640 00:34:54,330 --> 00:34:57,169 Zelle - all das sind Objekte im Code. 641 00:34:57,169 --> 00:35:03,752 Also, wissen Sie, jetzt ist ein Label, unter der Inhalt Ansicht, et cetera. 642 00:35:03,752 --> 00:35:05,020 So weiter und so fort. 643 00:35:05,020 --> 00:35:08,765 >> Also, wenn wir diesen Code ausführen, werden wir sollte etwas zu sehen - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 Lassen Sie uns sehen, wenn diese - ja. 646 00:35:17,870 --> 00:35:18,670 So, da wir gehen. 647 00:35:18,670 --> 00:35:22,120 Aber wenn wir das nicht tun, keine der diese anderen Dinge funktionieren. 648 00:35:22,120 --> 00:35:22,500 Right? 649 00:35:22,500 --> 00:35:23,800 Also nur diese eine funktioniert. 650 00:35:23,800 --> 00:35:29,100 Und aus Gründen der Zeit, ich will nicht gehen in, wissen Sie, indem 651 00:35:29,100 --> 00:35:29,770 unten die anderen. 652 00:35:29,770 --> 00:35:32,020 Und das ist das Ende, Art, Storyboard - 653 00:35:32,020 --> 00:35:33,400 was ich wollte zeigen, Sie Storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> Und ich habe ein Beispiel herausgearbeitet, tatsächlich, genau hier. 656 00:35:43,490 --> 00:35:48,090 Also, das ist das Storyboard dass ich vorher gemacht. 657 00:35:48,090 --> 00:35:52,740 Also, wie Sie sehen können, war dies meine Navigation-Controller. 658 00:35:52,740 --> 00:35:57,040 Dann hatte ich meine erste View-Controller, dann hatte ich meinen Tisch-View-Controller, 659 00:35:57,040 --> 00:35:58,980 und dann hatte ich alle diese - 660 00:35:58,980 --> 00:36:01,180 so vorher, ich war dabei etwas ganz anderes. 661 00:36:01,180 --> 00:36:04,450 Also, entschuldigen Sie diese Dinge. 662 00:36:04,450 --> 00:36:07,930 Wahrscheinlich werde ich aufräumen später vor Ich schicke es ab in die Produktion. 663 00:36:07,930 --> 00:36:12,800 >> Aber wenn wir diese ausführen, werden wir sehen, dass alle Optionen 664 00:36:12,800 --> 00:36:14,050 uns zur Verfügung. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Außer ich habe die Hintergründe nicht machen diese Farben. 667 00:36:21,320 --> 00:36:26,510 Also, schöne einfache Anwendung. 668 00:36:26,510 --> 00:36:28,340 >> Jetzt wollen wir versuchen, anzugehen dies programmgesteuert. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 OK. 671 00:36:32,130 --> 00:36:37,570 Also, um das zu tun, wir sind gerade dabei , eine neue Xcode-Projekt zu starten. 672 00:36:37,570 --> 00:36:41,920 Wir werden es jetzt eine leere Anwendung zu machen, weil wir nicht haben wollen, die 673 00:36:41,920 --> 00:36:42,380 Storyboard. 674 00:36:42,380 --> 00:36:46,590 Also, ich bin einfach auf die Beschränkung mich nicht verwenden Sie eine der Storyboard und ein 675 00:36:46,590 --> 00:36:49,170 leere Anwendung wird nicht gib mir ein Storyboard. 676 00:36:49,170 --> 00:36:52,256 Dies ist nur zu verhindern, mich von Betrug. 677 00:36:52,256 --> 00:36:54,428 Mal sehen. 678 00:36:54,428 --> 00:36:55,360 Warten. 679 00:36:55,360 --> 00:36:55,960 Habe ich - 680 00:36:55,960 --> 00:36:56,448 Ja. 681 00:36:56,448 --> 00:36:57,698 OK. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> Richtig. 684 00:37:09,180 --> 00:37:16,790 So, hier haben wir es mit links nichts anderes als Code. 685 00:37:16,790 --> 00:37:19,460 Also, lassen Sie mich dieses Fenster bewegen etwas mehr. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Richtig. 688 00:37:22,260 --> 00:37:28,160 Wie Sie hier sehen können, die nur Dateien uns gegeben sind AppDelegate.h und Punkt 689 00:37:28,160 --> 00:37:30,500 m, und wir haben keine mehr Storyboard. 690 00:37:30,500 --> 00:37:39,580 >> Also, wenn wir das ausführen, werden wir immer noch zu bekommen, um dem weißen Bildschirm, Gott sei Dank. 691 00:37:39,580 --> 00:37:42,280 OK - Weiß-Bildschirm, aber sonst nichts. 692 00:37:42,280 --> 00:37:45,260 Und hier ist der wichtigste Teil. 693 00:37:45,260 --> 00:37:47,810 Dies ist, wo die Action passiert. 694 00:37:47,810 --> 00:37:51,410 In den vorherigen Versionen, gibt es in der Regel kein Code hier, aber die 695 00:37:51,410 --> 00:37:55,600 Storyboard stellt im Wesentlichen der Code für diesen Teil. 696 00:37:55,600 --> 00:37:57,470 Ich will nicht ins Detail gehen, wie. 697 00:37:57,470 --> 00:38:02,890 >> Und was wir jetzt tun wollen, ist, wir wollen hier gehen, und dieser kleine Raum 698 00:38:02,890 --> 00:38:05,050 beginnt erneut die Erstellung unserer App. 699 00:38:05,050 --> 00:38:06,092 So - 700 00:38:06,092 --> 00:38:06,318 ja? 701 00:38:06,318 --> 00:38:07,450 >> ZIELGRUPPE: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> Rhed SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Ja, sicher. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 OK. 706 00:38:14,520 --> 00:38:17,380 Ich werde die Eingabe, so sollte dies nicht Egal zu viel. 707 00:38:17,380 --> 00:38:17,940 OK. 708 00:38:17,940 --> 00:38:22,720 >> Also, zuerst, erinnern wir schaffen wollten einen Navigation-Controller, oder? 709 00:38:22,720 --> 00:38:27,090 Und auch, wie Sie hier sehen können, Xcode macht einen wirklich tollen Job 710 00:38:27,090 --> 00:38:28,070 Selbstbefüllung. 711 00:38:28,070 --> 00:38:31,650 So, wie Sie feststellen, die Namen der alles viel länger, als es 712 00:38:31,650 --> 00:38:33,910 üblich, aber in Xcode füllt es für Sie. 713 00:38:33,910 --> 00:38:35,710 So kann ich nur Enter drücken. 714 00:38:35,710 --> 00:38:40,180 >> Also, ich möchte ein UI-Navigation erstellen Controller-Zeiger, und ich kann es nennen 715 00:38:40,180 --> 00:38:41,430 Navigation. 716 00:38:41,430 --> 00:38:43,040 717 00:38:43,040 --> 00:38:44,470 Nun, was soll ich jetzt machen? 718 00:38:44,470 --> 00:38:49,510 Nach diesem Gleichheitszeichen, muss ich zunächst schaffen es in der Erinnerung. 719 00:38:49,510 --> 00:38:53,790 Also, ich werde tun, Navigation alloc - 720 00:38:53,790 --> 00:38:56,640 so ist dies ähnlich zu malloc, Jungs, dass Sie in C verwendet - 721 00:38:56,640 --> 00:38:58,400 und dann werde ich es init. 722 00:38:58,400 --> 00:39:03,670 >> Also, es ist wirklich wichtig, dass jede Objekt, das Sie erstellen, wollen Sie 723 00:39:03,670 --> 00:39:04,940 alloc und init es. 724 00:39:04,940 --> 00:39:08,600 Das wird es schaffen und instantialize es in der Erinnerung, und 725 00:39:08,600 --> 00:39:10,480 Jetzt können Sie es verwenden. 726 00:39:10,480 --> 00:39:10,780 Alles klar? 727 00:39:10,780 --> 00:39:14,360 Wenn Sie das nicht tun, tut Ihr Objekt nicht vorhanden ist, und Sie werden in einen Haufen laufen 728 00:39:14,360 --> 00:39:17,290 Probleme. 729 00:39:17,290 --> 00:39:20,250 >> Und dann will ich schaffen ein View-Controller, oder? 730 00:39:20,250 --> 00:39:25,580 Also, ich möchte eine UIViewController erstellen star - 731 00:39:25,580 --> 00:39:29,620 ja, ist alles, was ein Zeiger in Objective-C, und ich werde tun, 732 00:39:29,620 --> 00:39:31,600 etwas ähnliches, hier - 733 00:39:31,600 --> 00:39:32,850 alloc, init. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 OK. 736 00:39:40,150 --> 00:39:43,450 >> Und dann, was ich tun werde, ist, ich bin gehen, um - so, daran erinnern, als wir 737 00:39:43,450 --> 00:39:45,360 das einbetten in Navigation-Controller? 738 00:39:45,360 --> 00:39:46,920 Dies ist, wie Sie es im Code zu tun. 739 00:39:46,920 --> 00:39:54,550 Du wirst tun, Navigation 740 00:39:54,550 --> 00:39:55,780 Pushviewcontroller - 741 00:39:55,780 --> 00:39:57,636 >> ZIELGRUPPE: [unverständlich]. 742 00:39:57,636 --> 00:39:59,030 Wird es dazu kommen für uns, oder -? 743 00:39:59,030 --> 00:40:00,080 >> Rhed SHI: Oh, ja. 744 00:40:00,080 --> 00:40:00,550 Nein. 745 00:40:00,550 --> 00:40:02,740 Es mag mich besser. 746 00:40:02,740 --> 00:40:04,670 Nein, es für Sie zu arbeiten, auch. 747 00:40:04,670 --> 00:40:06,700 Also, das sind alles Methoden. 748 00:40:06,700 --> 00:40:10,400 So Pushviewcontroller ist ein Verfahren, und auch, genauer gesagt, ist es ein 749 00:40:10,400 --> 00:40:13,590 B. Verfahren der UI Navigation-Controller. 750 00:40:13,590 --> 00:40:20,030 Da musste ich meine UI-Navigation erstellen Controller Sterne, und dann habe ich 751 00:40:20,030 --> 00:40:24,510 können diese Pushviewcontroller auf nenne meine bestimmte Instanz eines UI-Navigation 752 00:40:24,510 --> 00:40:25,010 Controller. 753 00:40:25,010 --> 00:40:29,490 >> ZIELGRUPPE: Haben wir die genaue tun müssen Wort, oder hat sie bereits für sie gibt? 754 00:40:29,490 --> 00:40:31,380 >> Rhed SHI: Ja, denn es ist eine Methode. 755 00:40:31,380 --> 00:40:32,200 Es ist wie eine Funktion. 756 00:40:32,200 --> 00:40:33,330 Es ist wie printf. 757 00:40:33,330 --> 00:40:34,390 Es ist wie scanf. 758 00:40:34,390 --> 00:40:36,250 Es ist wie strcompare. 759 00:40:36,250 --> 00:40:40,310 Außer es weiß, was Sie möchten geben, und beachten Sie, dass es dann immer 760 00:40:40,310 --> 00:40:42,740 kommen mit Dingen, die sind für Sie rechtlich erlaubt. 761 00:40:42,740 --> 00:40:47,620 Also, wenn nichts zeigt sich hier, dann stimmt etwas nicht. 762 00:40:47,620 --> 00:40:50,550 >> Also, Pushviewcontroller. 763 00:40:50,550 --> 00:40:52,580 So, jetzt möchte ich drücken meine neu erstellt 764 00:40:52,580 --> 00:40:56,850 UIViewController, und dann, animierte - 765 00:40:56,850 --> 00:40:57,470 vielleicht auch nicht. 766 00:40:57,470 --> 00:41:00,110 Da dies sein wird, der erste View-Controller. 767 00:41:00,110 --> 00:41:03,210 Ich meine, selbst wenn ich es machen animierte, es wird wahrscheinlich nicht angezeigt werden, weil 768 00:41:03,210 --> 00:41:05,050 es ist der erste Bildschirm. 769 00:41:05,050 --> 00:41:06,540 >> Und denken Sie daran die Klammern. 770 00:41:06,540 --> 00:41:08,850 Also, noch, wie wir die Klammern? 771 00:41:08,850 --> 00:41:11,870 Und innerhalb der Klammern, die Objekt ruft auf einer Methode - 772 00:41:11,870 --> 00:41:15,910 so dass unser Ziel ist die Navigation Controller und das Verfahren ein Druck 773 00:41:15,910 --> 00:41:17,210 View-Controller animiert. 774 00:41:17,210 --> 00:41:21,920 Und sehen, wie es dauert, in zwei Argumente, und sie sind von der, irgendwie getrennt, 775 00:41:21,920 --> 00:41:24,390 Worte und ein Doppelpunkt. 776 00:41:24,390 --> 00:41:28,300 Also, Objective-C versucht es schön zu machen und einfach für Sie zu laut vorzulesen - 777 00:41:28,300 --> 00:41:33,020 Ihr Code - und haben es halb, Art, Sinn machen. 778 00:41:33,020 --> 00:41:37,150 >> Allerdings nur, dieses zu tun ist nicht genug. 779 00:41:37,150 --> 00:41:39,780 Lassen Sie mich nun zu vergrößern. 780 00:41:39,780 --> 00:41:44,210 Doing nur diese ist nicht genug, bekommen, was wir bisher haben. 781 00:41:44,210 --> 00:41:48,580 So, hier, werden Sie feststellen, dass es eigentlich nicht gehen, um jede Art von sein 782 00:41:48,580 --> 00:41:50,190 Bar, hier, oder? 783 00:41:50,190 --> 00:41:54,680 Es gibt keine Navigationsleiste, was bedeutet, dass wir immer noch nicht dazu gekommen. 784 00:41:54,680 --> 00:41:58,850 >> Und wir können das testen, auch, durch, vielleicht, die Änderung der Hintergrund des 785 00:41:58,850 --> 00:42:00,460 Viewcontroller, richtig? 786 00:42:00,460 --> 00:42:01,710 ViewController.background-- 787 00:42:01,710 --> 00:42:03,155 788 00:42:03,155 --> 00:42:03,640 ah. 789 00:42:03,640 --> 00:42:07,690 Also, Sie sehen, wie Viewcontroller nicht haben eine Hintergrundfarbe, auch wenn ich 790 00:42:07,690 --> 00:42:08,780 wollte darauf zugreifen? 791 00:42:08,780 --> 00:42:14,080 Und das ist, weil Viewcontroller ein Behälter für die Ansicht. 792 00:42:14,080 --> 00:42:19,490 So hat es eine Ansicht Eigenschaft, die hat dann eine Hintergrundfarbe. 793 00:42:19,490 --> 00:42:25,510 >> Und, kann ich es einstellen, irgendwie langweilig, indem Sie die Farbe 794 00:42:25,510 --> 00:42:28,130 auf der UIColor Objekt. 795 00:42:28,130 --> 00:42:33,210 Also, ist hier redcolor Ankündigung eine Methode. 796 00:42:33,210 --> 00:42:36,750 Es ist eine Methode der Klasse UIColor. 797 00:42:36,750 --> 00:42:40,820 Weil ich nicht ein erstellen tatsächliche Instanz einer UIColor um 798 00:42:40,820 --> 00:42:42,020 , die Methode auf es nennen. 799 00:42:42,020 --> 00:42:45,050 Ich habe gerade einfach, nannte es von der Art-ähnlichen Namen. 800 00:42:45,050 --> 00:42:49,620 Ich, wie, nannte es auf int, wenn int hatte, wie ein Verfahren, um es zum Beispiel. 801 00:42:49,620 --> 00:42:52,380 >> Und so, wenn wir diesen Code ausführen, werden wir feststellen, dass der Hintergrund 802 00:42:52,380 --> 00:42:53,540 eigentlich nicht rot. 803 00:42:53,540 --> 00:42:54,790 Es ist immer noch weiß. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 Und wie können wir um, dass ist zu erhalten, merken, wie es die self.window. 806 00:43:04,550 --> 00:43:08,260 Das ist, wie, das ultimative Behälter für Ihre Anwendung. 807 00:43:08,260 --> 00:43:11,630 Es ist das ultimative Ding, das enthält alles, was auf dem Bildschirm, für eine 808 00:43:11,630 --> 00:43:13,650 iPhone und iPad-Anwendungen. 809 00:43:13,650 --> 00:43:20,970 >> Und bequem, self.window hat diese Eigenschaft namens 810 00:43:20,970 --> 00:43:22,650 RootViewController. 811 00:43:22,650 --> 00:43:26,480 Und das wird der Zeiger auf sein das erste View-Controller im Inneren 812 00:43:26,480 --> 00:43:27,270 Ihrer App. 813 00:43:27,270 --> 00:43:32,000 Also, was wir hier machen wollen, jetzt ist , dass gleich unsere Navigation eingestellt 814 00:43:32,000 --> 00:43:32,710 Controller. 815 00:43:32,710 --> 00:43:33,760 Right? 816 00:43:33,760 --> 00:43:37,490 Denn technisch, Navigation Controller ist unser erster Blick 817 00:43:37,490 --> 00:43:38,770 Controller. 818 00:43:38,770 --> 00:43:46,160 Es verfolgt eine Reihe anderer Ansicht Controller, und wir diese gedrückt 819 00:43:46,160 --> 00:43:49,810 View-Controller in diesem Array in der Navigation-Controller. 820 00:43:49,810 --> 00:43:52,640 >> Also, Sie wollen nicht, dies zu tun. 821 00:43:52,640 --> 00:43:54,225 Das wäre nicht wirklich helfen. 822 00:43:54,225 --> 00:43:58,040 Sie wollen, dies zu tun, wenn Sie tun wollte einen Navigation-Controller, der die meisten 823 00:43:58,040 --> 00:44:01,100 der Sie wahrscheinlich, weil Sie wollen, zu, irgendwie, haben eine Art von, 824 00:44:01,100 --> 00:44:04,840 wie, Menü zurück zu gehen oder einige Homepage zurück zu gehen, anstatt ein 825 00:44:04,840 --> 00:44:05,470 leeren Bildschirm. 826 00:44:05,470 --> 00:44:05,920 Ja? 827 00:44:05,920 --> 00:44:11,460 >> ZIELGRUPPE: Ist es unangenehm - für Sie, auf dem zu vergrößern 828 00:44:11,460 --> 00:44:12,710 >> Rhed SHI: Ja. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Also, ja. 831 00:44:15,720 --> 00:44:22,370 Dies ist der Code, und jetzt Lassen Sie uns testen Sie es aus. 832 00:44:22,370 --> 00:44:27,920 >> So, da wir gehen. 833 00:44:27,920 --> 00:44:29,170 Magie. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 So, OK. 836 00:44:32,690 --> 00:44:34,420 Danke. 837 00:44:34,420 --> 00:44:35,000 OK. 838 00:44:35,000 --> 00:44:38,690 So, jetzt, was wir wollen, ist - so, wir Art beschränkt, hier, oder? 839 00:44:38,690 --> 00:44:45,130 Wir könnten alles schreiben Innere dieser eine Funktion. 840 00:44:45,130 --> 00:44:48,470 Aber, das ist nicht, wie iOS-Entwicklung in der Regel funktioniert. 841 00:44:48,470 --> 00:44:53,030 >> Also, was wir tun werden, ist, wir sind werde einige neue Dateien erstellen. 842 00:44:53,030 --> 00:44:57,110 Aber, genauer gesagt, wir werden erstellen Sie einen anderen Objective-C-Klasse oder 843 00:44:57,110 --> 00:44:58,010 eine andere Aufgabe - 844 00:44:58,010 --> 00:45:00,700 Klasse und Objekte sind austauschbar hier. 845 00:45:00,700 --> 00:45:06,460 Und hier ist, wie ich konnte, möglicherweise, erstellen Sie eine andere Klasse von U-Controller. 846 00:45:06,460 --> 00:45:12,030 >> Also, es ist eine Unterklasse, so werden Sie feststellen, hier, es ist eine Unterklasse der 847 00:45:12,030 --> 00:45:15,910 UI-View-Controller, aber ich kann nennen es andere Namen hier. 848 00:45:15,910 --> 00:45:19,400 Ich könnte diese CS50 nennen, nenne ich konnte Diese View-Controller, rufe ich konnte 849 00:45:19,400 --> 00:45:21,640 Diese blah-View-Controller - 850 00:45:21,640 --> 00:45:22,400 alles, was ich will. 851 00:45:22,400 --> 00:45:24,140 Dies ist nur der Name für die Klasse. 852 00:45:24,140 --> 00:45:27,020 Allerdings ist es wichtig sein weil im Wesentlichen, was ich tue 853 00:45:27,020 --> 00:45:29,720 hier ist, ich schaffe eine andere Klasse Namen. 854 00:45:29,720 --> 00:45:34,140 Also, es wird sein, wie einige Art von Typ oder ein Objekt. 855 00:45:34,140 --> 00:45:35,910 So sollte es ein wenig generisch sein. 856 00:45:35,910 --> 00:45:37,225 Es wird nicht sehr spezifisch sein. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> Und auch, ich möchte darauf hinweisen, aus diesen beiden Optionen. 859 00:45:44,480 --> 00:45:48,430 Denn wir tun alles, was innerhalb der Code ist es manchmal viel einfacher 860 00:45:48,430 --> 00:45:53,540 in einer Schnittstellendatei zu bringen, so dass Ich kann buchstäblich ziehen, wie 861 00:45:53,540 --> 00:45:54,960 wir haben früher mit Storyboard - 862 00:45:54,960 --> 00:45:57,810 Sie wissen, ein Label, oder eine Taste, oder was auch immer. 863 00:45:57,810 --> 00:46:01,950 Und so sind Dateien, die es Ihnen ermöglichen, xibs das nicht, und man muss es Haken haben 864 00:46:01,950 --> 00:46:04,310 zu diesem View-Controller-Datei. 865 00:46:04,310 --> 00:46:06,540 >> Also, ich werde bewusst nicht überprüfen diese. 866 00:46:06,540 --> 00:46:12,510 Normalerweise würde ich dies zu überprüfen, und wenn ich nur, dass diese für das iPhone oder iPad, ich 867 00:46:12,510 --> 00:46:16,340 würde dies zu überprüfen und haben einfach ein für, wissen Sie, das iPhone oder das iPad. 868 00:46:16,340 --> 00:46:19,750 Aber da mache ich universelle, werde ich zwei von denen später erstellen. 869 00:46:19,750 --> 00:46:22,220 Also, ich werde bewusst deaktivieren Sie diese. 870 00:46:22,220 --> 00:46:23,940 >> Das ist auch wirklich wichtig. 871 00:46:23,940 --> 00:46:27,490 Eine Menge Zeit, habe ich Fehler hatte wo dies wurde nicht überprüft. 872 00:46:27,490 --> 00:46:31,930 Und ja, natürlich ist diese Datei nicht, Art, wie, enthalten oder importiert 873 00:46:31,930 --> 00:46:33,740 innerhalb dieser Testordner. 874 00:46:33,740 --> 00:46:38,180 Und so hat mein Code absolut keine Ahnung die Existenz dieser Datei, und 875 00:46:38,180 --> 00:46:41,080 dass eine Menge Schmerzen verursacht und Stunden der Fehlersuche. 876 00:46:41,080 --> 00:46:44,360 Aber, so stellen Sie sicher, dass das so ist, überprüft dass, wissen Sie, das Ziel dieses 877 00:46:44,360 --> 00:46:47,510 Datei ist für diese Anwendung. 878 00:46:47,510 --> 00:46:48,310 >> OK. 879 00:46:48,310 --> 00:46:51,680 So, jetzt haben wir zwei neue Dateien erstellt. 880 00:46:51,680 --> 00:46:54,050 Und diese Dateien sehen ziemlich leer. 881 00:46:54,050 --> 00:46:59,550 Und eigentlich wollen wir auch weiterhin auf, indem sie die xib-Dateien. 882 00:46:59,550 --> 00:47:03,690 Also, früher, in der ich war Cocoa Touch Drop-down. 883 00:47:03,690 --> 00:47:06,880 Nun, ich werde in den Benutzer gehen Interface-Touch, und wie Sie sehen können, habe ich 884 00:47:06,880 --> 00:47:08,120 kann ein Storyboard erstellen. 885 00:47:08,120 --> 00:47:11,710 >> Also, auch ich mit einem leeren gestartet Anwendung kann ich immer noch ein 886 00:47:11,710 --> 00:47:12,340 Storyboard. 887 00:47:12,340 --> 00:47:15,480 Obwohl es schwierig wird in Bezug auf wie Sie sich verbinden wollen 888 00:47:15,480 --> 00:47:16,820 dass Sie Ihren Code. 889 00:47:16,820 --> 00:47:18,230 Also, ich werde nicht hingehen. 890 00:47:18,230 --> 00:47:22,160 >> Aber, was wir tun wollen Jetzt ist eine Ansicht erstellen. 891 00:47:22,160 --> 00:47:25,720 Und Sie können für wählen ein iPhone oder ein iPad. 892 00:47:25,720 --> 00:47:30,180 Und üblicherweise zur Bezeichnung der Unterschied - wenn du tust ein 893 00:47:30,180 --> 00:47:31,950 universelle Anwendung - 894 00:47:31,950 --> 00:47:35,980 Sie setzen entweder einen Unterstrich iPhone, oder Sie haben einen Twiddly tun können. 895 00:47:35,980 --> 00:47:36,980 Es spielt eigentlich keine Rolle. 896 00:47:36,980 --> 00:47:40,890 Es ist einfach für Sie, zu differenzieren welche Ansicht ist, für die Einrichtung. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> Und so, mal schauen. 899 00:47:44,430 --> 00:47:47,550 Ich habe einen Bildschirm, dass ich arbeiten kann. 900 00:47:47,550 --> 00:47:53,530 Und so, zum Beispiel, kann ich eine Markierung setzen hier, wissen Sie, und ich kann auch setzen 901 00:47:53,530 --> 00:47:54,820 hier eine andere Taste. 902 00:47:54,820 --> 00:47:58,730 Ich werde nicht die Mühe ändern die Werte hier. 903 00:47:58,730 --> 00:48:09,050 >> Aber, was ist hier wichtig ist , dass der Besitzer der Datei - 904 00:48:09,050 --> 00:48:13,660 so, ich bin im Inneren des iPhone Ansicht, iPhone xib Datei. 905 00:48:13,660 --> 00:48:18,050 Und in diesem Navigationsbereich oder Dropdown-Menü, ich will gehen, um die 906 00:48:18,050 --> 00:48:19,090 Eigentümer der Datei. 907 00:48:19,090 --> 00:48:22,630 Und das ist das eigentlich wichtiger Schritt. 908 00:48:22,630 --> 00:48:27,780 Ich will den Klassenansicht machen Controller, so dass diese Datei ist xib 909 00:48:27,780 --> 00:48:30,030 gehen, um mit in Verbindung gebracht werden Meiner Ansicht-Controller. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 Und alles, was ich in meiner Ansicht zu tun Controller programmatisch ist 912 00:48:39,360 --> 00:48:42,800 geht hier reflektiert werden. 913 00:48:42,800 --> 00:48:46,270 >> So jedoch feststellen, dass - 914 00:48:46,270 --> 00:48:55,995 tatsächlich, wir machen diese Ansicht Hintergrund blau, zum Beispiel. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 Oder grün. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 Und dann, also, wenn Sie feststellen, wieder in dieser Code, das ist, wo wir haben unsere 919 00:49:07,950 --> 00:49:09,200 Navigation-Controller. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> Auch wenn wir diesen Schritt getan, ist es immer noch rot, nicht grün zu sein. 922 00:49:18,310 --> 00:49:20,350 Und es gibt einen Grund, warum. 923 00:49:20,350 --> 00:49:28,090 Es ist, weil, wenn wir inited unserer Ansicht-Controller, hier - 924 00:49:28,090 --> 00:49:30,010 Entschuldigung, es ist ein wenig verrückt - 925 00:49:30,010 --> 00:49:34,520 wenn wir unsere inited View-Controller hier, wir inited der allgemeinen Art 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 OK? 928 00:49:36,560 --> 00:49:40,560 So haben wir nicht selbst tun es mit dieser Klasse. 929 00:49:40,560 --> 00:49:42,030 >> Also denken Sie daran, dies ist wie eine Klasse nun. 930 00:49:42,030 --> 00:49:47,160 Es kann als eine Art betrachtet werden, nur als UIViewController ist ein Typ. 931 00:49:47,160 --> 00:49:51,080 Und um das zu verwenden, was wir tun müssen, ist zu importieren - 932 00:49:51,080 --> 00:49:52,520 Import Viewcontroller - 933 00:49:52,520 --> 00:49:55,750 und, wie Sie sehen können, AutoFills es für mich. 934 00:49:55,750 --> 00:49:56,570 Also, Viewcontroller - 935 00:49:56,570 --> 00:50:02,070 und jetzt, hier, kann ich das ändern UIViewController zu Viewcontroller. 936 00:50:02,070 --> 00:50:05,050 Und jetzt, hier, die ich ändern kann dies Viewcontroller. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Laufen wir schon wieder. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 Es ist immer noch rot. 941 00:50:19,690 --> 00:50:23,370 Und der Grund, warum es immer noch rot ist, weil - 942 00:50:23,370 --> 00:50:26,230 woah, was da passiert ist? 943 00:50:26,230 --> 00:50:31,500 Wir wollten diese xib verknüpfen Datei mit dem View-Controller. 944 00:50:31,500 --> 00:50:37,540 Allerdings, um es wirklich zu tun dass müssen wir in diese gehen. 945 00:50:37,540 --> 00:50:42,980 Und wenn wir das tun die init, zu tun, wollen wir initWithNibName, und dann wollen wir 946 00:50:42,980 --> 00:50:48,910 tun, die in String View_iPhone, zum Beispiel. 947 00:50:48,910 --> 00:50:51,700 Sie können das Bundle hier ignorieren. 948 00:50:51,700 --> 00:50:54,965 >> Und das wird, damit uns, eigentlich - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, es gibt ein Problem. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Richtig. 953 00:51:09,980 --> 00:51:17,670 >> Und ja, es gibt ein Problem, weil in unserer Sicht xib Datei, haben wir eine Bezeichnung und 954 00:51:17,670 --> 00:51:18,720 wir haben eine Taste. 955 00:51:18,720 --> 00:51:23,660 Allerdings, auch wenn wir angeschlossen haben die beiden, es gibt nichts in der 956 00:51:23,660 --> 00:51:27,440 ViewController.h oder ViewController.m dass diejenigen, reflektieren 957 00:51:27,440 --> 00:51:29,160 Knöpfe oder diese Etiketten. 958 00:51:29,160 --> 00:51:32,425 Also, müssen wir die in so schreiben Eigenschaften der View-Controller. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Also, das ist, wie Sie erklären eine Eigenschaft. 961 00:51:39,490 --> 00:51:43,422 Es dauert in der Regel, diese beiden Optionen. 962 00:51:43,422 --> 00:51:48,690 Für die Zwecke von uns und diesem Seminar Ich würde sagen, dass im Allgemeinen, 963 00:51:48,690 --> 00:51:52,250 die meisten Eigenschaften sind nicht-atomare und zu halten. 964 00:51:52,250 --> 00:51:55,420 Sie können mit der Google Suche zu lesen, Sie wissen, der Unterschied zwischen 965 00:51:55,420 --> 00:51:58,620 nicht-atomare und behalten auf Sie wissen, Google oder so etwas. 966 00:51:58,620 --> 00:52:01,090 Und ich werde Sie, wie, Stapel nehmen Überlauf, wo die Menschen haben 967 00:52:01,090 --> 00:52:03,605 Antworten auf die Unterschiede zwischen denen. 968 00:52:03,605 --> 00:52:07,000 Aber jetzt ist das, was wir wollen mit betroffen sein. 969 00:52:07,000 --> 00:52:12,790 >> Und wir wollen ein UI-Label, Sterne zu machen, und wir können es nennen, wie wir wollen. 970 00:52:12,790 --> 00:52:15,710 Wir können das nennen, wissen Sie, Label. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 Und, wir anderen zu schaffen ein für die Schaltfläche. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 Und denken Sie daran, den Stern gehören, weil wir mit Zeigern zu tun 975 00:52:29,910 --> 00:52:36,740 so ziemlich überall im Inneren von Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Allerdings wird das immer noch nicht lösen das Problem ist, wie man hier sehen kann. 977 00:52:42,110 --> 00:52:50,540 Und der Grund ist, weil, wenn wir wollen eine Datei xib Etikett oder eine Verbindung 978 00:52:50,540 --> 00:52:55,690 -Taste, um das Programm oder die Kopf und Implementierungsdatei, wir wollen 979 00:52:55,690 --> 00:52:58,255 'das Stück Code - 980 00:52:58,255 --> 00:53:00,610 Steckdose. 981 00:53:00,610 --> 00:53:03,600 Beachten Sie, dass es ist ein Schlüsselwort. 982 00:53:03,600 --> 00:53:07,970 >> Und sobald ich fertig Typisierung aus, dass, sollte es diese haben 983 00:53:07,970 --> 00:53:09,100 zwei Kreise, hier. 984 00:53:09,100 --> 00:53:11,200 In der Regel sind sie nicht ausgefüllt 985 00:53:11,200 --> 00:53:12,920 Ich bin mir nicht sicher, warum sie sind. 986 00:53:12,920 --> 00:53:21,370 Aber in der Regel werden Sie manuell haben verbinden Sie sie, indem Sie auf dieser Seite der 987 00:53:21,370 --> 00:53:23,530 die Versorgungsbereich. 988 00:53:23,530 --> 00:53:28,430 >> Und so, jetzt habe ich mein Label bekam ausgewählt, und ich möchte diese neue zu ziehen 989 00:53:28,430 --> 00:53:33,910 Referenzierung Steckdose, um Besitzer meiner Datei und klicken Sie dann auf Etiketten. 990 00:53:33,910 --> 00:53:40,230 So, jetzt endlich ist dieses Label zu diesem Label verbunden. 991 00:53:40,230 --> 00:53:44,950 Und das Label ist, was wir zu gehen verwenden programmatisch ändern ihre 992 00:53:44,950 --> 00:53:49,250 Text, dessen Schriftart, seinen Hintergrund Farbe, et cetera. 993 00:53:49,250 --> 00:53:52,430 >> Also, warum machen wir nicht die elbe für den Button? 994 00:53:52,430 --> 00:53:54,770 Und so werden Sie feststellen, für die Schaltfläche es ist ein wenig komplizierter. 995 00:53:54,770 --> 00:53:59,060 Weil, ich meine, du bist zu vermuten, auf Knopfdruck, so dass es eine Menge bekam 996 00:53:59,060 --> 00:54:02,950 von Optionen für Benutzer kann auf eine Taste drücken. 997 00:54:02,950 --> 00:54:06,570 Und dann werden wir sehen, dass später wir können dies die Verbindung unserer 998 00:54:06,570 --> 00:54:09,140 Code, damit es funktioniert. 999 00:54:09,140 --> 00:54:12,770 >> So, jetzt aber, eine Verbindung herstellen möchten wir er dem tatsächlichen Taste 1000 00:54:12,770 --> 00:54:13,570 innerhalb unseres Codes. 1001 00:54:13,570 --> 00:54:19,640 So gehen wir in die neue Referenzierung Steckdose und führen Sie dann die Taste. 1002 00:54:19,640 --> 00:54:22,068 Jetzt wollen wir laufen schon wieder. 1003 00:54:22,068 --> 00:54:23,040 Uh oh. 1004 00:54:23,040 --> 00:54:23,890 OK. 1005 00:54:23,890 --> 00:54:25,140 Ich weiß nicht, was los ist jetzt hier. 1006 00:54:25,140 --> 00:54:48,450 1007 00:54:48,450 --> 00:54:49,700 Whoa. 1008 00:54:49,700 --> 00:54:57,380 1009 00:54:57,380 --> 00:54:58,960 Nur einen Moment hier. 1010 00:54:58,960 --> 00:55:02,490 >> Eigentlich nicht, warum wir nicht ein Blick auf ein weiteres Beispiel in 1011 00:55:02,490 --> 00:55:05,800 das Interesse der Zeit. 1012 00:55:05,800 --> 00:55:06,200 OK. 1013 00:55:06,200 --> 00:55:10,610 So, hier ist mehr leicht hergestellt Beispiel für Viewcontroller. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Wie Sie hier sehen können, habe ich aufgenommen die Eigenschaften für die 1016 00:55:17,110 --> 00:55:18,460 Etikett und die Taste. 1017 00:55:18,460 --> 00:55:20,370 Und dann dieses Stück Code hier - 1018 00:55:20,370 --> 00:55:21,830 Diese IBAction - 1019 00:55:21,830 --> 00:55:27,740 war eine Verbindung zu diesen Button hier. 1020 00:55:27,740 --> 00:55:33,940 So wie Sie hier sehen können, Touch-Inside wird dem Selektor verbunden ist 1021 00:55:33,940 --> 00:55:37,390 genannt Taste gedrückt. 1022 00:55:37,390 --> 00:55:41,700 >> So können wir eigentlich durch die gehen Bewegung wieder, hier, indem Touch Up 1023 00:55:41,700 --> 00:55:48,750 Innen und Ziehen auf Datei-Besitzer, und dann 1024 00:55:48,750 --> 00:55:51,570 klicken Sie auf Taste gedrückt. 1025 00:55:51,570 --> 00:55:52,820 Jetzt wollen wir unseren Code ausführen. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 So, jetzt funktioniert nun diese Taste und wird uns auf die nächste Seite zu nehmen. 1028 00:56:02,020 --> 00:56:08,430 >> Und in Bezug auf unsere View-Controller, dies ist das Stück Code, nahm 1029 00:56:08,430 --> 00:56:10,000 Pflege der gedrückten Taste. 1030 00:56:10,000 --> 00:56:14,260 Und es ist wichtig, hier zu beachten, dass Ich habe eine andere Art von Ansicht erstellt 1031 00:56:14,260 --> 00:56:16,330 Controller heißen Tisch View-Controller. 1032 00:56:16,330 --> 00:56:19,900 So, das war ähnlich zurück in Storyboard, als ich eine der gezogen 1033 00:56:19,900 --> 00:56:23,450 diese Tabellen Ansicht-Controller in das Storyboard. 1034 00:56:23,450 --> 00:56:24,470 Ich erstelle eine andere 1035 00:56:24,470 --> 00:56:30,000 >> Zeiger auf die Tabelle View-Controller, alloc und init-ten, und dann tun 1036 00:56:30,000 --> 00:56:34,490 Selbst dot Navigation-Controller, Viewcontroller drücken, diese neue 1037 00:56:34,490 --> 00:56:35,350 Viewcontroller. 1038 00:56:35,350 --> 00:56:39,750 Und ich habe die Animation auf yes gesetzt, weil jetzt in meiner app, und ich 1039 00:56:39,750 --> 00:56:45,670 wollen, tatsächlich sehen die Animation gehen von der Homepage auf den Tisch 1040 00:56:45,670 --> 00:56:46,920 View-Controller. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> ZIELGRUPPE: Haben Sie immer noch Sorgen zur Garbage-Collection? 1043 00:56:51,110 --> 00:56:51,840 >> Rhed GKV: Was ist das? 1044 00:56:51,840 --> 00:56:54,740 Nein. 1045 00:56:54,740 --> 00:56:58,970 So, das war die Frage, haben Sie mit Garbage Collection zu arbeiten? 1046 00:56:58,970 --> 00:57:03,470 Also, Xcode 4 hatte wie ARC, das ist, automatische Referenzzählung. 1047 00:57:03,470 --> 00:57:06,120 Und so, in der Regel, wenn Sie eine neue starten Projekt, würden Sie überprüfen, dass wegen 1048 00:57:06,120 --> 00:57:09,440 niemand wirklich will, zu beschäftigen Speicher freigeben und so. 1049 00:57:09,440 --> 00:57:13,720 Aber ich denke, in Xcode 5, gibt es nicht einmal diese Option auf das neue Projekt. 1050 00:57:13,720 --> 00:57:16,750 So ist es automatisch macht das für Sie. 1051 00:57:16,750 --> 00:57:16,920 Ja? 1052 00:57:16,920 --> 00:57:20,970 >> ZIELGRUPPE: Können Sie exportieren ein PDF in das Storyboard? 1053 00:57:20,970 --> 00:57:22,020 >> Rhed SHI: Ja, auf jeden Fall. 1054 00:57:22,020 --> 00:57:28,180 So werden alle von ihnen werden in einbezogen Source-Code, so dass Sie Jungs können überprüfen 1055 00:57:28,180 --> 00:57:30,730 die tatsächliche Xcode-Projekt für sie. 1056 00:57:30,730 --> 00:57:31,105 Ja? 1057 00:57:31,105 --> 00:57:35,944 >> ZIELGRUPPE: Aber, ich meine, wie kann ich drucken Sie ein PDF mit meinem Storyboard? 1058 00:57:35,944 --> 00:57:38,920 Wenn ich will nur das exportieren Bilder, jemanden zu zeigen. 1059 00:57:38,920 --> 00:57:39,160 >> Rhed SHI: Oh ja. 1060 00:57:39,160 --> 00:57:41,980 Ich denke, vielleicht, können Sie einfach einen Screenshot. 1061 00:57:41,980 --> 00:57:44,350 Ja, und einen Bildschirm senden Sie sie Schuss oder so etwas. 1062 00:57:44,350 --> 00:57:45,600 Ja. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> So, mal sehen. 1065 00:57:50,570 --> 00:57:56,470 Im Interesse der Zeit, denke ich, das ist alles, l heute abdecken kann. 1066 00:57:56,470 --> 00:57:59,600 Aber, ich weiß, das ist eigentlich nur die Oberfläche von iOS kaum berühren 1067 00:57:59,600 --> 00:58:00,370 Entwicklung. 1068 00:58:00,370 --> 00:58:05,630 Also, zögern Sie nicht, mich zu kontaktieren, wenn Sie Fragen zu iOS 1069 00:58:05,630 --> 00:58:07,000 Entwicklung. 1070 00:58:07,000 --> 00:58:12,840 Und hoffentlich werde ich in der Lage zu reinigen sein etwas von dem Code für die Quelle 1071 00:58:12,840 --> 00:58:16,830 Code-Dateien, so dass Sie einige haben wirklich schöne Beispiele, um mit zu arbeiten. 1072 00:58:16,830 --> 00:58:21,020 >> Andere als die, wenn euch gehen auf den CS50 Hackathon, darf ich oder kann 1073 00:58:21,020 --> 00:58:25,730 nicht da sein, und ich kann helfen mit einigen iOS-Entwicklung, auch. 1074 00:58:25,730 --> 00:58:26,980 Also, vielen Dank, Jungs. 1075 00:58:26,980 --> 00:58:31,168