在 Swift 中创建 GCD 队列?

Create GCD queue in Swift?

我在 Swift 中创建 GCD 队列时发生崩溃,知道吗?

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

通过alt+click查看它的文档注释你可以看到:

在 attr 中你可以传递 3 个东西:nil, DISPATCH_QUEUE_SERIAL and DISPATCH_QUEUE_CONCURRENT 不是 Int。

据我所知,第二个参数是一个引用而不是一个整数,所以你应该传递 nil 而不是 0

您将变量声明为可选变量有什么原因吗?如果你打算在下一行分配它,那么最好让它成为非可选的。另外,我猜你不会在它的生命周期内改变它,所以让它不可变可能更好:

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

传递 nil 而不是 0:

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

传递 nil 而不是 0,因为 dispatch_queue_attr_t 应该可以解决问题。另外,函数 returns 是一个隐式解包的可选项,而不是可选项,是故意的吗?