我想獲得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
請注意,由於1位數限制,自10.4開始支持gestaltSystemVersionMajor,gestaltSystemVersionMinor和gestaltSystemVersionBugFix,因此不鼓勵使用gestaltSystemVersion。例如,10.4.10和.11不能使用您的代碼進行檢測。 – smorgan 2009-05-20 15:12:30
由於格式塔在10.8中已棄用,是否有另一種方法可以在10.6 - 10.8之間使用? – adib 2012-07-27 17:14:14
現在這個答案是錯誤的,因爲gestaltSystemVersion不能代表10.10。 – 2014-06-07 15:31:25
再次,您可以使用格式塔。查看文檔以獲取更多信息;具體來說,您想通過gestaltSystemVersionMajor
,gestaltSystemVersionMinor
和gestaltSystemVersionBugFix
常數的Gestalt Manager Reference documentation
「系統版本常量」部分還有各地調用其他人在谷歌工具箱爲Mac所提到的格式塔可可包裝: http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMSystemVersion.h
恩,看起來更麻煩,而不是簡單的檢查。也許如果我已經在使用GTM,但只要檢查`gestaltSystemVersionMinor`就簡單多了。 – 2009-09-16 16:46:45
你可以閱讀在屬性列表「/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
也會這樣做。
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];
}
-[NSProcessInfo operatingSystemVersionString]
是人類可讀和本地化的。適合顯示給用戶或用於錯誤電子郵件等,但不適合解析。
使用這種方法會返回Mac OS X版本
+(SInt32) OSVersion;
{
SInt32 osxMinorVersion;
Gestalt(gestaltSystemVersionMinor, &osxMinorVersion);
return osxMinorVersion;
}
10_10後,8_0分別提出了更好的&簡單的方法是
[NSProcessInfo processInfo].operatingSystemVersion
將返回
NSOperatingSystemVersion
結構
所有3個數字。
- 1. 在OS X上獲取操作系統版本
- 2. 獲取Mac OS X上的eclipse版本
- 3. 獲取iOS/OS X系統啓動的準確時間X
- 4. 如何獲取kext中的OS X版本號?
- 5. 如何通過browser.php獲取os版本
- 6. OS X阿凡達系統
- 7. 獲取ASDF系統的版本
- 8. 獲取Android操作系統版本表
- 9. Audio Hijack Pro如何在Mac OS X上捕獲系統音頻
- 10. 如何在OS X上使用Python讀取系統信息?
- 11. 如何在OS X Mavericks上獲得Safari的本地舊版本?
- 12. 如何獲取遠程計算機的操作系統版本
- 13. 如何獲取Ruby上的特定操作系統版本?
- 14. 如何獲取Windows Phone的當前操作系統版本?
- 15. 如何使用C++準確獲取Windows操作系統版本?
- 16. 如何獲取android操作系統版本?
- 17. 如何獲取操作系統版本號?
- 18. Tesseract-OCR的OS X版本?
- 19. 查找版本OS X
- 20. OS X版本的bringSubviewToFront:?
- 21. OS X版本可可
- 22. 如何在Mac OS X上獲得Python PIL版本?
- 23. 在不使用Carbon的情況下獲取Mac OS X版本
- 24. 在測試版本上獲取OS X應用商店收據
- 25. 如何從Mac OS X應用程序獲取iPod/iPhone iOS版本?
- 26. 如何在mac os x上獲取默認郵件客戶端版本?
- 27. 如何獲取系統ioWait
- 28. Mac os x系統programmng和bsd
- 29. 的Mac OS X 10.6:系統日誌()EXC_BAD_ACCESS
- 30. 與系統上的OS X Lion的
@JakePetroules如果7年前被問及7年前僞原創 - 4年前,這一個可能是重複的!請看日期。 – 2016-08-16 17:35:05
因爲另一個問題包含正確的答案作爲接受的答案。這個包含所有錯誤或過時的答案,只有一個答案在底部。 Stack Overflow是人們尋找答案的wiki,而不是問題和答案的歷史記錄。 – 2016-08-16 17:47:03