Verständnisfrage zu protocols

Klaber

Mitglied
Thread Starter
Mitglied seit
14.09.2016
Beiträge
32
Hallo,

vielleicht kann mich jemand erleuchten:

Mir ist nicht ganz klar warum ich in einer Klasse Protokolle deklarieren muß. Nehmen wir als Beispiel die Funktion print(), die lt. Apple-Doku z.B. die property 'description' auswirft. Will ich also Infos zu einer eigenen Klasse ausgeben, muß ich die Klasse um das protocol CustomStringConvertible erweitern und die property 'description' bereitstellen.

Wenn ich nun die property description in meiner Klasse angebe ohne diese um das protocol zu erweitern, dann funktioniert es (natürlich) nicht. Aber warum ist das so? Wenn ich print(MeineKlasse) aufrufe, greift die Funktion dann nicht direkt auf die propertiy in MeineKlasse zu?

Danke für Infos.