Vererbung von Nicht-Protokoll, Nicht-Klassen-Typ 'CGPoint'

9

Ich möchte eine benutzerdefinierte CGPoint-Unterklasse erstellen, um einige Eigenschaften hinzuzufügen, aber ich erhalte diesen Fehler:

  

Vererbung von Nicht-Protokoll, Nicht-Klassen-Typ 'CGPoint'

Ich habe keine Ahnung, warum das nicht möglich ist. Meine Klasse ist so einfach:

%Vor%

Ich habe versucht, einige Bibliotheken wie CoreGraphics oder QuartzCore ohne Erfolg hinzuzufügen. Wenn es bereits einige Fragen oder Lösungen für dieses Problem gibt, zeigen Sie mir bitte in die richtige Richtung.

    
Philip Müller 25.10.2014, 17:29
quelle

2 Antworten

12

Dies ist nicht möglich, weil Sie ein class von struct übernehmen wollen. CGPoint ist struct und sie unterstützen keine Vererbung außer konforme protocols .

Wenn Sie dies wirklich tun möchten, verwenden Sie composition anstelle von inheritance .

%Vor%     
codester 25.10.2014, 17:37
quelle
0

Die Fehlermeldung, die Sie erhalten, sagt Ihnen genau, was falsch ist. Die einzigen Dinge, die als Basisklassen verwendet werden können, sind Klassen. Sie können auch Ihre Klasse / Struktur / enum einem Protokoll anpassen lassen, aber nur Klassen können für die Vererbung verwendet werden. Da CGPoint eine Struktur ist, kann sie nicht für Unterklassenzwecke verwendet werden.

    
Lance 25.10.2014 17:37
quelle

Tags und Links