Technisch ist das Überladen von Methoden in Objective-C nicht möglich. In der Praxis können Sie normalerweise die gleichen Ergebnisse erzielen, auch in Fällen, in denen Sie nicht in C ++ arbeiten konnten. In Objective-C enthalten Methodennamen einen Doppelpunkt vor jedem Argument und die Doppelpunkte sind TEIL DER METHODENNAME, was bedeutet, dass Ihr Beispiel verschiedene Methodennamen verwendet. In der Praxis wird dies zu einer Art Pseudo-Named-Parameter-Funktionalität, und Sie können eine Pseudo-Methode über das Argument FUNCTION anstatt über das Argument TYPE überladen. In den meisten Fällen wird dies tatsächlich nützlicher sein, aber es ist keine Überladung der Methode im engeren Sinne, weil die Methodennamen anders sind.
Beispiel:
%Vor%
Dies würde in Objective-C funktionieren, aber Sie könnten keine ähnliche Funktionalität in C ++ bekommen, weil die Argumentnummer und die Typen identisch sind, nur die Argumentfunktionen unterschiedlich sind. In einigen wenigen Fällen kann das C ++ Modell nützlichere Funktionen erreichen. Dies wird durch die NSKeyedArchiver-Klasse demonstriert:
%Vor%
Hier mussten sie Argumenttypen Teil des moethod Namen machen, der hässlich ist. Wenn ich zwischen C ++ Überladung und Objective-C "Überladung" wählen könnte, würde ich immer noch die letztere wählen.