>> DANIEL ARMENDARIZ: Hallo, Leute, herzlich willkommen auf iOS App-Entwicklung
mit schnellen.
Ich bin Dan Armendariz.
Ich bin precepter von Computer Wissenschaft hier an der Schule
Technik & angewandte Wissenschaften.
Und schnell ist eigentlich Art eine wirklich nette Sprache.
Und ich habe einige Pläne für heute.
Also während der nächsten Stunde oder so werden wir auf iOS App-Entwicklung selbst zu suchen
mit Xcode und tatsächlich die Entwicklung von einigen sehr einfach, sehr einfache Anwendungen.
Und Blick auf die Weise, dass Sie tatsächlich nehmen die Anwendungen,
und bauen sie, und tatsächlich legte sie auf einem iOS-Gerät.
Einige der Dinge, wir werden nicht zu sehen
Dinge wie sind tatsächlich statt eine Anwendung
und legt es auf den App Store.
Es gibt eine Menge von Tutorials online, dass werden Sie mit diesem Aspekt von ihm zu helfen.
Aber auch, weil, wie Teil der CS50, erhalten Sie
die Apple-Entwicklung anzuschließen Team, CS50 der App-Entwicklungsteam.
Wenn Sie nicht das getan haben und noch Ihnen CS50 verbunden sind,
Ich empfehle, dass Sie tun, weil die
ist, wie Sie in der Lage zu schaffen einige Programme in Xcode,
bauen sie, und tatsächlich legte sie auf einige Ihrer iOS-Geräte
wenn Sie tatsächlich haben eine physische iOS-Gerät.
Wenn Sie nicht über eine physische iOS Gerät, das mehr als in Ordnung ist.
Sie können tatsächlich für iOS zu entwickeln.
Und Xcode hat ein Simulator, der es Ihnen erlaubt
Ihre Anwendung in zu sehen Aktion auf dem Computer.
Aber irgendwie ist eine saubere Sache tatsächlich spielen und interagieren
mit Ihrer Anwendung auf einem Gerät.
So gibt es eine Reihe von Anforderungen zu tatsächlich all dieser Entwicklung.
Einer davon ist, dass müssen Sie einen Mac haben.
Es hat zu laufen 10.9.4 oder neuer um die Entwicklung mit schnell zu tun.
>> Sie können eine frühere verwenden Version zu entwickeln
mit Objective C für iOS und Mac.
Aber ich empfehle, und viele der Beispiele, die wir heute sehen,
verwenden 10.10 Yosemite.
Also, wenn Sie noch nicht aktualisiert haben, es ist eine gute Ausrede, um dies zu tun.
Jetzt Xcode 6.1 ist die neueste Version von Die integrierte Entwicklungsumgebung
dass Apple bietet gratis dass Sie off downloaden können die App-Store.
Und ich empfehlen, führen auch die neueste Version.
>> Wenn Sie geschehen, werden eine frühere Version, Xcode 5 und unten gerade
einfach nicht unterstützt schnelle haupt nicht.
Und die Beta-Versionen von sechs, die wurden im Laufe des Sommers veröffentlicht,
Sie unterstützt schnell, aber es gibt war eine enorme Anzahl
von Änderungen in der Sprache, genug so dass der Code, den Sie
Zukunft an, und dass man sich könnte im Internet finden
nicht wirklich richtig kompilieren in diesen früheren Versionen von Xcode.
Also noch einmal, wenn Sie das tun noch nicht einen Entwickler-Konto,
Ich empfehle Ihnen, zu gehen developer.apple.com.
Registrieren, ein Entwickler-Konto zu erstellen, und kommen Sie mit den CS50 App-Entwicklungsteam.
Das wird, um Ihnen eine Chance Ihre Anwendungen kompilieren
und sie auf Ihrem Gerät.
OK, also lasst uns loslegen.
Das erste, was wir tun werden ist
um tatsächlich eine sehr einfaches Projekt in Xcode
das wird Sie zulassen einen Antrag stellen.
>> Also, wenn Sie noch nicht über Xcode offen, gehen Sie vor und öffnen Sie sie
und erstellen Sie ein neues Projekt.
Ein besonderes Begrüßungsbildschirm Es öffnet sich und gibt Ihnen
einige Optionen, über das, was es ist, dass Sie tun möchten.
Sagen Sie einfach, dass Sie erstellen möchten ein neues Projekt, eine neue Anwendung.
Dieses Fenster öffnet sich, vorausgesetzt, Sie verwenden Xcode 6.1.
Gerade jetzt, und für die Dauer des Seminars,
wir werden verwenden Einzelanwendungen Blick, nur
Art von einer Anmeldung um Ihre Füße nass.
Und Sie können sich verzweigen auf eigene Faust von dort.
>> Klicken Sie auf Weiter an dieser Stelle.
Nun, hier gibt es ein paar Dinge, dass Sie vielleicht zu gelangen.
Der Produktname ist der Name des Projekts.
In diesem Fall, ich bin nur werde es nennen Seminar1
denn es ist unser erstes Beispiel.
Name der Organisation, in Dieser Fall ist nur meinen Namen.
Selbstverständlich können Sie ändern, um Ihren eigenen Namen oder den CS50.
Organisations-ID, wenn Sie passieren, um eine Website haben nur nehmen
der Domain-Name in umzukehren, com.yourname.
und dann wird der Name des Produkts, sollte automatisch angezeigt werden
Danach, wenn das Bündel-Kennung.
>> Offensichtlich ist die Sprache, die wir sind werde mit Hilfe werden für heute ist schnell getan.
Sie können natürlich auch verwenden Objective C für das, aber heute wird schnell sein.
Und wir werden jetzt sagen, Universal-Geräte, so
dass es funktioniert sowohl iPad und iPhone.
Und wir werden Kern verlassen Daten ungeprüft zu halten
das Projekt relativ einfach für den Augenblick.
Also lassen Sie uns fortfahren und klicken Sie auf Weiter.
Und es geht um mich zu fragen, Wo möchten Sie sie zu speichern.
Ich werde einfach speichern Sie es auf dem Desktop für den Moment.
>> Na gut, ist so jetzt das, was wird passieren, wenn Sie tatsächlich offen Xcode.
Und beachten Sie, dass die allererste, was Sie sehen,
ist dieses Ausrufezeichen, dass sagt nein Unterzeichnung Identität gefunden.
Ich tat dies mit Absicht auf meinem Computer und ich bin
in der Hoffnung, dass ich zu gehen in der Lage, wirklich zu beheben,
weil ich möchte, dass Sie, wie diese zu sehen, tatsächlich auf Ihrem eigenen Rechner zu arbeiten.
>> Gehen Sie weiter und klicken fix Thema.
Es wird Sie fragen, ob Sie eine haben bestehende Apfel Entwickler-Konto.
Dies ist, wo der Beitritt zur CS50 App-Entwicklungsteam
ist wichtig, damit Sie sich nicht nur eine App Konto,
aber Sie haben auch die Fähigkeit, die Apps zu unterzeichnen
und sie auf Ihrem iOS-Gerät.
Dies ist nicht-- Klick Fix Problem ist nicht notwendig,
wenn Sie gerade dabei, bauen und vor Ort zu entwickeln,
vollständig im iOS Simulator.
>> Aber jetzt werde ich zu entwickeln und sie
auf meinem iPad, was sein wird, Lage, als auch zu senden.
Also ich möchte tatsächlich fügen Sie diese.
Und es wird zu fragen, mich nach meinem Apfel ID.
Also, es wird das sein.
Und ich meine holen Passwort, das hier ist.
Also gib mir nur eine Sekunde, um das zu finden, und kopieren Sie das, und fügen Sie ihn hier.
>> Klicken Sie auf Hinzufügen.
Es wird mich fragen, das Team Ich möchte mitmachen.
Ich werde Ingenieurschule zu tun.
Klicken Sie auf Verbinden.
Hoppla, das ist die falsche.
Lassen Sie uns diese.
Hoffentlich angegebene.
Dass man immer noch nicht funktioniert.
Wir sind aus der guten Lauf hier.
OK, sollte dies ein zu arbeiten.
Schließen Sie nun das.
Jetzt machen wir Schule Engineering, klicken Sie auf Auswahl.
>> Und nun hoffentlich nach einer paar Sekunden can-- OK,
Ich werde zu widerrufen und Anfrage.
Oh Mann, das wird nicht funktionieren.
OK, ich werde ein anderes zu versuchen.
Packen wir hier.
Live-Demos sind mir versagt.
Vielleicht müssen wir nur zurück lokal bauen ganz,
aber das wäre in Ordnung in diesem Fall.
>> Also hier, und das ist eigentlich Arbeits, was wir tun werden, ist nur
erstellen eine sehr einfache Hallo Welt Anwendung.
Also das ist Xcode.
, Und wenn Sie ihn noch nicht gesehen, es kann zunächst ein wenig einschüchternd sein.
Es gibt eine Menge von Scheiben, es gibt eine Menge doodads in verschiedenen Bereichen.
Aber nur erkennen, dass es wirklich mehreren Hauptkomponenten
dieser Entwicklungsumgebung.
Ganz links sind alle Dateien , die für das Programm sind
oder auf Ihr Projekt.
Wir werden um einen Klick auf einigen von ihnen und wir werden
weisen darauf hin, die wichtigsten im Laufe der Zeit.
Auf der rechten Seite haben wir einen Satz von Attributen.
Und all diese Attribute gibt verschiedene Scheiben für die Attribute.
Die Scheiben sind je nach ändern der Kontext der Hauptbereich, die
zufällig in der Mitte sein.
Nun kann der mittlere tatsächlich zeigen Sie eine Vielzahl von Dingen, zum Beispiel
Code selbst.
Oder man könnte in der Tat, wenn have-- Sie auf dem Storyboard klicken Sie die
ist übrigens nur eine grafische Darstellung Ihrer Benutzer
Schnittstelle für Ihre application-- dann Fenster die Attribute
auf der weit rechts tatsächlich zu ändern.
Jetzt gibt es ein paar andere Dinge, die ich möchte darauf hinweisen.
Sie können Art erkunden rund in der Umgebung auf eigene Faust.
Aber eines der Dinge, dass war sehr nützlich
ist diese Taste hier, die oben rechts im Fenster.
Es gibt diese Schaltfläche, sieht wie auf der anderen
ließ es einen Absatz hat gefolgt von zwei Kreise und Art
von zwei Pfeilen voneinander entfernt.
Wenn Sie zwischen dem Schalter Standard-Editor, die
ist ganz links ein, die eine das ist standardmäßig aktiviert,
und die beiden Kreise überlappende einander, was Sie tatsächlich bekommen
ein Doppelfenster-Ansicht.
>> Und das ist eigentlich geht für uns nützlich sein
wenn wir brauchen, um Artikel verlinken in der Benutzeroberfläche zu dem Code.
Und wir werden mehr darüber zu sprechen dass in nur einem Augenblick.
Aber klar, dass, wenn Sie zu erhalten noch Scheiben wie diese,
können Sie Ihren Blick einfach zu vereinfachen ein wenig, indem Sie zurück
Ihren einzigen Editor.
So weit, ist es gut.
Den Sicherheitscode Also im Grunde haben wir der linke, Attribute auf der rechten
und was es ist, wir arbeiten hier im Zentrum.
>> Also hier habe ich geklickt auf der Hauptstoryboard.
Und das Storyboard, wieder ist ein Weg in Xcode
dass Sie tatsächlich erstellen Sie Ihren Benutzer Schnittstelle mit nur per Drag & Drop
Techniken.
Und so für unsere sehr erste Anwendung dieser
Genau das, was wir tun werden.
Wir werden auf dem Sprung sehr weit unten rechts
auf dem Bildschirm, die enthält eine Vielzahl von Bedienelementen
Sie können dann durch Klicken und Ziehen auf Ihre Benutzeroberfläche erstellen.
>> Jetzt alle diese Elemente sind Ansichten genannt
denn sie liefern eine Art Blick.
Es ist eine Bildansicht, für beispielsweise tatsächlich zeigen
ein Bild auf der Benutzerschnittstelle.
Es gibt einen Tisch im Hinblick auf tatsächlich zeigen eine Tabelle.
So weiter und so fort.
Es gibt eine Vielzahl von Ansichten, die Sie hier auswählen.
Also nur für jetzt werden wir um für ein Label zu suchen.
Sie können nur durch blättern alle Listen, die es gibt.
Aber es gibt die Suche Bar am unteren Rand
Das macht es leichter zu identifizieren spezifischen Ansichten, die Sie tatsächlich
wollen in der Benutzeroberfläche ziehen.
>> Gefunden mein Label.
Ich werde es hier ziehen, direkt auf meiner Beispielanwendung.
Genau dort in der Mitte sieht gut aus.
Und ich werde geben "Hallo Welt!"
Drücken Sie die Eingabetaste.
Jetzt habe ich ein Etikett.
Es sieht nicht so aus, wie es ist ganz richtig zentriert.
So kann ich versuchen, neu zu zentrieren sie.
Glücklicherweise bietet diese führt, um die Dinge viel einfacher.
Ich werde versuchen, es zu kompilieren.
Hoffentlich wird es tatsächlich hier zu arbeiten.
Und wenn dies nicht der Fall, in nur einem Augenblick es wird in der Tat erscheinen auf meinem iPad.
Es ist hier genau richtig.
Da ist es.
>> Okay, das ist es.
Wir sind fertig.
Wir haben unsere sehr erstellt erste Anwendung.
Nun offensichtlich ist dies nicht tun.
Es ist nur ein Etikett.
Es gibt keine Verbindung zwischen die Benutzerschnittstelle und der Code.
Also, wenn wir eigentlich wollten um diese Verbindung zu schaffen,
wenn wir wollten eigentlich eine Art haben Kommunikation zwischen den Elementen
, die auf die existieren Bildschirm und der Code,
ermöglicht es uns, zu kontrollieren jene Elemente, dann
wir tatsächlich benötigen, um Blick auf den Code selbst.
>> Also das ist, was heißt ViewController.swift.
Und für insbesondere für Ihre ersten Programme,
das wird die Art sein, Masse der Code, enter--
wird sich in diesem Dokument hier zu sein.
Es gibt eine Menge Sachen, das ist hier so weit, nicht wahr?
Es gibt Import UI Kit Klasse, außer Kraft zu setzen, [? Funk,?] all diese verschiedenen Dinge.
Und es ist nicht ganz klar, was ist es, dass alles bedeutet.
Werfen wir also einen Schritt zurück weg von Xcode für ein wenig
und Blick auf die Sprache selbst, schnell.
>> Also mit schnellen, war es in Konstruktion und Entwicklung
bei Apple für etwa vier Jahre nach meinem Verständnis.
Und es gibt eine Reihe von Features, darüber, die wirklich nett sind.
Zunächst einmal, es ist zusammen Sprache, genau wie C.
So müssen Sie zunächst kompilieren Sie es und führen Sie es
bevor Sie tatsächlich führen Sie den Code, der zur Folge hat.
Aber es ist im Gegensatz zu C ein interaktives aufgefordert, dass Sie tatsächlich ausgeführt werden kann
und geben Sie beliebige Befehle in.
Und sehr viel wie eine JavaScript-Konsole, denen Sie vertraut sind jetzt,
es tatsächlich werden diejenigen bewerten Befehle und bieten Ihnen die Ausgabe.
Und sie selbst aufgenommen haben dass auf die nächste Stufe
und sie etwas geschaffen haben genannt Spielplätzen in Xcode
, mit denen Sie visuell arbeiten mit Code.
Und wir werden tatsächlich sehen einige Beispiele der, dass in nur ein wenig.
Es wird auf C. C unterliegt basiert sie, weil alle Compiler
erstellen Code aus C und zu erstellen, die Objektcode von ihm.
Aber es ist wirklich Aktien relativ wenig Syntax.
Es wird ziemlich anders aussehen.
Es wird einige Ähnlichkeiten sein.
Aber es sein werden, nicht wenige Unterschiede
im Vergleich zu, sagen wir, JavaScript oder PHP.
Und wir werden diesen Punkt in nur einem Augenblick.
>> Jetzt ist einer der größten Dinge, zu schnell, dass ist schön
das heißt, vor allem im Vergleich bis C, es bedeutete, sicher zu sein.
Alles darin ist gemeint, sehr stark eingetippt werden.
In der Tat ist es fast ärgerlich auf den ersten, wenn Sie zum ersten
Beginn der Arbeit mit schnellen, wie viel es erzwingt Typen überall.
Alles, was ein String ist muss eine Zeichenkette sein.
Es ist sehr schwierig, der Konvertit sortieren sie zu zwingen, oder es in eine andere Form.
>> Und wieder werden wir Beispiele dafür zeigen.
Aber letztlich erkennen, dass Damit ist gemeint, um Sie zu schützen,
und von Ihnen Ich meine den Code aus Absturz in eine schreckliche Art und Weise, wenn
Sie haben eine Art von übereinstimmende Typ.
Und wieder, mit ihm zu arbeiten.
Weil es frustrierend, auf den ersten wie Sie versuchen, genau herauszufinden, warum
Sie bekommen diese ungewöhnliche Fehler, die sich mit Typen.
Aber es wird sich lohnen am Ende.
>> Es ist mit einer automatischen befassen Speicherverwaltung,
so nicht mehr tun Sie müssen mit Dingen umzugehen
wie malloc und free und alle der diese Art von Dingen.
Und es ist auch für die Allgemeinheit entwickelt.
So, während wir eine Xcode zu bedienen erstellen iOS-Apps und Mac-Anwendungen,
wir können es einfach verwenden, als Skriptsprache.
Und so können wir es irgendwie verwenden der anstelle von PHP oder statt
Python tatsächlich schnell zu analysieren und verarbeiten
Einige Daten, die wir auf unserem Computer zu haben.
>> Es hat eine Vielzahl von modernen Features, Extras, Wandlungsfähigkeit,
Generika, Verschlüsse, und viele dieser Dinge, die Sie möglicherweise nicht kennen kann.
Und es ist einfach irgendwie ein unglücklicher Teil der Sprache, dass einige dieser
Art futuristischen, modernen Elemente, enthalten sind, in die Elemente
so tief verwurzelt, dass ich eigentlich will müssen lernen Sie ein wenig CS50.5.
>> Wir müssen ein bisschen mehr erfahren über einige der Features, um
um wirklich zu verstehen, was los ist weiter und so, dass man bei Code aussehen
und nicht das Gefühl, völlig verloren.
Und Sie werden sehen, was ich meine durch, dass in nur einer Minute.
OK, so let's-- genug davon Art theoretische Zeug.
Lassen Sie uns eigentlich betrachten unsere erste schnelle Programm.
Es ist eine Zeile Code.
Zeile 14 hier, es sagt Druck l n hallo CS50.
>> Also gibt es ein paar Dinge, die ist sehr unterschiedliche diesen Vergleich
die Dinge, die Sie vielleicht sein von C verwendet wird, zum Beispiel.
Einer davon ist, dass es keinen intmain, gibt es keinen Abschnitt gehören,
es gibt nichts von diesem Extramaterial.
Das sind, wie Standard- I / O, wie die Bibliotheken
dass die tatsächlich erbringen Standard-Features der Sprache,
werden automatisch als inbegriffen Teil der Standardbibliothek Swifts
und die automatisch importiert werden.
Sie müssen nicht zu tun, dass import manuell.
>> Intmain nicht wegen existieren die wichtigste Anlaufstelle für den Code
ist eigentlich auf die Anfang des Codes.
Also jeder Code, die Sie haben ab Beginn
wird tatsächlich zu Beginn ausgeführt werden.
Also das ist wirklich stark vereinfacht.
Beachten Sie auch, dass es kein Semikolon.
Es gibt keine Semikolons in dieser Sprache.
Sie stellen eine Erklärung in einer eigenen Zeile
und dann wird die nächste Zeile steht für die andere Aussage.
Wenn Sie setzen wollen mulitiple Aussagen online,
dann muss man es durch ein Semikolon zu trennen.
Aber in den meisten Fällen, für guten Stil, wir sind
nie zu Semikolons für sehen Der Zweck der Trenn Aussagen
in schnell.
Wie funktioniert das eigentlich?
Gut sehr ähnlich wie wir C tatsächlich haben, dies zu kompilieren.
Und so können wir, dass durch die Verwendung zu tun schnelle c und dann 1.Swift.
Und dann nach ein paar Minuten dies kompilieren
und dann kann ich einen Artikel laufen.
Und als es einfach sagen: "Hallo CS50."
Awesome, so dass wir gehen.
Es ist unser erstes Hallo Welt Programm.
Kommen wir nun zur Nummer zwei.
>> Jetzt in this-- das hat sich geändert leicht, denn während normalerweise Sie
do-- in der Tat immer haben Sie zu Kompilieren einer raschen Anwendung, bevor Sie
tatsächlich ausgeführt es-- ein der herausragenden Merkmale
dass ich angespielt, bevor war, dass schnelle tatsächlich in Art verwendet werden
einer Pseudo-Interpretationsmodus gibt ist in der Tat wie ein Dolmetscher.
Aber was dies tun, ist es ist in der Tat eine schnelle Anwendung
dass Sie ausführen können.
>> So zum Beispiel, wenn Sie gerade Art hier schnell, was passieren wird
ist, dass Sie eine Eingabeaufforderung zu erhalten.
Und Sie können Ihre rasche geben Code, drucken hallo, und führen Sie es.
Und es wird tatsächlich print-- gut, hat es in diesem Fall nicht zu drucken
weil es gedruckt, um zentriert aus, was hier nicht sichtbar.
Es ist aber tatsächlich in der Lage zu funktionieren.
Und so in diesem Fall, ich bin nur würde dies als ein Skript verwenden.
Und ich kann tatsächlich diesen Code ausführen es.
So ist die Art, wie ich tatsächlich ausgeführt es wird etwas unterschiedlich sein,
aber Sie werden, dass in nur einem Augenblick zu sehen.
Nun, in diesem Fall, was wir zu tun ist, zunächst eine Variable zu definieren.
Also das ist, wie wir definieren eine Variable in schnellen,
wird wir das Schlüsselwort let, gefolgt durch den Namen der Variablen,
und wir dann bieten einige Initialisieren von Daten optional.
Also dieser Fall wir definieren eine Konstante namens Name,
und wir werden, die im Einsatz der Ausgang der Druckzeile
ganz unten, hallo Namen.
>> Nun beachtet, dass anstatt% s, können wir den Namen dieses kapseln
Variable in / () und in der Lage, verketten im Inhalt dieses
String in dieser Zeichenfolge.
Jetzt im Gegensatz zu C-String ist ein tatsächlichen realen Typ in schnell.
Und so ist es neben sitzt ints und neben
verdoppelt sich sehr leicht und natürlich im Vergleich
einige der anderen Sprachen, die wir gesehen haben.
Also das würde tatsächlich funktionieren wie man es erwarten würde.
>> Ich kann 2.swift laufen.
Und wir sehen, dass mein Name ist tatsächlich gespleißt in "Hallo Dan."
OK, awesome.
Bewegen Sie sich auf die Nummer drei.
Jetzt war es ein wenig einer Notlüge, dass ich
sagte, dass die Art, wie wir erklären, Variablen war es, das Schlüsselwort let verwenden.
So oft, wie Sie vielleicht können Sie tun wollen nutzen lassen, da, was das bedeutet
ist es eine Konstante definiert.
Und das sagt schnell, dass es optimieren Sie die Geschwindigkeit Ihrer Anwendung
weil er weiß, dass Variable wird sich nicht ändern.
>> So bewerten sorgfältig wenn du gehst zu verwenden sind
eine Variable für das Zwecke, sie zu ändern.
Und wenn Sie zu gehen erstellen Sie eine Variable nur
um einige Daten zu halten, und das ist nicht wirklich ändern würde.
Also das Konzept der Unveränderlichkeit, es ist nicht wirklich ändern würde,
ist wichtig, auch als weit unten wie der Definition von Variablen.
So, hier haben wir einen Namen definiert, lassen Name, und in diesem Fall
es ist eine Konstante, der Typ, dass String, und es ist gleich Dan.
>> Während also im Stand der Version, infers-- es und "es"
Ich meine swift-- schnell leitet den Datentyp
dass wir in der Variablen eingegeben haben.
In diesem Fall können wir explizit sein.
Also lassen Sie dann den Namen dieser Variable Name, dann ein Doppelpunkt.
Und nach dem Doppelpunkt tun wir die Art der Daten.
So ist es nicht mehr int Namen oder string name oder so ähnlich.
Aber anstatt lassen Label sind wir Definieren, ob
es ist konstant oder variabel, gefolgt von dem Namen,
gefolgt von der Art gegebenenfalls.
>> Also in diesem Fall wir die Definition dieser Name ist ein String.
Wir sagen, ist Dan.
Und jetzt habe ich eine andere Variable, in diesem Fall, es heißt Label.
Beachten Sie aber, dass es mit dem Schlüsselwort var vorangestellt.
Die Schlüsselwort var Mittel dass diese Variable kann
zu einem späteren Zeitpunkt geändert werden, in Zeit, irgendwo in den Code
können wir tatsächlich zu ändern, und es wird uns keine bestimmten Fehler.
>> Wir können Standard-Verkettung zu tun Betreiber hier mit dem Pluszeichen
tatsächlich fügen Sie unsere Namen in dieser Zeichenfolge.
Und dann können wir drucken wie wir gesehen haben eben noch.
Lassen Sie uns jetzt sagen, dass Sie wollen, um eine Variable zu erstellen
aber Sie nicht möchten, dass es noch zu initialisieren.
Sie haben noch keinen wollen setzen alle Daten darin.
Nun muss man sagen, geschickter was die Art der Daten
sein wird, bevor du kannst tatsächlich definieren Sie es ordnungsgemäß.
>> Also in diesem Fall, wenn wir definiert haben eine Variable namens Grade wir müssen
ausdrücklich zu seiner Art, denn es kann nicht schließen, gerade auf der Suche
am initialisierte Daten dass Sie auf dem es.
Es gibt uns eine Fehlermeldung, wenn Sie nur Typ var Klasse, zum Beispiel,
weil es keine Art daher.
Also grade = 100.
So daß 100 eine ganze Zahl ist, es passt sehr gut in die.
Es wird weiterhin funktionieren.
Wir sehen, wie wir dann Dies kann in verketten.
Nun könnte man sein versucht, wenn Sie tatsächlich
wollte die verketten Klasse in eine andere Textzeichenfolge,
in eine andere Zeichenfolge, die Sie gerade würde verwenden die gleiche Verkettung Betreiber.
Und daß normalerweise wahr sein.
Doch schnell wird es nicht möglich, implizit ändern die Art der Daten.
So dass in diesem Fall diese Linie, 25, schlägt fehl
weil Grade ist ein Integer und kein String.
Und so gibt es ein Missverhältnis eingestellt von Typen.
So haben Sie explizit zu sein, wenn Sie diese Daten ändern möchten,
wenn Sie, dies zu zwingen wollen Daten in einer anderen Art
und sagen: OK, ich will zu nehmen diese Sorte, die eine ganze Zahl ist,
und wandelt es in einen String.
>> Also habe ich eine Kapital s String nehmen alle die Arten, werden Sie feststellen, werden aktiviert,
Int, Double, String, so weiter und so fort.
Alle von ihnen werden aktiviert nur um die Dinge einfacher.
Und wir sagen, zu nutzen String hinein Klasse übergeben.
Und es wird eine zu erstellen String aus dieser ganzen Zahl.
Und dann haben wir verketten kann die beiden sehr schön.
Sie haben Fragen zu diesem Material so weit?
Alles klar, lass uns pflügen bis auf Platz vier.
>> Lassen Sie uns nun über einige erweiterte sprechen Strukturen wie Arrays und Schleifen.
Und im Gegensatz zu C, Arrays in schnellen nicht durch Zeiger dargestellt.
Zeiger in schnellen, obwohl sie vorhanden sind, genannt
wie unsichere Zeiger oder einige ähnliche Art wie diese,
sie nicht, um Sie in der Regel ausgesetzt.
So wird es sehr schwierig für Sie zu manipulieren
der Speicher direkt von Ihrem Computer.
>> So Arrays sind nur ein Datentyp.
Und sie sind mit dieser Art verwiesen von heute Standard eckige Klammer-Notation
dass Sie bisher gesehen haben.
Aber wenn Sie wirklich wollen, definieren einen Typ einer Variablen
als eine Anordnung von einigen besondere Art, dann
bringe diese Art in eckigen Klammern.
Also, was ich hier sage, ist, dass Ich erstelle eine Variable mit dem Namen
Noten vom Typ int-Array.
Und ich bin Einstellung, dass gleich etwas initialisierte Daten, die in diesem Fall
100, 0, 90, 85, die nur eine ist Auflistung von beliebigen Typen hier.
Jetzt in diesem Fall ich konnte, denken Sie daran, nehmen Sie die Art,
und es wäre in der Lage, es zu schließen, auf der Basis der initialisierten Daten.
Aber wenn ich diese entfernt und Ich brauchte, um sie später festgelegt,
dann müsste ich, um sicherzustellen, dass ich die Art gibt.
Also gut, lassen Sie uns nun zusammen.
Also haben wir can-- Arrays bieten uns eine Vielzahl
von Methoden durch diese Punktnotation in sind Sie wahrscheinlich jetzt kennen.
So grades.count zB sagt uns, genau die Anzahl
von Elementen, die sind innerhalb dieses Array enthalten.
>> Wenn ich will, additional-- hinzufügen jetzt feststellen, dass es sich um eine var
und nicht-- dies ist eine Variable und keine Konstante, die
bedeutet, dass ich den Inhalt zu ändern dieses Arrays kann ich Objekte hinzufügen.
Aber ich kann nicht einfach sagen Noten und dann in eckigen Klammern
vier, denn das wird ein aus Grenzen Fehler in diesem Fall.
Wenn ich tatsächlich Wechsel die Größe dieses Arrays,
Ich habe, um den Punkt Append Methode zu verwenden, addieren etwas auf, um ganz am Ende des es.
Ich kann aber Wechsel einzelnen Indizes.
>> Also habe ich Klassen verwenden und dann in eckigen Klammern
Null, diese erste Index manipulieren und so weiter, wie Sie normalerweise erwarten würde.
Und ich kann das gleiche, um tatsächlich tun die Daten von dem Empfangs sowie.
Jetzt gibt es auch eine Art von Phantasie Verfahren dies zu tun, Noten und equals
und dann noch einen Index, was wird append--
oder nicht eine andere index-- aber eine andere Liste, die
wird diese Liste anzuhängen an der Rückseite der Noten.
Und die Noten werden enthalten dann alles.
Aber das ist eine Art extra Sache dass ich nur zeigen Ihnen, zum Spaß.
>> Jetzt gibt es eine for-Schleife.
Und dies ist der Beginn in dem Dinge beginnen, ein wenig ändern.
Beachten Sie, wie diese für die Schleife anders als zum Schleifen in C
Jetzt werde ich beachten Sie, dass for-Schleifen in Swift kann
gemacht, um wie for-Schleifen in C aussehen werden, aber es gibt eine Menge von mehr nützliche Konstrukte
daß im wesentlichen überflüssig für var i gleich 0 Semikolon i
weniger als ausführlich, so weiter und so fort, oder?
Und dieses Konstrukt ist nur einer von ihnen.
>> Für Index ist neuer Index Variable, in diesem Fall im Bereich.
Und was ich sage ist, dass es einen Bereich von 0 bis hin zu
jedoch nicht einschließlich grades.count.
Also das Punkt Punkt weniger als-Zeichen repräsentiert
ein Wertebereich von Null ausgehend den ganzen Weg bis zu grades.count minus 1.
Es gibt einen separaten Betreiber, die es gibt,
welcher Punkt Punkt Punkt ist, das wäre bedeuten, dass ich den Bereich der Null
zu Klassen zählen inklusive.
>> Aber in diesem Fall, da diese Arrays sind Null-Index, die wir selbstverständlich
wollen nicht, um unterwegs maximale Anzahl von Noten.
Ich kann die Klassen zusammenfassen, wie die Dir evtl. erwarten, und Ausgangs all dieses Zeug.
OK, bewegen auf.
Lassen Sie uns nun über Funktionen sprechen.
Um eine Funktion zu definieren Sie funk Schlüsselwort verwenden.
Und wieder, in Swift müssen Sie sehr vorsichtig sein mit der Art.
Das Sie auf dem es Parameter durch Definieren zB
der Name des Parameters und dann in Colin, die Art der Daten
Sie erwarten, dass Parameter zu übernehmen.
>> Also in diesem Fall haben wir eine Funktion aufgerufen Druck Klasse zählen.
Es übernimmt eine Variable namens Notenbuch, oder vielmehr ein Parameter namens Notenbuch.
Und wir erwarten, dass die Notenbuch um eine Anordnung von Zahlen sein.
Wenn das Notenbuch leer ist, wir werden eine Sache zu drucken.
Sonst werden wir drucken Sie die Anzahl von Typen, die diese tatsächlich.
>> Nun, wenn wir zurückkehren wollen einige Wert, dann ist der Weg
dass wir ändern diese Definition um tatsächlich mit diesem Pfeil Stichwort,
oder diesen Pfeil Signifikanten zu bedienen.
Also hier werden wir definieren eine Funktion namens Durchschnitt.
Wir werden eine Liste von Zahlen zu akzeptieren.
Und wir werden eine Rückkehr Doppel, die hoffentlich
ist der Mittelwert dieser Anordnung.
Und um das zu tun, um tatsächlich berechnen eine durchschnittliche,
werden wir eine Summe, und wir werden von Natürlich Fassend alle Objekte
in diesem Array.
>> Beachten Sie, dass es gibt eine neue Stil der for-Schleife hier.
Wir haben nicht explizit zu sein Iteration über jedes einzelne Element,
aber wir können stattdessen sagen Klasse und Notenbuch, Bedeutung
daß für jedes einzelne Artikel, die wir in diesem,
vor, dass die Artikel in dieser Variable namens Klasse.
Und ich möchte etwas zu tun.
Also werde ich all diese Daten zusammenfassen und tatsächlich das Doppelteilung zurück.
>> Jetzt bemerken wieder hier gibt es die Konzept der Ganzzahldivision in Swift.
Wenn Sie Abteilung verdoppeln weil Sie Dezimalstellen möchten,
dann müssen Sie explizit zu sein, nicht nur um die eine Seite,
weil es nicht geht, damit Sie um Daten auf beiden Seiten dieses zu zwingen,
Sie müssen eigentlich selbstverständlich beide Seiten in Doppelzimmer
so dass Sie sehr ausdrücklich darum, sicherzustellen,
daß du tust Doppelteilung.
>> Gehen wir weiter.
Also, wenn ich tatsächlich accept-- wollen so dass in diesem besonderen Beispiel
Dies ist immer noch ein Kommando Linie basierte Anwendung.
Und wir fangen an, einige zu sehen die Einschränkungen des jungen Sprach
in, dass, obwohl wir können Zugriff auf die Argumente mit Hilfe
diese process.arguments, ist es noch nicht die sauberste
Sache, die wir je gesehen haben.
Aber im Grunde Ich ermutige Sie, Zum Sortieren der Blick auf diese Codes
und versuchen, herauszufinden, was genau vor sich geht.
>> Im Grunde, was passiert ist, dass wir nehmen eine Liste von Argumenten
und wurden in Nötigung sie ganzen Zahlen, und dann sind wir
werde das als eine Möglichkeit nutzen, um zu drucken aus dem Durchschnitt der alle unsere Qualitäten.
Umzug auf.
Jetzt gibt es eine andere Art von data-- anderen Datentyp statt Arrays
genannt Wörterbücher, die sehr beliebt sind ähnlich wie Suchlisten oder Hash-Karten
und sind auch ähnliche PHP-assoziative Arrays.
So dass sie die Vorstellung haben, der Schlüssel und Werte.
>> Und sie sind auch mit definierten Diese eckigen Klammer-Notation,
jedoch ist der Unterschied dass Wörterbücher haben
innerhalb der eckigen Klammer, einem Doppelpunkt.
Und der Doppelpunkt trennt die Daten geben, dass ist der Schlüssel und der Wert.
Also in diesem Fall, ich werde zu erstellen ein Wörterbuch, um einige Grade zu akzeptieren.
Und es wird sein, vom Typ string: int,
was bedeutet, dass alle der Tasten gehen, um Zeichenfolgen sein,
und alle Werte derjenigen Tasten gehen, um ganze Zahlen sein.
>> Was dies bedeutet, ist, dass ich kann, dann referenzieren die spezifischen Daten
Ich möchte, dass die Verwendung dieser Schlüssel nicht als mit numerischen Indizes wie ich
würde für ein Standard-Array.
Nun wollen wir sehen, gibt es Eine wichtige Sache
daß Ich möchte auch erwähnen, etwa Dieses spezielle Codesequenz.
Und das ist, dass es eine andere Art von Daten,
oder besser gesagt es gibt diese Idee der Daten, die ist
innerhalb Swift enthaltenen genannt Extras.
>> Und was bedeutet es optionals daß sie die Tatsache anerkennt
dass manchmal Sie nicht zu gehen Holen Sie sich die Daten, die Sie eigentlich erwarten.
Und so, was ich damit meine, ist-- das lassen Schauen Sie sich diese Folge von Code
die durchläuft alle der Argumente, die dieser Code übergeben wurden
und versucht, sie zu konvertieren, versucht in einer Vielzahl von Strings aufgeteilt,
weil es eine sehr übernimmt bestimmte Art von Argument.
Und dann wird es zu versuchen, zu zwingen die Strings, die Zahlen darstellen
in ganzen Zahlen, die Typen sind, dass ich dann berechnen.
>> Also im Grunde bin ich zu gehen Verwenden Sie diese Funktion, Split
existiert in der Swift-Standardbibliothek.
Ich werde es in der übergeben Zeichenfolge, die möchte ich teilen.
Und dann in mit diesem Art von funky-Syntax, die
Ich weiß nicht, ob wir bekommen, aber vielleicht haben wir
tatsächlich geben Sie die genaue Zeichen, die wir zu teilen möchten.
Was bedeutet dies konkret aussehen?
Werfen wir einen Blick auf tatsächlich Sie diesen Code ausführen.
>> So zum Beispiel, sagen wir, ich habe ein Quiz, und ich bekam 50 darauf.
Und ich habe ein psets und Ich habe eine hundert darauf.
Und ich got-- gibt es einen anderen Quiz und ich bekam eine 40 darauf.
Ich schlug ein, und schließlich, was passiert, ist, dass, was er tut
nimmt diese Parameter, Splitting die Saiten an diesen Doppelpunkten,
Erkennen, dass es zwei Elemente in jeder,
und es ist im wesentlichen Verfolgung von jedem.
>> So habe ich in meinem Wörterbuch ein Quiz, dessen Wert wird durch die Zahl 50 dargestellt wird,
Ich habe einen PSET, die den Wert 100 hat, und ein Quiz eine, die einen Wert von 40 hat.
Dann später in der Code, den ich tatsächlich im Durchschnitt alle diese Werte
und listen Sie alle Tasten des dass insbesondere Wörterbuch.
Wichtig dabei ist so dass Sie feststellen können
was geschieht, ist, dass das, was wir tun möchte, ist diese Zeichenfolge nehmen
und teilen Sie es an diesem Charakter, die wir wieder mit diesem Split tun können
Funktion mit dieser Art von interessante Syntax, die hier vorhanden ist.
>> Nur für jetzt davon ausgehen, dass das ist OK.
Wir werden mehr, dies zu betrachten in nur eine kleine Weile.
Aber jetzt gibt es eine interessante Aspekt, dass wir tatsächlich
wollen versuchen, diese zu konvertieren Zeichenkette in eine Ganzzahl.
Aber in anderen Sprachen was passieren könnte, ist,
dass wir wahrscheinlich versuchen würde, es zu tun, und entweder zurück
eine Art Wächter Wert wie negative
oder vielleicht ein null oder so ähnlich.
Oder vielleicht wäre es nur einen Fehler verursacht.
Und wir würden zu haben dann fangen diesen Fehler
und dann versuchen, zu tun etwas basierend auf der Tatsache
dass diese Umwandlung in eine ganze Zahl ist fehlgeschlagen.
Das ist, wo diese Idee von optionals kommt in.
Sie können tatsächlich eine Datentyp, ist ein int Fragezeichen, zum Beispiel.
Das bedeutet, dass dieser ganze Zahl ist in der Tat optional.
Und was passiert, ist, dass es enthalten eine ganze Zahl, oder auch nicht.
Es kann in der Tat, werden diese anderen Idee, ganz genannt nill.
In welchem ​​das bedeutet, dass es kein Wert überhaupt in diese.
Es ist nicht einmal Null, es gibt einfach keinen Wert.
Es gibt absolut keinen Wert dargestellt.
>> Und das ist, was diese Linie 71 tut.
Ist, dass sie sagen, dass ich wollen versuchen, einen Wert einzustellen,
eine Variable namens Klasse, gleich der Umwandlung dieser String in ein int.
Also habe ich die Saite getroffen, diese ersten Komponenten,
oder vielmehr der zweite Komponenten, da dies
Null indiziert dies Zeichenfolge, die ich teilen.
Und ich möchte konvertieren daß auf eine ganze Zahl.
Aber es ist nicht immer gehen kann in der Regel, weil sich vorstellen
was passieren würde, wenn, anstatt Typ eine Anzahl, Typ I natürlich wie asdf.
>> Das wird scheitern.
Es ist nicht wirklich sein wird in der Lage, dass eine Ganzzahl umgewandelt
wie ich erwarten würde.
Also anstatt Auftakt eine Art eines Fehlers,
Wir haben diese Idee eines optional.
Und das bedeutet, dass die Verwendung von Dieses Fragezeichen was ich sagen kann,
OK, ist es möglich, dass ich nehmen Damit wandelte sie in ein int,
und steckte es in eine Variable, was auch vom Typ int sein.
Wenn ja, dann, dass Mittel dass diese erfolgreich war
und dieser erste Teil der Block weiter.
>> Ansonsten habe sie.
Es gibt keinen Wert in grade-- oder vielmehr gibt es keinen Wert in bestehenden,
und ich haben tatsächlich zu versuchen behandeln diese Fehlerbedingung.
Sie werden das sehen Fragezeichen, die ganze Zeit
in Swift und Beispielcode für Swift.
Und in der Tat die nill Betreiber diese Art von Fragezeichen, die optionals Teil,
wird sich wahrscheinlich ein der schwierigsten Dinge
zu Art wickeln Ihren Kopf um wie Sie tatsächlich damit arbeiten.
>> Es könnte sinnvoll jetzt zu machen.
Und in der Tat, als ich Schreiben Beispielcode für diese,
sicherlich habe ich verstanden, was vor sich ging,
aber immer noch gefangen mich Überraschung jeder so oft
wenn ich, dass zu finden Einige Daten war eigentlich
ein Null-Version, eine optionale Version der Daten, die ich erwartet hatte.
Also einfach erkennen, dass, wenn Sie eine optionale Version
Sie entpacken müssen, dass Daten aus dieser Box.
>> Also ist es ein bisschen wie I-- vorstellen, wenn Sie eine Box und es etwas enthält.
Und was Sie tun müssen, ist die Frage zu stellen,
ist es möglich, dass diese Box tatsächlich enthält die Daten, die ich suche?
Wenn ja, dann ziehen Sie diese Daten aus und legen Sie sie in diesem vorhandenen Variablen.
Wenn nicht, dann muss ich nur noch den Inhalt dieser Box ignorieren
ganz, weil es buchstäblich nichts enthält.
>> Haben Sie Fragen zu diesem Thema?
OK, lassen Sie uns weg von dieser Art von Kommandozeilen Sache
und beginnen, einige der Technik
dass Xcode bietet uns in Form von Spielplätzen.
Es gibt also eine Menge Möglichkeit hier mit Swift.
Und wenn Sie Xcode und sie zu öffnen fragt, was Sie tun möchten,
Sie eröffnen können sich auf dem Spielplatz und gleich um zu spielen
mit einer Menge von unterschiedlichen Strukturen und Aspekte der Sprach
bevor Sie überhaupt anfangen zu berühren die iOS-SDK oder die Mac-SDK.
>> Also dieser Fall, sagen wir mal, dass ich have-- Ich habe eine relativ konstruiertes Beispiel
hier, aber Geduld mit mir, wie wir sort von Arbeit durch dieses Beispiel.
Nehmen wir an, dass wir eine Menge zu tun haben des Exponenten mit einem festen Wert,
wie wir wissen, dass wir werden zu müssen, tun eine Menge Platz Kräfte, zum Beispiel.
So werden wir einen Wert zu nehmen x, werden wir es zu quadrieren,
wir werden einen Wert zu nehmen y und wir werden es zu quadrieren.
So weiter und so fort.
>> Jetzt könnten wir eigentlich nur erstellen Potenz von 2 Funktion dafür, oder?
So würden wir eine Leistung von 2-Funktion erstellen.
Wir werden ein Doppel akzeptieren.
Wir oder output-- wir werden Rückkehr eine doppelte Art.
Wir werden dieses Ergebnis zu übernehmen und dann zweimal
was wir eigentlich die Ergebnisse, nehmen Sie die wurde der Wert initialisiert, um von einem,
und multipliziert es mit x.
Also im Grunde haben wir x mal x hier.
>> Und so dann kann ich dann, wie wir könnten erwarten, nehmen Sie diese, führen Potenz von 2,
auszustatten, einige Daten, Ich mag 2.0.
Und wir bekommen, um die Ergebnisse hier 4.0 sehen.
Laufleistung von 2 auf 3.2, und wir Lernen Sie unser Ergebnis 10,24 sehen.
So weit so gut, nicht wahr?
Jetzt denken wir, na ja, OK.
Jetzt habe ich tatsächlich brauchen machen viele Befugnisse 3.
Also werde ich kopieren und einfügen gesamten Code, ändern Sie den Namen der Funktion aus
Potenz von 2, um Leistung von 3, und alles, wird das gleiche mit Ausnahme dieser Wert sein
Hier, dieser Bereich, 1 ... 2.
>> Also anstatt zu wiederholen diese Schleife zweimal,
Ich möchte diese Schleife dreimal wiederholen.
Also habe ich den Wert von nur ändern 1 bis 3-- bzw. 2-3.
Also noch einmal, den gleichen Code, das ist die einzige Veränderung.
Jetzt funktioniert das auch.
Power of 3 in einen Wert von 2 zur Verfügung gestellt.
Wir erhalten 8.
Also 2 gewürfelt.
Und 3,2 hoch drei ist 32,768.
So weit, so gut, nicht wahr?
Aber hoffentlich ist dies ein wenig bisschen wie ein rotes Tuch für Sie
in, dass wir jetzt einige Doppelcode
mit Ausnahme einiger sehr gering Wechsel von einer zur nächsten.
So ist es eine Möglichkeit, dass könnten wir in der Lage, zu vereinfachen
dieses Problem, wo wir können tatsächlich, zur Laufzeit herausfinden einige,
uns zur Verfügung stellen, die eine Funktion hat Gerade die Kraft, dass wir wollen.
>> Und es gibt diese Idee Verschlüsse, die wirklich, wirklich
im Rahmen der Swift wichtig, und in vielen anderen Sprachen.
Aber wahrscheinlich werden Sie sehen, es in Swift verwendet mehr,
weil es eingebettet in der Sprache
als Sie in anderen auch moderne Sprachen.
Also die Idee eines Verschlusses dies ist, ist, dass wir
eine Funktion, die dazu bestimmt ist sind ist eine generische Funktion, eine generische Leistung
Funktion.
>> Und diese Funktion wird zu akzeptieren dieser Exponent, dass wir tatsächlich
wollen erstellen.
So zum Beispiel, die erste So wollten wir eine Leistung von 2.
So würden wir Kraft des liefern und dann in Klammern 2.
Und nun merken, was dies tatsächlich zurückkehrt.
Dies nimmt eine Eingabe von einem Primer genannt y, die eine ganze Zahl ist,
und es diese verrückte Suche zurück was in parentheses-- Klammern
Doppelpfeil und dann doppelt.
>> Was dies bedeutet, ist, dass ich gehen, um eine Funktion zurück.
Ich werde nicht zurückkehren eine andere Art von Daten, ich bin
in der Tat eine Funktion zurückgibt das hat dieser Parameter, dass
übernimmt eine Doppel als Eingabe und gibt ein Doppel als Rückgabewert.
Und als Ergebnis, weil ich jetzt genannt habe Macht der, vorbei an einem gewissen Wert für y,
und ich werde diese anderen schaffen function-- Ankündigung, dass es
eine weitere Funktion, die erstellt hat Innere this--, was ich tue
wird ich dann ändern dieser Wert, dass man
Wert, die ich geändert hatte 2-3, habe ich jetzt machen, y.
>> Und diese besteht.
Also jedes Mal, dass ich Macht nennen der im Wesentlichen, was passiert,
ist, dass ich eine Funktion zurückgegeben.
Beachten Sie, dass ich hier definiert haben eine neue Variable namens Platz.
Ich habe es gleich Macht der eingestellt, sofern dieser Wert 2 an die Macht.
Und was diese zurück ist die Funktion.
So Platz, die variable Quadrat, ist jetzt vom Typ Funktion
das hat this-- oops, nach oben ein wenig bit--, die diese Signatur hat,
akzeptieren, ein Doppelzimmer und ein Doppelausgang.
>> So, jetzt, was ich getan habe, ist ich habe im Wesentlichen
erstellt eine Funktion namens Platz, akzeptiert jeden Wert und wird es zu quadrieren.
Wir können sehen, was hier passiert, nach unten.
Platz 3 bedeutet zum Beispiel, werde ich um den Wert 3 zu nehmen und es im Quadrat.
Wie genau funktioniert das?
Wenn ich übergeben Macht der 2-- als ich Durchlauf 2 in diese Macht der Funktion,
diese Variable y mit diesem Wert 2 besiedelt.
Und das ist eine Art im Speicher gehalten.
Das ist ein bisschen wie in gehalten Zustand irgendwo in dem Computer
wir wissen nicht wirklich egal, wie oder wenn an dieser Stelle.
>> Aber ich diese Funktion zurück genannt potenzieren.
Und wieder, es ist nicht wirklich wichtig was diese Funktion aufgerufen wird,
können wir wirklich nennen es etwas, dass übernimmt eine Doppel und gibt ein Doppelzimmer,
aber verwendet diesen Wert y darin.
Also auch wenn es diese Funktion, Diese exponentiater Funktion, die ist
zurück zu zurückgegeben meine Variable, die ich Platz namens,
es darin enthalten ist diese Vorstellung von dem, was y war.
Und es erinnert sich daran.
>> Also jedes Mal, wenn ich diesen Funktionsaufruf, ist nun Platz namens, verwendet es das.
Das bedeutet aber auch, dass ich kann, erstellen Sie eine andere Variable mit
eine andere Macht der.
So kann ich einen Würfel Variable zu erstellen, für die Beispielsweise bieten, um sie hoch 3.
Jetzt Würfel tatsächlich statt einige Wert und die Würfel, und senden Sie es.
So können wir sehen, dass ich ein Wert 8 aus, dass.
>> Aber das hat nicht Wert y geändert, weil sie
in Art von unabhängigen Variablen statt.
Sie sind eine Art in gehalten unabhängige Bereiche im Speicher.
So Würfel wird immer x auf die Leistung von 3.
Und Platz wird immer x hoch 2, die
bedeutet, dass Platz ist immer Quadratzahlen, wie ich erwartet.
Und Würfel wird immer in Würfel geschnitten Zahlen, wie ich erwartet.
Dies bedeutet auch, dass es manchmal möglich bekommen eine Art von funky suchen Syntax
wo Sie Kraft des zumin verfügen unten auf dem Bildschirm hier, Leistung von 5.
Und Sie gehen in das Ergebnis.
Sie rufen diese Funktion, das ist wurde mit der Nummer 4 zurück.
Und was im Wesentlichen diese 4 zur fünften Potenz,
wir können die Ergebnisse dort zu sehen.
Mit mir so weit?
>> Also diese Idee wird als Verschluss, weil das, was wir im Grunde tun
ist, dass wir Verkapselung Einige Daten into-- Art
der diese Daten einschließe in eine Funktion, und wir sind
in der Lage, diese Funktion wieder zu verwenden.
Nun ist diese Syntax kann aber tatsächlich eine große Menge vereinfacht werden.
Und es gibt viele Möglichkeiten in Swift für diese Vereinfachung.
Und das ist, was für die Folge diejenigen tatsächlich sehen.
So in 7b wir zum Beispiel nehmen Sie das exakt gleiche Code.
>> Aber jetzt nicht tatsächlich eine Funktion definieren
innerhalb dieser Macht der funktionieren und geben Sie ihm einen Namen,
und dann den Namen dieser Funktion, die
dann wird im Rahmen der verwendeten Diese Schließung, sondern wir sind
gerade dabei, es zu vereinfachen.
Wir brauchen nicht diese Funktion zu nennen.
Das ist also das Konzept einer anonyme Funktion, wo wir können dann
akzeptieren als Eingabe in Klammern hier, die Variable x, die vom Typ double ist.
>> Wir werden den Typ double zurück.
Und dann das Schlüsselwort, n ist der Anfang dieser Funktion.
So fest, dass all dies ist in geschweiften Klammern
und wir definieren ein anonymen funktionieren hier.
Nur ein einfacher Weg, genau dasselbe Definition.
OK?
Aber halt, Swift können wir tatsächlich , weiter zu gehen und noch mehr zu vereinfachen,
weil wir nicht wirklich egal, dass dieser Parameter
Namen eine bestimmte Sache.
Es kann wirklich nichts aufgerufen werden und können wir immer noch, dass die ersten Parameter.
>> So in der Tat gibt es diese spezielle Art der Daten in anonyme Funktionen,
gibt es diese speziellen Namen Variablen in anonyme Funktionen
dass mit Beginn der Dollarzeichen und stellen
die Parameternummern, Null indiziert, für diese Funktion.
Also gibt es ein paar Dinge passiert.
Hier werde ich zurückkehren, und dann eine geschweifte Klammer, die eine Funktion,
oder?
>> Beachten Sie, dass ich nicht definiert haben, die Parametertypen oder der Rückgabetyp.
Es kann tatsächlich geschlossen werden wegen der Unterschrift
dieser ursprüngliche Funktion.
Also haben wir beseitigen können daß als eine Möglichkeit.
Aber auch ich kann Dollar-Zeichen Null zu bedienen Betreiber dieses ersten Parameter, der ist
in dieser anonymen Funktion übergeben.
Also noch mehr vereinfacht es.
OK?
So weit, ist es gut?
>> Jetzt ist es an dieser Typ-- tun Sie erinnere mich an diese Dollar-Zeichen Null
dass wir in diesem geschweifte Klammer sah sahen wir nur ein wenig, während
Vor dieser Swift sechs Beispiel?
Es war hier richtig.
Beachten Sie, dass ist genau das, was wir auf der Suche,
ist, dass wir bestanden haben in diese Split-Funktion
eine anonyme Funktion, überprüft die ersten Parameter
zu sehen, ob es gleich dem Doppelpunkt.
Und das ist genau das, was ist passiert, ist, dass alle
wir doing-- die Rückkehr Schlüsselwort wird angedeutet,
in diesem Fall-- wir Rückkehr dieser Wert, wo wir den Vergleich
der erste Parameter gegen dieses Zeichen Doppelpunkt.
Und damit diese Art von entmystifiziert.
Und du wirst, dieses Konstrukt zu sehen viele in Swift Syntax, dies zu tun zu halten, dass
im Sinn, als Sie einen Blick auf diese.
Jetzt werden wir aussteigen können die Schienen ein wenig
und gehen Sie wirklich Lust, dass Shows sogar einige mehr von Swifts Macht.
Sie könnten sogar einige sehen davon in Probencodes.
Also das ist, warum ich werde Ihnen dies zu zeigen.
>> Im Grunde, was wir tun können, ist, dass zuerst von allem, es war Art von unnötig für mich
alle diese Macht der Umsetzung Code, denn wenn Sie die Darwin importieren
Bibliothek, es tatsächlich eine Funktion pow genannt, die dies für Sie erledigt.
So können wir es noch mehr zu vereinfachen und haben jetzt unsere Leistung bis Funktion nur
ist ein wunderbares Motto, wo wir gerade senden Sie dieses anonyme Funktion,
nimmt Dollarzeichen 0 als Basis und y als Exponenten.
>> Aber wir bekommen können, wirklich Lust, wenn wir
erkennen, dass Swift hat einen viel Power unter der Haube.
Viele der Betreiber, dass wir beschäftigen mit,
Plus-Zeichen und Division Symbole und all diese Dinge, die Sie normalerweise
arbeiten mit mit Datentypen in einer Programmiersprache,
sind eigentlich erweiterbar in Swift.
Was also, dass wir in dieser bedeutet, können unsere eigene Operatoren definieren.
>> So, jetzt bin ich müde von der Eingabe in das alles pow und dann eine Klammer und dann
die Basis.
Ich will nicht, das zu tun.
Eigentlich möchte ich eine haben Betreiber, die mich, das zu tun erlaubt.
So kann ich sagen, dass Swift Ich möchte um es einem Bediener, Sterne zu erstellen
star-- durch die Art, wie ich kann nicht mit dem Karat weil das Karat ist ein Operator,
tut etwas völlig anderes.
Also ich will nicht sortieren der prallen, dass.
Und so, was Sie in einer Vielzahl sehen von Sprachen, darunter Python,
ist wie star star Betreiber zum Exponenten darstellen.
>> Also das ist der einzige Grund, Deshalb habe ich das getan.
Und es wird sein, einen Infix Typ Betreiber.
Und ich muss liefern um es einige Informationen
über den Vorrang von dieser Betreiber so ist es links assoziativ.
Es ist, als relativ Hoch Vorrang gegen
zur Aufrechnung oder Multiplikation.
Es ist eine höhere Rang als alle von denen.
So weiter und so fort.
Und dann habe ich definieren Funktion, die tatsächlich
diktiert, was dieser Operator tut.
So davon aus, dass ich einen linken Seite und der rechten Seite,
das wäre vielleicht ein bessere Variablennamen für diese.
Linken Seite und der rechten Seite.
Ich kann dann diese Macht der linken Seite zu der rechten Seite
und zurück, dass Wert.
So jetzt ist es super süß.
Alles, was wir tun müssen, ist 2-Sterne-Sterne-3 und 2 in der dritten Potenz,
und wir bekommen den Wert 8.
2-Sterne-Sterne 10 2 bis die 10. Macht, bekommen wir 1024.
>> So, jetzt unsere Macht der Funktion, was wiederum unterschiedlich ist,
weil die ganze Idee dahinter war, dass wir eine Funktion haben, dass
findet immer einen gewissen Wert und multipliziert es-- bzw.
nimmt den Exponenten an die gleiche Strom.
So jetzt ist es noch einfacher.
So, jetzt ist es nur Dollar Zeichen 0 star star y.
Wir haben nicht einmal zu pow mehr verwenden.
>> OK, der verloren hat?
Tun wir OK?
Sie haben Fragen zu diesem Zeug?
Ja?
>> ZIELGRUPPE: Wenn Sie-- [unverständlich] die funk hoch y Doppel.
Also, wenn Sie eine Funktion zurückgibt.
DANIEL ARMENDARIZ: Funk hoch y Doppel.
Oh ja, ich weiß nicht, was die y Zahlen sind.
Bitten um Entschuldigung.
>> ZIELGRUPPE: Warum sind Sie wieder eine Funktion [unverständlich] Gehäuse.
Ist das nicht Null-Dollar-Sterne- Sterne y [unverständlich]
feststellen, dass Betreiber mit, dass Rückkehr Doppel [unverständlich] verdoppeln?
>> DANIEL ARMENDARIZ: Also lassen mir Ihre Frage zu beantworten
Wie ich es verstehe, und Sie können mir sagen, wenn ich nicht verstehe Ihre Frage.
Also das Konstrukt, das geschweifte Klammer Dollar-Zeichen Null Stern Stern y,
eine Funktion ist.
Und einen Parameter, der es übernimmt dieses Dollarzeichen Null vertreten.
Die Rückkehr Schlüsselwort in dieser stillschweigend sehr kurz, anonyme Funktion Syntax.
>> Was bedeutet, dass im Wesentlichen was dieser sagt,
ist, dass ich die Definition ein function-- und dann werde ich
nennen es einfach something-- wo ich einen gewissen Wert y.
Ich habe y, die doppelt so hoch ist.
Und ich bin wieder ein Doppel.
Und ich habe in diesem Rück Y- sorry, Ich sollte diese Y- x nicht angerufen.
Oh je, oh je, oh je.
X-- nope-- star star y.
>> Also das ist nur ein vereinfachte Version davon.
Und so der Grund, dass ich Dollar Zeichen Null ist, dass mit diesem Gehäuse
bedeutet, dass ich nicht mehr zu geben kriegsgefangen, oder nicht mehr
Ich habe etwas zu tun wie 3-Sterne-Sterne-2.
Ich kann einfach nur einen einzigen Funktion namens square
dass immer nehmen einen gewissen Wert als Eingabe
und tatsächlich das Quadrat dass zurückzukehren.
>> Also der ganze Zweck des Verschlusses um nur irgendwie kapseln die Tatsache,
dass ich auf y verwenden, wann immer wollen immer Ich nenne diese Funktion als Strom
, während Sie dieses Exponenten.
Also dann wieder ein Funktion, die akzeptiert
eine doppelte, die die Basis ist, und gibt das Ergebnis dieser Exponent
ist hier der Schlüssel.
Und das ist der Hauptunterschied.
Es gab nur ein bisschen von einem Tusch.
>> Das ist nicht anders im Vergleich zu den vorhergehenden Beispielen,
aber es war nur ein bisschen a gedeihen wir tatsächlich
erstellen einen Operator in Swift und tatsächlich Sachen damit machen,
Das ist eine Art coole Sache.
Habe ich Ihre Frage beantworten?
Süße.
Sonst noch etwas, bevor wir weitermachen?
OK.
>> Nun ist diese Art stellt sich die Frage dass-- auch OK,
Jetzt haben wir die Möglichkeit für Funktionen zurückgegeben.
Können wir auch als Daten zu übergeben oder als Parameter, um andere Funktionen?
Und in der Tat wir können.
Also lassen Sie uns sagen, dass wir alle den gleichen Code.
Wir haben den Platz variable dass diesen Code Quadrat.
Und wir haben die Würfel variable dass einige Datenwürfel.
Und wir tatsächlich angewendet werden soll für eine Vielzahl von Zahlen.
>> Also, was wir könnten versucht sein, zu tun, natürlich, was sicherlich gültig ist,
ist es, über diese Liste von Zahlen iterieren und gelten meine Funktionen Quadrat und Würfel
und erhalten Sie zwei neue Listen Ergebnisse dass diese ursprünglichen Liste Quadrat sind
und in Würfel geschnitten sind.
Durchaus akzeptabel.
Aber was ist die Sache, wir hier sehen, ist, dass wir,
wieder, Vervielfältigung unseres Codes.
Und es gibt vielleicht eine Gelegenheit, für uns, dies ein wenig zu vereinfachen.
Was, wenn es eine Möglichkeit für uns, eigentlich immer überlaufen eine Liste
und gerade in dieser magischen geben Funktion eine Variable,
stellt eine Funktion dass wir übernehmen möchten
zu jedem einzelnen Element in dieser Liste.
Dadurch wird das Konzept von dem, was werden als Funktionen höherer Ordnung.
Und das ist im Wesentlichen, was diese ist, ist, dass wir eine Funktion erstellen.
>> Und in diesem Fall, es heißt ein Mapper, nur um ihm einen Namen zu geben, gerade
Mapping über jeden einzelnes Element in einer Liste.
Wo ich eine Liste nehmen und ich nehme eine Funktion.
Und diese Funktion natürlich hat einen bestimmten Signatur.
Es übernimmt als Parameter Doppel und gibt er ein Doppel.
Und die ganze Folge der Diese Funktion wird
um eine neue Liste, die vom Typ double ist sein.
OK?
>> Und was ich tun werde, ist diese Funktion f gelten
auf jedes Element in der Liste.
Und reply-- und nicht diese neue zurückkehren Liste als Ergebnis, was wirklich cool ist.
Jetzt kann ich Funktionen herumreichen.
Und diese Idee höherer Ordnung Funktionen ist wirklich wichtig.
Und das ist wirklich nur Mapper Umsetzung des armen Mannes
einer Funktion, die aufgebaut ist in Swift genannt Karte.
Und genau dies tut, vielleicht sogar ein bisschen besser.
>> Dies ist nur eine Art von generischen, vereinfachte Version, dass
ermöglicht es uns, das zu sehen, Konzept, das hier gilt.
Nun ein Blick auf die Art und Weise, dass ich tatsächlich meinen Platz gelten
und meine Würfel Funktionen zu dieser Liste von Zahlen.
Ich meine Mapper.
Ich auszustatten, meine Liste von Zahlen.
Ich auszustatten, die der Funktion, die vor sich geht
Zu jeder dieser Indizes anzuwenden.
Und es wird sein, Ausgabe als Ergebnis.
Und ich werde zu bekommen, um zu sehen, dass ich im Quadrat und in Würfel geschnitten meine Zahlen als Ergebnis.
>> Und natürlich ist der Mapper dauert jede Art von anonymen Funktion.
Wir können auch sehen, dass die ich angelegt habe eine neue anonyme Funktion,
dauert nur einige Parameter und teilt es durch 2.
Und wir sehen, dass ich habe in der Tat, unterteilt meiner Liste 2 statt.
Cool?
So weit, ist es gut?
So, jetzt lassen Sie uns kommen zurück, um diese Idee.
Lassen Sie implementieren diese zurück in Im Rahmen einer Notenbuch.
>> Und wenn ich das tun, wir, dass ich kann sehen, Anwendung einer Vielzahl von diesen Optionen-
oder eine Vielzahl von diesen Funktionen höherer Ordnung
um tatsächlich zu vereinfachen meine Fähigkeit, ein tun Vielzahl von Dingen auf Listen von Zahlen.
So zum Beispiel, wenn I nehmen Sie eine Liste von Zahlen,
eine der Funktionen höherer Ordnung was existiert, wird als zu reduzieren.
Was tut eher reduzieren als Karte, reduziert wird
nehmen Sie zwei Elemente in der Liste, wird eine Funktion übernehmen, dass
vergleicht die beiden Elemente die Liste, und es wird dann
Art der output-- Ausgang dieses Funktions
wird ein weiteres Element, dass Sie dann im Vergleich zu anderen.
>> So könnte man diese tatsächlich nutzen Summe der Zahlen in der Liste.
Zum Beispiel, wenn Sie hatte eine Liste mit 1, 2, 3, 4, 5,
Sie nehmen die ersten Elemente, 1 und 2.
Sie können, um sie eine Ergänzung gelten Funktion, die diese beiden Elemente erfolgt
und spuckt eines dieser Elemente, was wäre der Wert 3 sein.
Dann nehmen wir den Wert 3 mit der nächsten Element der Liste, summieren die beiden,
und dann fahren Sie durch die Liste.
>> Wir reduzieren die Liste auf einen einzigen Wert.
Und es passiert einfach so, dass das Plus-Symbol
ist ein Operator, so wie wir gerade gesehen haben.
Dieser Operator ist tatsächlich eine Funktion,
hat genau diese Liste, die wir möchte, und nicht dieser Eigenschaften
dass wir wollen.
So ermutige ich Sie, werfen Sie einen Blick auf diese.
Ich möchte von unterwegs zu sortieren auf von einigen dieser Code
so dass wir tatsächlich auf einige schauen tatsächliche, echte, wahre Swift in Xcode,
in iOS-Entwicklung.
Aber schauen Sie sich diese und sehen, wenn du kannst
Analysieren durch, was los ist mit einigen dieser höherer Ordnung
Funktionen wie Filter, zu reduzieren, und Sie werden auch
siehe irgendwo hier Karte auch.
Es ist hier genau richtig.
Wo es eine Folge nehmen Noten und es wird tatsächlich
ordnen Sie mit dem Schalter Konstrukt, die Sie vielleicht von C zu erkennen,
aber eigentlich ist es viel mehr mächtiger als der Schalter Konstrukt
dass wir in C haben
>> Und wir werden, dass zur Anwendung jedes Element in der Liste
und tatsächlich erbringen der Brief Grade von jedem
dieser Klassen mit all diese Konzepte dass wir so gut wie vor gesprochen.
Nun wollen wir umgehen nur für einen Minute und sprechen über Strukturen.
Und so Strukturen sind eine Wartezeit in C, die wir waren in der Lage, eine neue Art von Daten zu definieren.
Strukturen existieren im Swift.
Und tun Sie so viele andere Konstrukte genannt Aufzählungen und Klassen, die wirklich
diese Idee, ein ganz anderen Ebene.
>> Und im Grunde ist es nur eine Möglichkeit, Die Definition einer neuen Art von Daten.
Also, wenn Sie get-- wenn Sie kommen in Klasse oder Strukturen oder Aufzählungen,
nicht verwirren von ihr.
Es ist nur die Art der Definition einige neue besondere Art von Daten.
Und das ist wirklich wichtig, wenn wir über iOS App-Entwicklung sprechen
denn alles, was besteht in der iOS-App
ist im Wesentlichen eine Aufgabe in irgendeiner Form.
Und eine Aufgabe ist im Grunde ein Klasse oder eine Aufzählung oder eine Struktur.
>> Also in diesem Fall bin ich Definition einer neuen Art von Daten
daß ich rufe Bewertung das ist ein paar Eigenschaften, einschließlich
ein Name und eine Sequenz von Noten.
So eine Art von Bewertung dass ich im Sinn haben
würde Quiz, zum Beispiel.
Ich will eine haben Einschätzung, dass ein Quiz war
und daß eine Vielzahl von Qualitäten hatte damit verbunden, für ein Quiz,
Quiz zwei, so weiter und so fort.
>> Oder ich könnte eine andere Art haben Lage für die Problem-Sets.
Und ich kann Dinge tun.
Ich kann eigentlich Funktionen innerhalb dieser Art
von Daten, die jetzt als Verfahren sind.
Also, wenn Sie jemals sehen die Wort-Methode, es ist wirklich
ist nur eine Funktion, die gilt auf einen sehr spezifischen Klasse,
oder eine sehr spezifische Art von Daten.
Es ermöglicht uns, die Daten innerhalb zu ändern.
>> Also mit anderen Worten, wenn ich will fügen Sie eine Klasse, um meine Einschätzung,
dann alles, was ich tun müssen, ist zu fügen Sie die Partitur, die eingegeben wurde
Um die Funktion in meine internen Eigenschaft.
Es gibt eine andere saubere Konstruktion hier in Swift, der in diesem Punkt Punkt Punkt ist
Operator, der die Noten können bedeutet, Jetzt akzeptieren beliebige Anzahl von ganzen Zahlen.
Und Noten wird eine sein Array mit ganzen Zahlen, dass
haben meine Funktion, bestanden die bedeutet, dass ich Sachen wie diese zu tun.
>> Ich kann keine Noten hinzufügen und einfach liefern eine beliebige Anzahl von ganzen Zahlen in sie
und tatsächlich ein Array zur Verfügung gestellt werden dieser Werte in meiner Funktion
oder in meinem Verfahren, wie es der Fall.
Nun ist dies wichtig, weil alles in Xcode, alles in iOS,
ist in der Tat ein Ziel.
So sollte man nicht vergessen wenn wir Büste offen Xcode
und vorwärts zu springen über iOS Varianten zwei und drei
und tatsächlich auf die Version vier gehen.
>> Und wieder, all dies wird über das Seminar Seite veröffentlicht.
iOS vier ist eine Art ausgewachsenen Umsetzung einer sehr einfachen Anwendung.
Und was diese app tut, ist es lädt eine Benutzeroberfläche, die wie folgt aussieht.
Auch wenn wir uns auf Storyboard klicken wir können sehen, dass dies, wie es aussieht.
Dies ist die Benutzeroberfläche.
Es hat einen Titel an der Spitze.
Ich habe es heißt Web-Galerie.
>> In der Mitte gibt es ein Element, heißt das Bild UI-Ansicht.
Und am Ende gibt es eine Werkzeugleiste mit einem einzigen Tasten dass
hat dehnbare Bereiche sind, die es erlauben, Zentrum in der Mitte dieser Symbolleiste.
Und was passiert, ist, dass, wenn dieses lädt sie eine JSON-Datei, die es herunterlädt
auf einem Server enthalten ist anderswo analysiert, dass JSON-Datei,
und die JSON-Datei sieht ein bisschen so aus.
Die JSON-Datei sieht wie folgt aus.
Da ist es.
>> Es verfügt über einen Albumnamen und es hat eine Reihe von Fotos.
Jedes dieser Bilder haben einen Namen und auch
eine URL selbst, dass die Betreiber JPEG-Version dieser einzelnen Foto.
Also, was passiert ist, dass, wenn dieses Programm Lasten, es die JSON-Datei herunterlädt,
analysiert sie, legt all dies in das Äquivalent eines Arrays in IOS
App-Entwicklung, die eine NSArray ist.
Und dann kann ich dann laden diese Daten in eine Anwendung
und laden Sie es auf meinem Bildschirm.
>> Es ist ein Bild, das geladen wurde Mit der Taste ganz unten.
Wenn ich auf Get Nächstes Bild, dann zieht das Bild aus dem Internet
und das Bild ersetzt im Bild UI-Ansicht.
So können Sie diese herunterladen und tatsächlich schauen Sie es auf Ihrem Computer.
Und bauen und tatsächlich kompilieren Sie es auf Ihr Gerät.
Aber im Grunde war der Prozess Damit schaffen die storyboard--
oder besser gesagt nicht create-- aber wählen Sie das Storyboard.
Und tatsächlich we'll--, wenn Sie nicht wissen mind-- wir werden nur ein paar Sekunden dauern,
tatsächlich zeigen, wie dies geschehen war.
>> Nur damit, wie wir tatsächlich Dies erreichen gemacht ein bisschen mehr
ersichtlich.
Einzelansicht Anwendung, ich bin werde dieses Seminar nennen
vier, die diese bestimmte Anzahl.
Speichern Sie die Datei auf dem Desktop.
OK, werde auf dem Storyboard klicken.
Und was ich tun werde, ist es, meine Bildansicht zu finden,
ziehen Sie sie auf meinen Benutzer Schnittstelle und vermitteln.
Jetzt brauchen Sie nur leider Zentrierung wird nicht eine ganze Menge zu tun,
außer einer Screen das ist genau so groß.
>> So können wir uns davon überzeugen durch Klicken dieses Doppelkreis Sache,
Senkung dieses Pop Menü hier und ändern
in der Vorschau anzeigen, wo wir eigentlich die Chance bekommen, eine Vorschau
Dies wird tatsächlich Blick auf anderen Geräten.
Wie wir sehen können, tun wir nicht einmal sehen es auf diesem speziellen Fall.
Also werde ich dies jetzt zu schließen.
>> Und ich werde wählen dieses Symbol unten ganz am
unteren Teil des Bildschirms.
Er sagt, Resolve Auto Layout Probleme.
Es tut uns leid, es am Boden zu schneiden.
Aber wenn ich an, dass Sie, was ich erhalten Sie dieses Pop up-- weggehen.
Da bekomme ich dieses Pop-up, dass erlaubt mir, fehlenden Einschränkungen hinzuzufügen.
Und dadurch, dass es dann irgendwie sperren
in den Mittelabschnitt der Bildschirm, wie ich erwarten könnte.
>> Um nun diese Schaltfläche an erhalten oben drauf, muss ich an die Redaktion zu gehen.
Zum Einbinden in und klicken Sie Navigation Controller.
Was das tun werden, ist, dass wird hinzufügen diese ganze andere Komponente, um sie,
aber es wird tatsächlich zu verbinden es zurück zu meiner ursprünglichen UI.
Und die Details wieder, wir nicht wirklich brauchen, um über die im Moment egal.
Aber ich möchte ein Baby haben Symbolleiste am unteren Rand.
Also werde ich Shows Toolbar überprüfen.
>> Und das bietet in meinen Augen, die jetzt woanders,
können wir sehen, dass es hier verlinkt.
Es bietet nun eine Symbolleiste bei tiefstem UI.
So, jetzt, statt der Auswahl ein Bildansicht kann ich ein Etikett zu finden,
oder vielmehr ein toolbar-- mal sehen, wo ist das?
Was heißt es?
Ein button-- Artikel bar-- item-- sorry-- Leistenschaltfläche Artikel.
Plop, dass es und tragen Sie eine Paar der flexible Räume auf beiden Seiten
um tatsächlich zu zentrieren, dass.
So jetzt habe ich meine UI erstellt, im Grunde.
Und ich kann es einen Namen geben, indem Doppelklick an der Spitze
hier und sagen, Web-Galerie und so weiter.
Nun wieder sind diese Elemente , die von ihnen selbst existieren.
Und ich habe die Verbindung sie meinen Code,
Ich durch wieder bringen tun können bis dieser Doppelkreis-Symbol,
Wechsel von der Vorschau.
Was, nebenbei bemerkt, jetzt können wir sehen, schön zentriert und wird gut aussehen
auf einer Vielzahl von Geräten.
>> Wechseln Sie in die automatische, die wird um das Viewcontroller-Code.
Und nun dieser Teil ist wichtig.
Damit Sie diese Verbindung herstellen zwei Elemente, Ihren Code auf der Benutzeroberfläche
Sie die Einzelteile zu wählen, dass Sie verbinden möchten.
So dass in diesem Fall haben wir eigentlich kodieren möchten
ändern, die enthalten ist Bild innerhalb dieses Bild UI-Ansicht.
Also, wenn Sie steuern Sie aus die Bildansicht und ziehen,
werden Sie feststellen, dass Sie eine kleine Bar, wenn Sie gehen, um alles dieses Popup lassen
up auftreten.
>> Und er sagt, dass wir um eine Verbindung herzustellen.
Und von hier aus möchte ich, um ihm ein Name, so etwas wie Galerie.
Drücken Sie die Eingabetaste.
Und das bietet tatsächlich eine Variable mit dem Namen Galerie
dass ich dann in meinem Code verweisen das Bild zu ändern, zum Beispiel.
Wie funktioniert dieser Code tatsächlich aus?
Wieder gut, ich will nicht zu verbringen zu viel Zeit auf sie.
Und ich ermutige Sie, laden Sie es und werfen Sie einen Blick.
Aber einer der am meisten Wichtig ist auch die Code
dass tatsächlich holt ein Bild.
>> Also in diesem Fall möchte ich In meinem Fotos zu bekommen
Array, das enthalten ist, in meiner Klasse.
Ich möchte definieren den Namen und die URL das ist nicht von dieser JSON analysiert wurde.
Eigentlich stellen Sie das Gerät an das erhalten URL, um die URL von diesem zu holen,
und dann holen die Daten aus der Inhalt der URL.
Dann wandeln die Daten in einem Bild indem man sie in die UI Bild.
Also noch einmal, das sind alles verschiedene Arten von Objekten, unterschiedliche Typen von Klassen.
>> Und dann kann ich dann meine gallery.image gleich dieser Daten.
Und das ist eine Art des Fleisches davon, die tatsächlich dann
in der Lage, die Daten from-- Wechsel ändern das Bild von der einen zur nächsten.
Also noch einmal, hoffentlich jetzt eine Menge der Konstrukte
macht ein wenig mehr Sinn.
Beachten Sie, dass es einige Ausrufezeichen hier.
Die Ausrufezeichen sind im wesentlichen auf die Extras bezogen.
>> Was ich im Grunde sagen, ist dass nicht einmal die Überprüfung
zu sehen, ob es Daten innerhalb dieser optional,
Ich werde weitermachen und übernehmen dass es und packen es.
Denken Sie daran, dass wir verwendet die Analogie Art von einem Paket für die optionals
und wir müssen die auspacken Paket und herausziehen der Daten.
Das Ausrufezeichen Kräfte, die tatsächlich passieren.
>> Aber ich weiß, dass dies sicher, weil ich überprüft
zu sehen, ob Bilddaten gleich ist auf Null, ich habe tatsächlich überprüfen
um, wenn diese optionale sehen Tatsächlich war, fehlgeschlagen.
Wäre dies in der Tat bereits ausgefallen.
Und so bin ich sicher, dass ich einmal, dieses zu erhalten Stelle ich sicher, dass die Daten auspacken.
Das könnte Sie auch sehen die Form eines Fragezeichens.
Wenn wir also nach unten scrollen, wo ich müssen tatsächlich die Daten analysieren.
>> Also lassen Sie sich nicht durch gesetzt werden diese Art von langen Namen.
Sie können in den Apple zu finden Entwickler-Site eine Menge
Bezugnahmen auf alle der Objekte und alle Prozesse
dass tatsächlich machen es möglich.
Aber beachten Sie, dass es sich im Wesentlichen eine Funktion, wo ich geben sie einige Daten.
Und ich wieder eine Art von Daten.
Und ich muss dies als Schlüsselwort verwenden wandeln sie in diesem NSDictionary?
Was wiederum eine optional NSDictionary.
Was ich dann müssen überprüfen Sie, ob sie existiert.
>> Also habe ich das verwenden können, wenn wir erfolgreiche Gleichen analysiert,
dann weiß ich, dass diese optional tatsächlich Daten enthält.
Oder, was ich hier tat, war, einfach davon ausgehen, dass, wenn es
keine Fehler aufgetreten sind, die es in der Tat sicher.
Also gut, ich möchte danke Ihnen allen sehr für Ihr Kommen.
Ich weiß, das war eine Menge, aber es war nur eine Stunde
über einige sprechen ziemlich fortgeschrittenen Zeug.
Und so werden Sie hoffentlich ein zu bekommen Möglichkeit, den gesamten Code herunterladen
und werfen Sie einen besseren, gründlichen Blick darauf werfen.
Art überzeugen Sie sich von all von dem Zeug, das geht auf.
Und ich möchte Ihnen danken alle wieder gekommen sind.
Und viel Glück mit Ihrem Abschlussarbeiten.
Ich wünsche ihnen einen wunderbaren Tag.