Wie füge ich Anrufe Methoden nur in einer Version des Betriebssystems, wenn für mehrere Versionen kompilieren?
-
06-07-2019 - |
Frage
Ich habe eine Anwendung, die mit einer minimalen Systemanforderungen von Tiger (OS X 10.4) kompiliert wird, aber ich brauche einen Code enthalten mit Leerzeichen zu behandeln, wenn die App auf Leopard ausgeführt wird (OS X 10.5).
Wie kann ich das tun?
(Der Anruf, den ich machen muß, ist -[NSWindow setCollectionBehavior:]
).
Lösung
- Stellen Sie Ihre Basis SDK (für alle Konfigurationen des Ziel Sie bauen) auf die Version des Betriebssystems, die den Aufruf enthält.
- Stellen Sie die Deployment Version auf den frühesten OS Sie Ihren Code möchten, starten auf.
- Für alle Anrufe, die in früheren Versionen des Betriebssystems gibt es nicht, Sie testen müssen, bevor Sie anrufen, entweder durch respondsToSelector mit: (für Methoden) oder Prüfung gegen null (für Funktionen und Statik). Sie können, wenn Sie möchten einen Scheck für die OS-Version tun, aber es ist robuster den spezifischen Aufruf zu überprüfen.
Der Cross-Development Programming Guide die Techniken beschrieben, im Detail.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow