Что Какао эквивалентно из UpdateSystemActivity?

Понятие "первоклассный гражданин" или "первоклассный элемент" на языке программирования было представлено британским программистом Christopher Strachey в 1960-х в контексте первоклассных функций. Самая известная формулировка этого принципа находится, вероятно, в Структура и Интерпретация Компьютерных программ (незадолго до Exercise 1.40) Gerald Jay Sussman и Harry Abelson:

  • Их могут назвать переменные.
  • Они могут быть переданы как аргументы процедурам.
  • Они могут быть возвращены как результаты процедур.
  • Они могут быть включены в структуры данных.

В основном, это означает, что можно сделать с этим элементом языка программирования все, что можно сделать со всеми другими элементами на языке программирования.

5
задан Jon Seigel 20 March 2010 в 19:23
поделиться

2 ответа

У вас по-прежнему должна быть возможность вызывать UpdateSystemActivity из вашего приложения Какао - оно не было помечено как устаревшее.

Документация для API определяет импорт ] CoreServices / CoreServices.h , чтобы получить API - однако поиск по заголовкам (особенно в OSServices / OSServices.h ) показывает, что файл отсутствует в 64-битной среде. Тем не менее, есть разделы Power.h (где определено UpdateSystemActivity ), которые отключены для 64-битных версий, и UpdateSystemActivity не входит в их число.

] В свете этого попробуйте #import напрямую и посмотрите, работает ли это. (Вы'

1
ответ дан 14 December 2019 в 08:56
поделиться

Проблема здесь, по-видимому, в строке в OSServices.h, которая исключает Power.h, если определено __LP64__. При сборке 64-битной версии на 10.5 UpdateSystemActivity действительно не определен.

Хорошая новость заключается в том, что этот символ действительно существует в CoreServices.framework. Есть два способа получить к нему доступ.

  1. Вперед объявить его: extern «C» OSErr UpdateSystemActivity (UInt8);
  2. Явно включить Power.h, который вы пробовали. Проблема с вашей попыткой заключается в том, что OSServices / не попадает в путь поиска. Вы можете включить его так: #import

Я не иметь под рукой копию SnowLeopard, но следующее, что нужно сделать, это проверить, исправлена ​​ли она там. Если это не так, зарегистрируйте RADAR, поскольку это явно ошибка SDK.

2
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

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