Как объявить Grand Central Dispatch - PullRequest
1 голос
/ 08 февраля 2012

Я использую довольно приличную обучающую программу, которую я нашел для GCD, в ней показано, как объявить новую очередь отправки.

Grand Central Dispatch работает с очередями. Очереди являются C typedef: dispatch_queue_t. Чтобы получить новую глобальную очередь, мы вызываем dispatch_get_global_queue (), которая принимает два аргумента: long для приоритет и неподписанный long для опций, который не используется, поэтому мы будем пройти 0ул. Вот как мы получаем очередь с высоким приоритетом:

В нем говорится, что в качестве параметра необходимо передать 0ul

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);

Я надеюсь, что кто-нибудь сможет объяснить мне, что такое 0ul? и почему его включили?

1 Ответ

4 голосов
/ 08 февраля 2012

Это просто 0, и ul сообщает компилятору, что вы хотите, чтобы он был длинным без знака для соответствия сигнатуре функции.

dispatch_queue_t dispatch_get_global_queue (длинный приоритет, длинные флаги без знака);

Если вы не добавите ul, 0 будет рассматриваться как целое число, что может вызвать предупреждение компилятора.

Пожалуйста, посмотрите документацию здесь.

https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html

...