Wie füge ich Anrufe Methoden nur in einer Version des Betriebssystems, wenn für mehrere Versionen kompilieren?

StackOverflow https://stackoverflow.com/questions/1014427

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:]).

War es hilfreich?

Lösung

  1. Stellen Sie Ihre Basis SDK (für alle Konfigurationen des Ziel Sie bauen) auf die Version des Betriebssystems, die den Aufruf enthält.
  2. Stellen Sie die Deployment Version auf den frühesten OS Sie Ihren Code möchten, starten auf.
  3. 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
scroll top