Ich habe private Methoden in Klassenerweiterungen deklariert, laut Beste Methode zum Definieren privater Methoden für eine Klasse in Objective-C .
Aber ich habe gerade festgestellt, dass in Xcode 4, wenn ich die Deklaration einer privaten Methode ganz weglasse und sie einfach implementiere, die App kompiliert und ohne Warnung oder Fehler läuft.
Also, sollte ich mich überhaupt damit befassen, private Methoden in Klassenerweiterungen zu deklarieren?
Warum sollten wir Methoden überhaupt deklarieren müssen? In Java, Sie nicht ... weder in Ruby.
Dies wird kompiliert und läuft gut ohne Deklaration:
%Vor%Aber zuletzt habe ich überprüft, das wird eine Warnung geben:
%Vor%Mit anderen Worten, es ist genau wie in C: Eine Deklaration ist nicht notwendig, wenn die Definition vor einer Verwendung steht. C erfordert dies, um zu vermeiden, dass dem Compiler ein zusätzlicher Durchlauf hinzugefügt werden muss (einer, um die Funktionen zu finden und dann einen, um sie tatsächlich zu analysieren). Ob du sie deklarieren solltest, wenn es nicht nötig ist, es liegt wirklich am Stil der Codebasis, mit der du arbeitest.
Wie bei anderen Sprachen, für die keine Deklarationen erforderlich sind, gehen manche einfach mit dem Extra-Durchlauf vor, während andere die Anzahl und Typen der Argumente oder den Rückgabetyp zum Zeitpunkt der Kompilierung nicht kennen müssen (sie suchen nach Funktionen) zur Laufzeit statt, oder sie haben nicht stark typisierte Variablen zu Beginn, so dass es nicht "wichtig"), so dass sie es einfach überspringen können.
Tags und Links objective-c category private-methods class-extensions