Prüfung MAD

Prüfungsvorbereitung: Mobile Application Development (iOS)

  1. a) Skizzieren Sie den Layer-Aufbau des iOS!
    b) Welche Regel ist bezüglich der Verwendung der Layer zu beachten?
  2. 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!
  3. 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!
  4. Was ist der Unterschied zwischen Variablen und Konstanten?
  5. Was versteht man in Swift unter Typsicherheit?
  6. Was sind Tuples und wofür sind sie besonders gut geeignet?
  7. Was sind Optionals und welchen Vorteil bietet deren Verwendung?
  8. Wofür können Assertions verwendet werden?
  9. Welche Möglichkeiten der Fehlerbehandlung stehen in Swift zur Verfügung?
  10. Welche generellen Schleifen-Varianten können in Swift verwendet werden? Nennen Sie je ein Beispiel!
  11. Funktionen sollten in Swift mit externen und lokalen Parameterbezeichnern implmentiert werden. Erläutern Sie dieses Konzept!
  12. Was sind Closures und wofür werden sie verwendet?
  13. Was ist der Unterschied zwischen Reference Types und Value Types?
  14. Was ist der Unterschied zwischen Stored Properties und Lasy Stored Properties?
  15. Was sind Computed Properties?
  16. Welche Sichtbarkeitsdirektiven stehen für Instanzvariablen zur Verfügung?
  17. Was sind Collections?
  18. Wofür können Extensions verwendet werden?
  19. Was versteht man unter einem Protokoll?
  20. 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?
  21. Mit der Xcode-Version 4.2 wurde das Werkzeug ARC eingeführt. 
    a) Was heißt ARC?
    b) Wie funktioniert ARC?
  22. Nennen Sie die Eigenschaften mittels derer die Größe und Position von Views (Ansichten) definiert werden kann! 
  23. Nennen Sie 3 wichtige Container View Controller!
  24. Wofür wird ein UINavigationController verwendet?
  25. Was ist unter dem Begriff Ansichtenhierarchie (view hierarchy) zu verstehen?
  26. Welche Aufgaben werden durch View Controller realisiert?
  27. 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“!
  28. Welche Möglichkeiten der optischen Benachrichtigung stehen in iOS zur Verfügung? Erläutern Sie die Unterschiede!
  29. Was ist unter dem Begriff indexPath im Zusammenhang mit Tabellen zu verstehen?
  30. Die Struktur IndexPath besitzt u.a. die Eigenschaften section und row. Was kennzeichnen diese beiden Eigenschaften im Zusammenhang mit Tabellen?
  31. Wofür wird die Klasse URL benötigt?
  32. Was ist der Unterschied zwischen einer synchronen und asynchronen Verbindung?
  33. Viele Klassen im Cocoa Touch Framework besitzen die Property delegate
    Worfür wird diese Property benötigt?
  34. Erläutern Sie das MVC-Modell!
  35. Das Protokoll URLSessionDownloadDelegate definiert u.a. die folgenden Methoden:
    a)func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) 
  36. b) func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didResumeAtOffset fileOffset: Int64, expectedTotalBytes: Int64)
    c) func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL)
    Erläutern Sie die Bedeutung dieser Methoden!
  37. Im Framework "URL Loading System" existieren u.a. die Klassen URLRequest und URLResponse
    Wofür werden diese Klassen benötigt?
  38. 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!
  39. 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.