我的代码突然无法在 Xcode 6.1 中编译(我确信它在 Xcode 6 GM 和 beta 版本中工作)。它显示错误消息:
“NSInvocationOperation”不可用
我的代码是:
let operation = NSInvocationOperation(target:self, selector:"backgroundRun:", object:self)
有人可以帮忙吗?谢谢。
我的代码突然无法在 Xcode 6.1 中编译(我确信它在 Xcode 6 GM 和 beta 版本中工作)。它显示错误消息:
“NSInvocationOperation”不可用
我的代码是:
let operation = NSInvocationOperation(target:self, selector:"backgroundRun:", object:self)
有人可以帮忙吗?谢谢。
从 Xcode 6.1 开始,NSInvocation
在 Swift 中被禁用,因此也NSInvocationOperation
被禁用。在开发者论坛中查看此线程
因为它不是类型安全或 ARC 安全的。即使在 Objective-C 中,尝试使用它也很容易让自己措手不及,尤其是在 ARC 下。改用闭包/块。
你必须NSBlockOperation
在 Swift 中使用。
或addOperationWithBlock
_NSOperationQueue
queue.addOperationWithBlock { [weak self] in
self?.backgroundRun(self)
return
}