Comment puis-je être capable d'obtenir la version OSX dans l'objectif-C? Je voudrais éviter d'utiliser des commandes shell. E.g "10.5" ou "10.4" P>
6 Réponses :
NSProcessInfo *pInfo = [NSProcessInfo processInfo]; NSString *version = [pInfo operatingSystemVersionString]; Sorry for the formatting, I'm using my iPad to answer this.
C'est bon si vous souhaitez afficher la version à l'utilisateur, mais pas bien si vous souhaitez effectuer un traitement en fonction de la version du système d'exploitation.
Cela fonctionne, mais il y a beaucoup de texte "ordures" qui est ajouté avec celui-ci (construire des informations, etc.).
@Jeremyp existe une méthode operatingsysystemversion code> vous donne une structure avec trois entiers, une version majeure, mineure et patch, ce qui pourrait être plus facile à traiter
Vous pouvez utiliser Le gestalt code> fonction pour accéder à Les composants de la version du système d'exploitation . P>
Les utilisateurs anciennes de Gestalt CODE> peuvent être étonnés de constater qu'il est toujours disponible en 64 bits. P>
Il est maintenant obsolète dans OS X Mountain Lion.
..Avec aucun remplacement décent qui serait aussi complet que Gestalt est / était :-(
Vous pouvez l'analyser de cette manière pour obtenir le format souhaité:
NSProcessInfo *pinfo = [NSProcessInfo processInfo]; NSArray *myarr = [[pinfo operatingSystemVersionString] componentsSeparatedByString:@" "]; NSString *version = [@"Mac OS X " stringByAppendingString:[myarr objectAtIndex:1]];
Voir cette réponse à l'aide de NsappkitVersionNumber code> au cas où vous utilisez AppKit dans votre application (et que vous souhaitez exécuter 10.8+ comme Gestalt est maintenant obsolète): P>
Ajoutez ce code après Après ajout de code ci-dessus, veuillez ajouter ci-dessous le code où vous souhaitez voir votre version d'OS P> #import code> NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
NSLog(@"System version :%@",systemVersion);
à partir de 10.10, vous pouvez utiliser Il y a aussi un nsprocessinfo.processinfo.operatingsystemversion code> pour obtenir une structure NsoperatingSystemversion. isoperatingsystematlatlversion: code > Méthode. p>
Dupliqué possible de Mac OS X: Remplacement Pour Gestalt () pour tester la version du système d'exploitation au runtime