Niedawno zostałem zmuszony do aktualizacji do Swift 3.0 i wygląda na to, że konwersja Xcode nie wykonała świetnej roboty. Na szczęście jestem w stanie rozwiązać większość problemów ręcznie, jednak mam trochę zamieszania.Czy to jest przesłonięcie metody, czy nie?
Linia ta, że overrode metoda w uiController canBecomeFirstResponder
pracował przed uaktualnieniem do Swift 3.0:
override func canBecomeFirstResponder() -> Bool {
return true
}
Jednakże teraz zwraca błąd:
Method does not override any method from its superclass.
jednak, usuwając override
nieco nie robi wydaje się, że to naprawia, ponieważ wywołuje inny błąd, który wydaje się być sprzeczny z poprzednim:
Method 'canBecomeFirstResponder()' with Objective-C selector 'canBecomeFirstResponder' conflicts with getter for 'canBecomeFirstResponder' from superclass 'UIResponder' with the same Objective-C selector
Czy w rzeczywistości występuje nadpisanie? Dlaczego Xcode daje mi tutaj mieszane wiadomości?
Dla porównania przyjrzałem się this question i chociaż jest bardzo podobny, dotyczy klasy, a dotyczy metody. Aby być bezpiecznym, spróbowałem użyć rozwiązania tego pytania, a następnie je zepsułem i podniosłem te same błędy.
Przepraszam za pytanie głupie, ale co masz na myśli mówiąc "zaznacz"? – Vemonus
Mam na myśli wybrać/podświetlić to. – vadian
Szybki samouczek: po wybraniu należy nacisnąć ⌘C lub wybrać Edycja> Kopiuj, aby skopiować go do schowka, jeśli chcesz go później wkleić. –