7
votes

Obtenir la version OSX avec objectif-c

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"


6 Réponses :


18
votes
NSProcessInfo *pInfo = [NSProcessInfo processInfo];
NSString *version = [pInfo operatingSystemVersionString];
Sorry for the formatting, I'm using my iPad to answer this.

3 commentaires

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 vous donne une structure avec trois entiers, une version majeure, mineure et patch, ce qui pourrait être plus facile à traiter



2
votes

Vous pouvez utiliser Le gestalt fonction pour accéder à Les composants de la version du système d'exploitation .

Les utilisateurs anciennes de Gestalt peuvent être étonnés de constater qu'il est toujours disponible en 64 bits.


2 commentaires

Il est maintenant obsolète dans OS X Mountain Lion.


..Avec aucun remplacement décent qui serait aussi complet que Gestalt est / était :-(



4
votes

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]];


0 commentaires

1
votes

Voir cette réponse à l'aide de NsappkitVersionNumber au cas où vous utilisez AppKit dans votre application (et que vous souhaitez exécuter 10.8+ comme Gestalt est maintenant obsolète):

Comment savoir Quel Mac OS L'application s'exécute?


0 commentaires

-1
votes

Ajoutez ce code après #import code> xxx pré>

Après ajout de code ci-dessus, veuillez ajouter ci-dessous le code où vous souhaitez voir votre version d'OS P>

NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
        NSLog(@"System version :%@",systemVersion);


0 commentaires

8
votes

à partir de 10.10, vous pouvez utiliser nsprocessinfo.processinfo.operatingsystemversion pour obtenir une structure NsoperatingSystemversion. xxx

Il y a aussi un isoperatingsystematlatlversion: Méthode. xxx


0 commentaires