Ich habe ein Problem, wenn ich meine App in swift 2 erstelle. Xcode sagt:
'erforderlicher' Initialisierer 'init (coder :)' muss von der Unterklasse von 'UIView'
bereitgestellt werden
Dies ist der Code der Klasse:
%Vor%und dies ist der Klassenfragebogen:
%Vor%Merci!
Hinweis für erforderlich : Schreiben Sie den erforderlichen Modifizierer vor der Definition eines Klasseninitialisierers, um anzugeben, dass jede Unterklasse der Klasse diesen Initialisierer implementieren muss.
Hinweis zu überschreiben : Sie überschreiben immer den überschreibenden Modifikator, wenn Sie einen übergeordneten Initialisierer überschreiben, selbst wenn die Implementierung des Initialisierers der Unterklasse ein einfacher Initialisierer ist.
Oben wird auf beide Hinweise verwiesen: Swift Programming Language / Initialization
Daher sollte Ihre Unterklasse von UIView dem folgenden Beispiel ähneln:
%Vor%Einige Kommentare zu diesem Code:
%Vor%Ein Var-Name sollte mit Kleinbuchstaben beginnen: var qr
Möchten Sie mit 2 leeren Strings initialisieren? In Ihrem Code erhalten Sie ["", ""] bei init. Dieses Array wird nicht sehr benutzerfreundlich sein, da Sie Frage und Antwort der Reihe nach mischen.
Wäre wahrscheinlich besser, ein Array von Paaren zu erstellen:
%Vor%Sie greifen auf seine Komponenten zu: qr [i] .q und qr [i] .r
Sie müssen testen, ob nbQuestion in Grenzen ist. mit der vorherigen Definition von qr wäre das
%Vor%Hinweis: nbReponse und nbQuestion teilen sich den gleichen Wert für ein gegebenes qr
%Vor%%Vor%Nach der neuesten swift-Syntax muss die Methode init Methoden hinzufügen:
Nicht-optionale Variablen müssen mit einem Wert ...
initialisiert werdenEntweder QR als optional deklarieren
%Vor%ODER initialisiere es:
%Vor%