6

我的代码突然无法在 Xcode 6.1 中编译(我确信它在 Xcode 6 GM 和 beta 版本中工作)。它显示错误消息:

“NSInvocationOperation”不可用

我的代码是:

let operation = NSInvocationOperation(target:self, selector:"backgroundRun:", object:self)

有人可以帮忙吗?谢谢。

4

1 回答 1

20

从 Xcode 6.1 开始,NSInvocation在 Swift 中被禁用,因此也NSInvocationOperation被禁用。在开发者论坛中查看此线程

因为它不是类型安全或 ARC 安全的。即使在 Objective-C 中,尝试使用它也很容易让自己措手不及,尤其是在 ARC 下。改用闭包/块。

你必须NSBlockOperation在 Swift 中使用。

addOperationWithBlock_NSOperationQueue

queue.addOperationWithBlock { [weak self] in
    self?.backgroundRun(self)
    return
}
于 2014-10-30T04:14:13.323 回答