Alternative zu poseAsClass in Mac OS X 10.5 und höher?
-
18-09-2019 - |
Frage
Apple hat veraltet NSObject
der poseAsClass:
Methode für OS X v10.5 und höher. Gibt es eine andere Art und Weise Klasse posiert Arbeit zu machen?
Lösung
Ich glaube nicht, gibt es eine Klasse-Ebene gleichwertig, aber Sie können die Implementierung von zwei Methoden austauschen, die oft war der Zweck poseAsClass:
die Verwendung von (natürlich können Sie mehr als eine Methode austauschen, wenn Sie außer Kraft setzen müssen mehrere Methoden in einer Klasse). Sie wollen method_exchangeImplementations in der Objective-C 2.0 Runtime (#import objc/runtime.h
). Ein Wort der Warnung:. Nach method_exchangeImplementations, ruft die ‚neue‘ Methode tatsächlich ruft die ursprüngliche Methode Definition Aufruf
Andere Tipps
Lap Cat gibt eine Alternative.
Was wollen Sie tun? Oft gibt es Möglichkeiten, um posieren. Ich gebe zu, aber, dass es manchmal die einzige Möglichkeit ist:)