Professionelles Programm „iOS Developer“ - 5 Monate Best Practice für die Entwicklung mobiler Anwendungen mit Swift 5. Die besten Absolventen werden bei Interviews mit 12 OTUS-Partnerunternehmen erwartet. Daher veröffentlichen wir eine Übersetzung des letzten Artikels aus der Reihe „iOS Interview Questions (Swift)“, in der wir weitere Überlegungen anstellen Dutzende von Fragen, deren Antworten Ihnen bei der Beschäftigung helfen.

1. Was sind Fehler und wo können sie eingesetzt werden?
- Closures sind in sich geschlossene Codefragmente, die als Argument an eine Funktion übergeben oder in einem Programm verwendet werden können.
- Closures in Swift sind wie Blöcke in C und Objective-C und wie Lambdas in anderen Programmiersprachen.
- Dies ist fast dasselbe wie Funktionen, aber Verschlüsse müssen nicht benannt werden.
- Es ist nicht erforderlich, den Typ jedes Parameters zu deklarieren. Wenn Sie dies jedoch tun, müssen Sie den Typ des Rückgabewerts nicht angeben.
Folgen Sie dem Link , um alle Optionen für die Abschlusssyntax anzuzeigen.
2. Was sind entkommende / nicht entkappende Verschlüsse?
@nonescaping (Standard) Verschlüsse:
- Wenn der Abschluss in den Argumenten der Funktion übergeben wird und verwendet wird, bevor der Hauptteil der Funktion ausgeführt wird und die Steuerung zurückkehrt.
- Wenn die Funktion abgeschlossen ist , verlässt der übergebene Abschluss den Gültigkeitsbereich und ist nicht mehr im Speicher vorhanden.
@escaping (außer Kontrolle geratene) Verschlüsse:
- Wenn der Abschluss in den Funktionsargumenten übergeben und verwendet wird, nachdem der Funktionskörper ausgeführt wurde und die Steuerung zurückkehrt.
- Wenn die Funktion abgeschlossen ist , bleibt der übertragene Abschluss im Gültigkeitsbereich bestehen und bleibt im Speicher, bis der Abschluss abgeschlossen ist. der Link
3. Geben Sie an, welche Arten von Sammlungen in Swift verfügbar sind.

