我正在将一些使用 Grand Central Dispatch 的代码从 C++ 移植到 Swift,并且发现了一个奇怪的错误,dispatch_queue_create 似乎根本不起作用。
例如,在我的 C++ 基类标头中,我会声明
dispatch_queue_t m_WorkQ;
并在初始化程序中输入
m_ResultQ = dispatch_queue_create("com.myapp.mHitsUpdateQueue", 0);
……一切都那么美好。
我在我的班级中在 Swift 中尝试过这一点,并在班级级别声明了这一点:
var resultQueue: dispatch_queue_t
...在初始化器中,我有(除其他外)行
resultQueue = dispatch_queue_create("com.myapp.mHitsUpdateQueue", 0)
...它编译并启动正常,但在上面的行上立即出现 EXC_BAD_ACCESS (code=1,address = 0x37) 的运行时错误
为了确定这是否是我所做的其他事情,我创建了一个仅包含以下代码的命令行工具应用程序:
import Foundation
var thisQueue = dispatch_queue_create("com.myApp.mHitsUpdateQueue", 0)
println(thisQueue.description)
...果然,我在“thisQueue”赋值行上得到了上述错误。所以我很确定我缺少关于 Swift 和 GCD 队列创建的一些非常明显的东西。
有人可以帮我吗?