2016-04-16 13 views
0

Dies mag wie eine triviale Frage über die Leistung erscheinen, aber in Swift, wenn Sie eine Klasse als final deklarieren ist es notwendig, auch alle seine Methoden als final zu deklarieren oder ist das nur eine überflüssige Redundanz? Ich möchte nur sicherstellen, dass meine konkreten Klassen als final ausgeführt werden, um die Sicherheit und Leistung in meiner App zu maximieren. Danke für irgendwelche Tipps, Weisheiten oder Wissen im Voraus!Swift Final Classes und Funktionen

+0

Dang. Wurde bereits gefragt –

+1

Wenn Sie "Whole module optimization" in den Compiler-Build-Einstellungen aktivieren, hat dies einen ähnlichen Effekt. Aber es wird vom Compiler für Sie gemacht und Sie müssen nicht alle Klassen als endgültig markieren. Der Nachteil: Es funktioniert nur für Apps, nicht für Bibliotheken und es erhöht drastisch die Bauzeit. Aber es könnte z.B. nur für RELEASE-Builds. – Darko

+0

@Darko was ist 'ma'? –

Antwort

2

Swift, wenn Sie Klasse als final deklariert ist es notwendig, auch alle ihre Methoden als endgültig zu erklären oder ist das nur eine überflüssige Redundanz

Ja, es überflüssig ist. Wenn die Klasse endgültig ist, sind alle ihre Mitglieder implizit endgültig. Sie erhalten die Effizienz, dynamischen Versand zu vermeiden, und was Sie tun möchten.

+0

Also im Grunde keine Notwendigkeit, diese Methoden endgültig zu machen? –

+1

Richtig, denn auf welche Weise könnten Sie eine dieser Methoden außer Kraft setzen? Sie können keine Unterklasse erstellen, daher gibt es keinen Ort für eine Überschreibung. – matt