OS XまたはiOSのランタイムにOSバージョンを判断するには(Gestaltを使用せずに)どうすればよいですか?
2023-10-23 20:51:38
質問
にある Gestalt() 関数は
CarbonCore/OSUtils.h
は OS X 10.8 Mountain Lion で非推奨となりました。
私はよく、実行時に OS X オペレーティング システムのバージョンをテストするためにこの関数を使用します(以下のおもちゃの例を見てください)。
CocoaアプリケーションでOS Xオペレーティングシステムのバージョンを実行時にチェックするために、他にどのようなAPIを使用することができるでしょうか?
int main() {
SInt32 versMaj, versMin, versBugFix;
Gestalt(gestaltSystemVersionMajor, &versMaj);
Gestalt(gestaltSystemVersionMinor, &versMin);
Gestalt(gestaltSystemVersionBugFix, &versBugFix);
printf("OS X Version: %d.%d.%d\n", versMaj, versMin, versBugFix);
}
どのように解決するのですか?
OS X 10.10(およびiOS 8.0)では
[[NSProcessInfo processInfo] operatingSystemVersion]
を返します。
NSOperatingSystemVersion
と定義された構造体を返します。
typedef struct {
NSInteger majorVersion;
NSInteger minorVersion;
NSInteger patchVersion;
} NSOperatingSystemVersion;
また
NSProcessInfo
というメソッドもあり、これはあなたのために比較をしてくれます。
- (BOOL)isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion)version
注意
OS X 10.10 以降で利用可能であることが文書化されていますが、両方の
operatingSystemVersion
と
isOperatingSystemAtLeastVersion:
は OS X 10.9 に存在します (
おそらく 10.9.2
) に存在し、期待通りに動作します。これは、もし
NSProcessInfo
がこれらのセレクタに反応するかどうか、OS X 10.9 または 10.10 で動作しているかどうかを確認するためにテストしてはいけないということです。
iOS では、これらのメソッドは事実上 iOS 8.0 以降でのみ利用可能です。
関連
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] Mac OSでNode.jsを最新バージョンにアップグレードする。
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み】iOSアプリの名前を変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UITextFieldの最大文字数を設定します。
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] iOSアプリをApple Developer Programや脱獄せずにデバイス上でテストすることができます。