- Arrays - werden verwendet, um mehrere Werte desselben Typs in geordneter Form zu speichern.
- Set (Set) - Dient zum Speichern verschiedener Werte desselben Typs in ungeordneter Form.
- Wörterbücher - Dient zum Speichern von Schlüssel-Wert-Paaren in ungeordneter Form.
4. Wie ist die Basisklasse in Swift definiert?
In Swift werden Klassen, die nicht von der Basisklasse erben, und Klassen, die Sie ohne Angabe einer Oberklasse definieren, automatisch zu Basisklassen.
5. Was sind Deinitialisierer und wie sind sie in Swift geschrieben?
Der De-Initialisierer wird unmittelbar vor dem Freigeben des von der Klasseninstanz belegten Speichers deklariert. Der Deinitializer wird mit dem Schlüsselwort deinit geschrieben . Es wird verwendet, wenn Sie eine Aktion oder Bereinigung ausführen müssen, bevor Sie den vom Objekt belegten Speicher freigeben.
Wenn Sie beispielsweise eine benutzerdefinierte Klasse erstellen, um eine Datei zu öffnen und Daten in diese zu schreiben, müssen Sie die Datei schließen, bevor Sie den von der Klasseninstanz belegten Speicher freigeben können.
Der Deinitializer wird ohne Klammern geschrieben und akzeptiert keine Parameter.
deinit { // }
6. Wann werden doppelte Fragezeichen "??" verwendet?
Dieser Operator wird als Null-Join-Operator bezeichnet . Es wird verwendet, um den Standardwert festzulegen, wenn die Option Null ist.
let a: String? = nil let b = "nil coalescing operator" let result = a ?? b print(result) //:"nil coalescing operator"
- a ?? b dekomprimiert optional a, wenn es einen Wert enthält, oder gibt den Standardwert b zurück, wenn a null ist.
- Der Ausdruck a hat immer einen optionalen Typ. Der Ausdruck b muss mit dem Typ übereinstimmen, der in a gespeichert ist.
6. Was ist der Unterschied zwischen '?' Und '!'?
Das Symbol "?"
- Wenn Sie mit Optionen arbeiten, können Sie "?" vor Befehlssätzen wie Methoden, Eigenschaften und Indizes.
- Wenn der Wert vor "?" gleich null, dann alles was nach "?" ignoriert, und der Wert des gesamten Ausdrucks wird gleich Null.
- Andernfalls wird die Option entpackt und alles, was nach dem "?" wirkt auf den entpackten Wert.
- In beiden Fällen ist der Wert des gesamten Ausdrucks optional.
Das Symbol "!"
- Nachdem Sie überprüft haben, ob das optionale Element einen Wert enthält, können Sie auf das Basiswert zugreifen, indem Sie am Ende des optionalen Namens ein Ausrufezeichen (!) Einfügen.
- Das Ausrufezeichen sagt tatsächlich: „Ich weiß, dass diese Option wirklich wichtig ist; bitte benutze es. ”
- Verwenden Sie es nur, wenn Sie absolut sicher sind, dass die implizit entpackte Option beim ersten Zugriff wichtig ist.
7. Was ist ein Typalias in Swift?
Eine Typ-Alias-Deklaration führt einen benannten Alias eines vorhandenen Typs in das Programm ein. Typ-Alias-Deklarationen werden mit dem Schlüsselwort typealias deklariert.
typealias name = vorhandener Typ
typealias StudentName = String let name:StudentName = "Jack"
Sie können Typealien für die meisten Typen in Swift verwenden, zum Beispiel:
- Eingebaute Typen (z. B. String, Int)
- Benutzerdefinierte Typen (z. B. Klassen, Strukturen, Aufzählungen)
- Komplexe Typen (z. B. Verschlüsse)
8. Was ist der Unterschied zwischen Funktionen und Methoden in Swift?
Eine Methode ist eine Funktion, die einer Klasse, Struktur oder Aufzählung zugeordnet ist. Dies gilt sowohl für Instanzmethoden als auch für Typmethoden.
Funktion - im globalen Bereich deklariert und gehört keinem Typ an.
Funktionen können außerhalb von Klassen oder innerhalb von Klassen / Strukturen / Aufzählungen definiert werden, während Methoden innerhalb von Klassen / Strukturen / Aufzählungen definiert werden müssen und Teil von Klassen / Strukturen / Aufzählungen sein müssen.
9. Wie lautet die Syntax externer Parameter?
Ein externer Parameter ermöglicht es uns, Funktionsparametern Namen zu geben, um ihren Zweck verständlicher zu machen.
Funktionsleistung (Basis a: Int, Exponent b: Int) -> Int
* Manchmal ist es nützlich, jeden Parameter beim Aufrufen einer Funktion zu benennen, um den Zweck jedes Arguments anzugeben, das an die Funktion übergeben wird.
Wenn Sie möchten, dass Benutzer Ihrer Funktion beim Aufrufen Parameternamen angeben, definieren Sie zusätzlich zum lokalen Parameternamen für jeden Parameter einen externen Parameternamen. *
10. Ist es möglich, Strukturen und Aufzählungen in Swift neu zu definieren?
Sie können eine Struktur oder Aufzählung weder unterordnen noch überschreiben. Da es sich bei der Struktur um einen Werttyp handelt und der Compiler zur Kompilierungszeit die genaue Größe kennen muss, ist ein Überschreiben unmöglich.
Um die vorherigen Teile zu finden, folgen Sie den Links Teil 1 , Teil 2 , Alles über Verschlüsse , Alles über Eigenschaften
Das ist alles! Wir sind sicher, dass die Übersetzungen nicht nur für Studenten des iOS Developer- Kurses, sondern auch für viele Habr-Benutzer nützlich sein werden. Wir wünschen Ihnen viel Erfolg und freuen uns auf die nächsten Gruppen unserer urheberrechtlich geschützten Online-Programme!