Prüfung MAD
Prüfungsvorbereitung: Mobile Application Development (iOS)
- a) Skizzieren Sie den Layer-Aufbau des iOS!
b) Welche Regel ist bezüglich der Verwendung der Layer zu beachten? - Bei der Cocoa-Touch-Programmierung kommen die Konzepte Target-Action und Outlet zum Einsatz.
Erläutern Sie die Aufgabe und Umsetzung dieser Konzepte im Zusammenhang mit dem Interface Builder! - Methoden können in Swift als Klassenmethoden und Instanzmethoden deklariert werden.
a) Erläutern Sie die Unterschiede!
b) Schreiben Sie jweils ein Quellcode-Fragment für die Implementation einer Instanz- und Klassenmethode! - Was ist der Unterschied zwischen Variablen und Konstanten?
- Was versteht man in Swift unter Typsicherheit?
- Was sind Tuples und wofür sind sie besonders gut geeignet?
- Was sind Optionals und welchen Vorteil bietet deren Verwendung?
- Wofür können Assertions verwendet werden?
- Welche Möglichkeiten der Fehlerbehandlung stehen in Swift zur Verfügung?
- Welche generellen Schleifen-Varianten können in Swift verwendet werden? Nennen Sie je ein Beispiel!
- Funktionen sollten in Swift mit externen und lokalen Parameterbezeichnern implmentiert werden. Erläutern Sie dieses Konzept!
- Was sind Closures und wofür werden sie verwendet?
- Was ist der Unterschied zwischen Reference Types und Value Types?
- Was ist der Unterschied zwischen Stored Properties und Lasy Stored Properties?
- Was sind Computed Properties?
- Welche Sichtbarkeitsdirektiven stehen für Instanzvariablen zur Verfügung?
- Was sind Collections?
- Wofür können Extensions verwendet werden?
- Was versteht man unter einem Protokoll?
- Das iOS-Betriebssystem unterstützt für die Speicherverwaltung keine automatische Speicherbereinigung (garbage collection). Welche Möglichkeit der Speicherverwaltung steht stattdessen zur Verfügung und wie funktioniert diese?
- Mit der Xcode-Version 4.2 wurde das Werkzeug ARC eingeführt.
a) Was heißt ARC?
b) Wie funktioniert ARC? - Nennen Sie die Eigenschaften mittels derer die Größe und Position von Views (Ansichten) definiert werden kann!
- Nennen Sie 3 wichtige Container View Controller!
- Wofür wird ein UINavigationController verwendet?
- Was ist unter dem Begriff Ansichtenhierarchie (view hierarchy) zu verstehen?
- Welche Aufgaben werden durch View Controller realisiert?
- Sie wollen mithilfe der Klasse UIImageView ein Bild in Ihrer App darstellen. Wie lautet der Quellcode, wenn folgende Festlegungen umzusetzen sind?
a) Die Rahmengröße der UIImageView-Instanz soll dem Rahmen des UIScreen-Objektes entsprechen.
b) Das Bild „banner-faculty.png“ soll als UIImage-Objekt, mittels des Initialisierers „named“, an die Eigenschaft „image“ der UIImageView-Instanz übergeben werden.
c) Weisen Sie anschließend der Eigenschaft „view“ des UIViewController’s die UIImageView-Instanz zu. Nutzen Sie als Bezeichner für den View Controller „myViewController“! - Welche Möglichkeiten der optischen Benachrichtigung stehen in iOS zur Verfügung? Erläutern Sie die Unterschiede!
- Was ist unter dem Begriff indexPath im Zusammenhang mit Tabellen zu verstehen?
- Die Struktur IndexPath besitzt u.a. die Eigenschaften section und row. Was kennzeichnen diese beiden Eigenschaften im Zusammenhang mit Tabellen?
- Wofür wird die Klasse URL benötigt?
- Was ist der Unterschied zwischen einer synchronen und asynchronen Verbindung?
- Viele Klassen im Cocoa Touch Framework besitzen die Property delegate.
Worfür wird diese Property benötigt? - Erläutern Sie das MVC-Modell!
- Das Protokoll URLSessionDownloadDelegate definiert u.a. die folgenden Methoden:
a)func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) b) func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didResumeAtOffset fileOffset: Int64, expectedTotalBytes: Int64) - Im Framework "URL Loading System" existieren u.a. die Klassen URLRequest und URLResponse.
Wofür werden diese Klassen benötigt? - Das Protokoll UITableViewDataSource definiert u.a. die folgenden Methoden:
a) func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
b) func numberOfSections(in tableView: UITableView) -> Int
c) func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
Erläutern Sie die Bedeutung dieser Methoden! - Schreiben Sie das Quellcode-Fragment um das tabBarItem eines ViewControllers mit einer Info-Plakette (Badge) zu versehen.
Der angezeigte Text in der Info-Plakette soll die "1" lauten.
c) func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL)
Erläutern Sie die Bedeutung dieser Methoden!