2016-09-28 2 views
7

Ich war vor kurzem gezwungen, auf Swift 3.0 zu aktualisieren und es scheint, als ob die Konvertierung von Xcode keine gute Arbeit geleistet hat. Zum Glück kann ich die meisten Probleme manuell lösen, allerdings hat man mich etwas verwirrt.Überschreitet dies die Methode oder nicht?

Diese Linie, die die canBecomeFirstResponder Methode in uiController overrode vor gearbeitet Swift Aufrüstung 3,0:

override func canBecomeFirstResponder() -> Bool { 
    return true 
} 

Allerdings gibt es nun den Fehler:

Method does not override any method from its superclass.

jedoch den override Bit Doesn Entfernen Es scheint, es zu reparieren, da es einen anderen Fehler aufwirft, der dem vorherigen zu widersprechen scheint:

Method 'canBecomeFirstResponder()' with Objective-C selector 'canBecomeFirstResponder' conflicts with getter for 'canBecomeFirstResponder' from superclass 'UIResponder' with the same Objective-C selector

Gibt es tatsächlich eine Überschreibung? Warum gibt mir Xcode gemischte Nachrichten?

Als Referenz habe ich this question angeschaut und obwohl es sehr ähnlich ist, handelt es sich um eine Klasse, und hier geht es um eine Methode. Um sicher zu sein, habe ich tat versuchen, die Lösung zu dieser Frage und es brach weiter die Dinge und hob die gleichen Fehler.

Antwort

22

canBecomeFirstResponder wurde von einer Methode in Swift 2.2 in eine Eigenschaft in Swift 3.0 geändert. Dies bedeutet, dass Sie Ihren Code ändern müssen, um ihn als Eigenschaft anstelle einer Methode zu überschreiben.

override var canBecomeFirstResponder: Bool { return true } 
2

Schnell Tutorial selbst herausfinden:

  • Mark/select/Highlight canBecomeFirstResponder
  • Presse ⌘C
  • Press ⇧⌘0 (Null nicht O) in der Dokumentation Fenster zu erhalten .
  • Presse ⌘V
  • Press (return)

Jetzt werden Sie die Erklärung siehe

var canBecomeFirstResponder: Bool { get } 

Sie den Unterschied sehen Sie?

+1

Entschuldigung für eine dumme Frage, aber was meinst du mit "markieren" es? – Vemonus

+0

Ich meine, markieren/markieren Sie es. – vadian

+0

Kurzanleitung: Nachdem Sie es ausgewählt haben, müssen Sie ⌘C drücken oder Bearbeiten> Kopieren wählen, um es in Ihre Zwischenablage zu kopieren, wenn Sie es später einfügen möchten. –

Verwandte Themen