2

私の目的は、OS バージョン、MAC 10.10 のリリースの詳細を収集することです。

MAC 10.10 および前のバージョンからバージョンの詳細を収集する方法を見つけました。バージョンはリンクから

OS X または iOS で (Gestalt を使用せずに) 実行時に OS のバージョンを確認するにはどうすればよいですか?

コンパイル中に「objc_msgSend_stret」でエラーがスローされます。検索すると、/usr/include/objc フォルダー自体が MAC に存在しませんでした。gcc のみが存在し、すべてのコードが gcc でビルドされていることがわかりました。

の出力をコピーする最良の方法はありますか

[[NSProcessInfo processInfo]、@selector(operatingSystemVersion)] を "MyOperatingSystemVersion" として構造体に追加しますか?

typedef struct {
        NSInteger majorVersion;
        NSInteger minorVersion;
        NSInteger patchVersion;
} MyOperatingSystemVersion;

if ([[NSProcessInfo processInfo] respondsToSelector:@selector(operatingSystemVersion)]) {
    MyOperatingSystemVersion version = ((MyOperatingSystemVersion(*)(id, SEL))objc_msgSend_stret)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
    // do whatever you want with the version struct here
}
else {
    UInt32 systemVersion = 0;
    OSStatus err = Gestalt(gestaltSystemVersion, (SInt32 *) &systemVersion);
    // do whatever you want with the systemVersion as before
}
4

1 に答える 1