在 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 是一个隐式解包的可选项,而不是可选项,是故意的吗?
我在 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 是一个隐式解包的可选项,而不是可选项,是故意的吗?