Я несколько раз сталкивался с этой проблемой при переносе кода 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 блоки для работы в Swift, которые нужно захватить self?