我碰到这个问题几次,而将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块外,项目构建正常。最初我认为它可能与在块中捕获自我有关。然而,插入[unowned self]导致相同的错误,[weak self]在(在适当的!解开运算符之后插入)。
如何获得dispatch_async块在Swift工作需要捕获自我?