私はOS Xのシステムバージョンを取得したい:10.5.4,10.4.8など私は私のアプリでそれを取得したい、これを行うには?ありがとう!OS Xシステムのバージョンを取得するには?
答えて
あなたは、ゲシュタルトを使用することができます。あなたがチェックしている場合
SInt32 version = 0;
Gestalt(gestaltSystemVersion, &version);
BOOL leopard = (version >= 0x1050);
if (leopard)
{
//draw it this way
}
else
{
//draw it that way
}
は、メソッドが利用可能であるかどうか、それはrespondsToSelectorを使用して、直接それをテストする方が良いでしょうに注意してください:。
gestaltSystemVersionは、10.4という制限があるため、gestaltSystemVersionMajor、gestaltSystemVersionMinor、およびgestaltSystemVersionBugFixの方が10.4であるため、推奨されません。例えば、10.4.10と.11は、あなたのコードを使って検出することは不可能です。 – smorgan
Gestaltは10.8で廃止されましたので、10.6 - 10.8で動作する別の方法がありますか? – adib
gestaltSystemVersionは10.10を表すことができないので、この回答は間違っています。 –
再度、ゲシュタルトを使用できます。詳細については、ドキュメントを参照してください。具体的には、あなたは他の人がMac用のGoogleのツールボックスに言及している呼び出し、ゲシュタルトの周りにココアのラッパーもありますGestalt Manager Reference documentation
の「システムバージョン定数」の部分にgestaltSystemVersionMajor
、gestaltSystemVersionMinor
、およびgestaltSystemVersionBugFix
定数を渡すことをお勧めします: http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMSystemVersion.h
Mehは、単純なチェックの価値よりも面倒なようです。たぶん私は既にGTMを使っていたかもしれませんが、 'gestaltSystemVersionMinor'をチェックする方が簡単です。 –
あなたがでプロパティリストを読み込む「/System/Library/CoreServices/SystemVersion.plistおよび抽出物 『PRODUCTVERSION』キーを、これはOS Xのインストーラアプリケーションがそれをしない方法であることができますここでは例です:。
NSString *versionString;
NSDictionary * sv = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"];
versionString = [sv objectForKey:@"ProductVersion"];
あるいは、コマンドswvers -productVersion
も同じことを行います。
これは動作しますが、ディスクI/Oが発生するため、不要です。ゲシュタルトははるかに優れた(そしてより速い)代替品です。 –
しかし、10.8以降では廃止されました。これが現在利用可能な最善の方法だと思われます。 この質問を参照してください:http://stackoverflow.com/questions/11072804/mac-os-x-10-8-replacement-for-gestalt-for-testing-os-version-at-runtime – hobotron
ありがとう、最高のソリューション私は10時から見つかった8 –
NSString *osver()
{
SInt32 versionMajor=0, versionMinor=0, versionBugFix=0;
Gestalt(gestaltSystemVersionMajor, &versionMajor);
Gestalt(gestaltSystemVersionMinor, &versionMinor);
Gestalt(gestaltSystemVersionBugFix, &versionBugFix);
return [NSString stringWithFormat:@"%d.%d.%d", versionMajor, versionMinor, versionBugFix];
}
私が探していたもの。 – David
悲しいことに、ゲシュタルトは10.8から廃止されました。 –
-[NSProcessInfo operatingSystemVersionString]
は、人間が読み取り可能でローカライズされています。バグの電子メールなどでユーザーに表示したり使用したりするのに適していますが、解析には適していません。
+1:とてもいいです。私は '-operatingSystemVersionString'を呼び出すためのインスタンスを取得するためにクラスメソッド' + processInfo'に言及することを少し編集しました。 – ArtOfWarfare
Cコードから[NSProcessInfo operatingSystemVersionString]を呼び出すことは可能ですか? – Vlad
いいえ。C++から呼び出すためには、ラッパーメソッドを作成する必要があります。そのためには、Objective-Cをプログラムに追加する必要があります。そのファイルをObjective-C++にすることができます.Gestaltを使うこともできます。system()を使ってコマンドラインからswvers-productVersionを呼び出すこともできますし、ファイルシステムから読み込むこともできます。それはあなたの状況とあなたが何をしようとしているかによって異なります。 – brant
使用この方法、それは10_10後のMac OS Xのバージョン
+(SInt32) OSVersion;
{
SInt32 osxMinorVersion;
Gestalt(gestaltSystemVersionMinor, &osxMinorVersion);
return osxMinorVersion;
}
を返し、8_0が全てで
NSOperatingSystemVersion
構造体
を返します
[NSProcessInfo processInfo].operatingSystemVersion
になり、より良い&最も簡単な方法を提示しました。 3つの数字。
- 1. Mac OS XでEclipseバージョンを取得
- 2. Mac OS XアプリケーションからiPod/iPhone iOSのバージョンを取得するには?
- 3. OSのバージョンを取得する方法
- 4. os name、windowsのバージョンを取得するには?
- 5. Python 2.xでシステムのデフォルトエンコーディングを取得するには?
- 6. OS Xでテストドライブ用のCouchDBを取得
- 7. Mac OS Xバージョン10.10.5(14F27)
- 8. OSのバージョンを取得する方法は?
- 9. kextでOS Xのバージョン番号を取得するにはどうすればよいですか?
- 10. IoTHubデバイスツイン/ダイレクトメソッドでOSバージョンを取得
- 11. OS Xハイライトされたテキストを取得
- 12. OS Xペーストボード/クリップボードからHTMLデータを取得する方法は?
- 13. OS X dev:新しいフォントをシステムにインストールする方法
- 14. OS X上の複数のPythonバージョン
- 15. Node.jsを取得してOSのバージョンを確認する
- 16. システム言語の変更を検出するOS X
- 17. Mac OS Xバージョン固有のAPI使用
- 18. Mac OS XのXcodeバージョンLion 10.7.2
- 19. バージョンコントロールとMac OS X Lionバージョンの混在
- 20. Mac OS Xのシステム設定から日付と時刻の形式を取得する
- 21. ネットワーク端末のOSバージョンを取得する(JAVA)
- 22. スクリーンの平均色をリアルタイムで取得する(Mac OS X)
- 23. OS Xとctypes:CGDataProviderCopyData()から生のピクセルを取得する方法?
- 24. テストビルドでOS Xアプリストアの領収書を取得する
- 25. OS Xコマンドラインアプリケーションの絶対パスをプログラムで取得する
- 26. OS X/macOSプロセスのメモリ使用量を取得する方法
- 27. システムのデフォルトブラウザを取得するには?
- 28. Mac OS XでのWeb Startによるログ取得
- 29. mac os x macbooksのバッテリー寿命をプログラム的に取得する方法は?
- 30. OS Xボード-ID情報を取得する方法をプログラム
@JakePetroulesこれは、7年前に尋ねられた場合、どのように複製される可能性があり、擬似オリジナル - 4年前です!日付をご覧ください。 –
他の質問には正解が受け入れられているためです。これには、一番下にあるものを除いて、間違ったまたは古い回答がすべて含まれています。 Stack Overflowは、質問と回答の履歴ログではなく、回答を見つけるためのWikiです。 –