Swift 3: Warnung "Unbenutztes Ergebnis des Anrufs" beim Überschreiben von BecomeFirstResponder

9

In einer UIView Unterklasse überschreibe ich BecomeFirstResponder (was ein Bool zurückgibt.

%Vor%

Wenn ich diese Methode für ein Objekt der Unterklasse aufruft, erhalte ich eine Warnung Result of call to 'becomeFirstResponder()' is Unused .

Diese Nachricht ist nicht passiert, wenn ich becomeFirstResponder nicht überschreibe.

Ich weiß, dass sich mit Swift 3 das Verhalten von Methoden, die Ergebnisse zurückgeben, entwickelt hat (siehe @discardableResult auf SE-0047 ), aber ich würde erwarten, dass eine Überschreibung dasselbe Verhalten wie die Super-Methode hat.

Habe ich falsch gedacht, oder ist es vielleicht ein Compiler Bug?

Bearbeiten :
Zu Ihrer Information, Ich habe einen Fehler gemeldet .

    
Matthieu Riegler 28.07.2016, 13:50
quelle

3 Antworten

1

Ich bin mir nicht sicher, ob es ein Fehler ist. Wenn Sie eine Funktion überschreiben, könnte es durchaus möglich sein, dass der Rückgabewert jetzt nicht ignoriert werden kann. Ich würde einfach @discardableResult hinzufügen, wenn Sie das wollen:

%Vor%     
Yuchen Zhong 10.02.2017 19:56
quelle
0

Dies könnte der richtige Weg sein, auch wenn ich kein Experte für schnelle, sondern von Objective-C bin.

%Vor%     
Aragunz 10.02.2017 20:00
quelle

Tags und Links