Я получаю сбой при создании очереди GCD в Swift, любая идея?Создать очередь GCD в Swift?
var q: dispatch_queue_t?
q = dispatch_queue_create("com.kukodajanos.queryPlaces", 0)
Я получаю сбой при создании очереди GCD в Swift, любая идея?Создать очередь GCD в Swift?
var q: dispatch_queue_t?
q = dispatch_queue_create("com.kukodajanos.queryPlaces", 0)
Глядя на documentational комментарии для него Alt + клик вы можете увидеть:
В ATTR вы можете пройти 3 вещи: nil, DISPATCH_QUEUE_SERIAL and DISPATCH_QUEUE_CONCURRENT
не Int ,
Насколько я знаю, второй параметр является ссылкой, а не целым числом, поэтому вы должны пройти nil
, а не 0
.
Есть ли причина, по которой вы объявляете переменную как необязательную? Если вы собираетесь назначить следующую строку, лучше сделать ее необязательной. Кроме того, я предполагаю, что вы не будете менять его во время своей жизни, так что, вероятно, лучше, чтобы сделать его неизменным:
let q = dispatch_queue_create("com.kukodajanos.queryPlaces", nil)
Pass ноль вместо 0:
var q: dispatch_queue_t?
q = dispatch_queue_create("com.kukodajanos.queryPlaces", nil)
Passing ноль вместо 0, как dispatch_queue_attr_t shoild делает трюк. Кроме того, функция возвращает неявно развернутую опциональную, а не необязательную, то, что специально?
так плохо, что компилятор даже не видит разницу между 0 и nil, которая вызывает сбой во время выполнения. – Andy
@ Энди Что это значит? 0 не равен нулю, поэтому, конечно, он сработает. – Arbitur
нет сбор ошибка. вы можете скомпилировать его с помощью 0 и получить сбой во время выполнения. – Andy