【发布时间】:2014-07-28 08:53:36
【问题描述】:
我在将 Objective-C 代码移植到 Swift 时遇到过几次这个问题。假设我有以下代码:
dispatch_async(dispatch_get_main_queue()) {
self.hostViewController?.view.addSubview(self.commandField)
}
这将导致错误,在整个dispatch_async 调用下划线,提供:
Could not find member 'addSubview'
我认为这是一个尚未正确实施的错误,因为如果我将 addSubview 调用放在 dispatch_async 块之外,则项目构建良好。最初我认为这可能与在块中捕获self 有关。但是,插入 [unowned self] in 会导致相同的错误,[weak self] in 也会导致同样的错误(在插入适当的 ! 展开运算符之后)。
如何让dispatch_async 块在需要捕获self 的Swift 中工作?
【问题讨论】:
标签: grand-central-dispatch swift