2015-04-16 2 views

ответ

6

Глядя на documentational комментарии для него Alt + клик вы можете увидеть:

Image

В ATTR вы можете пройти 3 вещи: nil, DISPATCH_QUEUE_SERIAL and DISPATCH_QUEUE_CONCURRENT не Int ,

+0

так плохо, что компилятор даже не видит разницу между 0 и nil, которая вызывает сбой во время выполнения. – Andy

+0

@ Энди Что это значит? 0 не равен нулю, поэтому, конечно, он сработает. – Arbitur

+0

нет сбор ошибка. вы можете скомпилировать его с помощью 0 и получить сбой во время выполнения. – Andy

1

Насколько я знаю, второй параметр является ссылкой, а не целым числом, поэтому вы должны пройти nil, а не 0.

Есть ли причина, по которой вы объявляете переменную как необязательную? Если вы собираетесь назначить следующую строку, лучше сделать ее необязательной. Кроме того, я предполагаю, что вы не будете менять его во время своей жизни, так что, вероятно, лучше, чтобы сделать его неизменным:

let q = dispatch_queue_create("com.kukodajanos.queryPlaces", nil) 
5

Pass ноль вместо 0:

var q: dispatch_queue_t? 
    q = dispatch_queue_create("com.kukodajanos.queryPlaces", nil) 
0

Passing ноль вместо 0, как dispatch_queue_attr_t shoild делает трюк. Кроме того, функция возвращает неявно развернутую опциональную, а не необязательную, то, что специально?

Смежные вопросы