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
}
Другие вопросы по тегам