NSInvocationOperation недоступно в Xcode 6.1
Мой код внезапно не может быть скомпилирован в Xcode 6.1 (я уверен, что он работает в Xcode 6 GM и бета-версии). Показывает сообщение об ошибке:
"NSInvocationOperation" недоступен
Мой код:
let operation = NSInvocationOperation(target:self, selector:"backgroundRun:", object:self)
Кто-нибудь может помочь? Благодарю.
1 ответ
Решение
Начиная с Xcode 6.1, NSInvocation
отключен в Swift, поэтому NSInvocationOperation
тоже отключен. Смотрите эту тему в форуме разработчиков
Потому что это не тип или ARC-безопасно. Даже в Objective-C очень легко выстрелить себе в ногу, пытаясь использовать его, особенно под ARC. Используйте вместо этого замыкания / блоки.
Вы должны использовать NSBlockOperation
в Свифте.
или же addOperationWithBlock
в NSOperationQueue
queue.addOperationWithBlock { [weak self] in
self?.backgroundRun(self)
return
}