swift Vererbung über Delegierte

Zwei Dateien
Proj_Bauteil_Funktion.swift
Proj_Bauteil_FunktionDelegate.swift

Inhalt DateiDelegate.swift

import Bibliothek

protocol Proj_Bauteil_FunktionDelegate {
.    func name(<var>:<Type>!)
}

Ähnlich zum Header gibt sie das an, was importiert wird.

Bezug auf Vererbung in der Hauptdatei

class xy {
.          // Deklarationen
.         var delegate: Proj_Bauteil_FunktionDelegate?
.
.        // Funktionen
.       func tcpSocket( <argument>) {
.                // Code
.                delegate?.receiveAck(data)
}   

Die vererbte Variable wird mit einem definiert und immer mit einem ?  aufgerufen.
Was bedeutet das !  ?
Vermutung: Die Eltern erhalten dieses Zeichen.