Как я могу определить рабочую версию Mac OS X программно?

Я не уверен, поможет ли это вам вообще или нет, но я бы посоветовал вам скачать файлы TreeTagger с:

http: //www.cis.uni-muenchen .de / ~ schmid / tools / TreeTagger / # Windows

и следуйте инструкциям.

14
задан Chris Hanson 1 October 2008 в 15:22
поделиться

8 ответов

Видят эту статью здесь

, Но короче говоря, если Вы используете углерод, используют Гештальт () вызов, и если Вы используете какао, существует постоянный названный NSAppKitVersionNumber, по которому можно просто проверить.

Редактирование : Для Mac OSX 10.8 и выше, не используйте Гештальт () больше. Дополнительную информацию см. в этом ответе: , Как я определяю версию ОС во времени выполнения в OS X или iOS (не используя Гештальт)?

15
ответ дан 1 December 2019 в 06:36
поделиться

Вы могли просто проверить на присутствие возможности? Например:

if (NSClassFromString(@"NSKeyedArchiver") != Nil)

или

if ([arrayController respondsToSelector: @selector(selectedIndexes)])

затем Вы знаете, что операционная система делает то, что Вам нужна она, чтобы сделать, не, что группа маркетинга товаров Apple дала ей конкретное число ;-)

13
ответ дан 1 December 2019 в 06:36
поделиться

API через менеджера по Гештальту.

См." Определять версию ОС " в сайте CocoaDev.

8
ответ дан 1 December 2019 в 06:36
поделиться

В терминале:

system_profiler SPSoftwareDataType

Дает:

Software:

    System Software Overview:

      System Version: Mac OS X 10.5.5 (9F33)
      Kernel Version: Darwin 9.5.0
      Boot Volume: Main
      Boot Mode: Normal
      Computer Name: phoenix
      User Name: Douglas F Shearer (dougal)
      Time since boot: 2 days 16:55

Или:

sw_vers

Дает:

ProductName:    Mac OS X
ProductVersion: 10.5.5
BuildVersion:   9F33
6
ответ дан 1 December 2019 в 06:36
поделиться

Версия ОС действительно, что Вы хотите? Может быть более соответствующая вещь протестировать на, такие как присутствие, или номер версии, конкретная платформа.

2
ответ дан 1 December 2019 в 06:36
поделиться

respondsToSelector: почти наверняка лучше, чем Вы поддерживающий таблицу того, что данный выпуски делают и не реализуют.

Быть ленивым. Позвольте времени выполнения сказать Вам, может ли оно сделать что-то или нет, и отступать к более старым методам, когда Вы должны. Ваш код будет намного менее хрупким, потому что Вы не должны поддерживать свои собственные глобальные данные, с которыми остальная часть Вашего кода должна продолжать сверяться.

0
ответ дан 1 December 2019 в 06:36
поделиться

Выполните это в командной строке:

system_profiler SPSoftwareDataType | grep Mac
0
ответ дан 1 December 2019 в 06:36
поделиться

в вашей программе вы можете использовать Gestalt. Вот код, который я использую в своей программе для получения версии ОС.

long version = 0;
OSStatus rc0 = Gestalt(gestaltSystemVersion, &version);
if((rc0 == 0) && (version >= 0x1039)) {      
    // will work with version 10.3.9
    // works best with version 10.4.9
    return; // version is good
}
if(rc0) {
    printf("gestalt rc=%i\n", (int)rc0);
} else {
    printf("gestalt version=%08x\n", version);
}
1
ответ дан 1 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: