Gestalt ?
tablier
Membre
J'ai raté un épisode ! je ne trouve pas par quoi est remplacé Gestalt?
Donc, comment fait-on pour connaitre la version d'OSx ou s'exécute un programme?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Par exemple pour la version d'OSX où s'exécute le programme, y'a [[NSProcessInfo processInfo] operatingSystemVersion] (OSX 10.10 / iOS8) et tu as même une méthode de -[NSProcessInfo isOperatingSystemAtLeastVersion:].
Ok, Merci je vais voir ça, avec le bémol: ça doit marcher de 10.5 ..... à maintenant!
En fait, ce que je cherche c'est le numéro de version d'OSx. Je n'ai pas OSx 10.10, donc je n'ai pas la méthode operatingSystemVersion. La seule possibilité sous 10.9 est d'utiliser operatingSystemVersionString ce qui donne un string et Apple précise:
Sur le web ce sujet donne lieu à une chose bizarre: Tout le monde dit "Gestalt est deprecated depuis 10.8", mais tous les intervenants donnent comme solution:
Donc, je vais continuer d'utiliser Gestalt!
Il existe les constantes NSAppKitVersionNumber et NSFoundationVersionNumber
Determining the Version of the Operating System or a Framework
@mpergand
Dans le texte indiqué, le conseil est:
Encore une fois c'est un texte qui date de 4 ans et qui n'a pas été remis à jour!
Ce n'est pas facile de tenir à jour les documentations et les exemples, mais quand même, je trouve qu'Apple ne fait plus l'effort nécessaire!
Car si on tu fais le code classique pour du dev cross-SDK (if ([NSProcessIngo instancesRespondsToSelector:@selector(operatingSystemVersion)]( blablabla) comme ça pas de soucis.
C'est ce que je fais d'habitude. Mais parfois ça me laisse songeur.
exemple pour une appli avec Base SDK 10.9 et OSx Deployement target 10.5 j'ai écrit:
Sous 10.9.4, Xcode 5.1.1. je mets des points d'arrêt sur les deux lignes "btOk =" et je lance l'application.
Le debugger s'arrête sur la ligne du runModalForDirectory et non pas sur la ligne du runModal. Il me semble que c'est contraire à ce que j'ai lu dans la doc (ou alors je me plante quelque part!).
(nb defaultButton est décrit ailleurs).
Tu testes l'existence du sélecteur "fileURLWithPath:isDirectory:" sur... openPanel, alors que dans le if tu appelles cette méthode sur ... NSURL (ce qui me paraà®t plus cohérent).
C'est pas openPanel qui est sensé répondre à fileURLWithPath:isDirectory je pense...
Aaaaaaaahhhhhhh! comment n'ai-je pas vu ça!
La Doc a encore frappé, merci je vais corriger.