![](/img/trans.png)
[英]iOS-How to display 40 images in one prototype Cell inside UITableview using array in swift?
[英]iOS-How to use NSOperationQueue in Swift
我在我的应用程序中使用NSOperationQueue
,我用Objective C编写它。我正在将我的应用程序转换为Swift。我想知道如何在Swift中使用NSOperationQueue
?
这是关于目标c的代码
-(NSOperationQueue*)operationQueue
{
if(_operationQueue == nil) {
_operationQueue = [NSOperationQueue new];
}
return _operationQueue;
}
我已经快速尝试过了
func operationQueue() -> NSOperationQueue{
if(_operationQueue == nil){
_operationQueue = NSOperationQueue.new()
}
}
但它给了我错误:
NSOperationQueue无法转换为'MirrorDispotion'
Objective-C代码使用operationQueue
方法(或属性)加上_operationQueue
实例变量进行“按需初始化”。 相应的Swift 3代码将是(对于旧版本,由NSOperationQueue
替换OperationQueue
):
class MyClass {
var _operationQueue: OperationQueue?
func operationQueue() -> OperationQueue {
if _operationQueue == nil {
_operationQueue = OperationQueue()
}
return _operationQueue!
}
// ...
}
代码中的主要错误是未定义_operationQueue
,并且该函数未返回值。
但是使用“懒惰存储属性”可以更容易地在Swift中实现:
class MyClass {
lazy var operationQueue = OperationQueue()
// ...
}
当第一次使用该属性时,该值仅计算一次 :
let mc = MyClass()
print(mc.operationQueue) // operation queue is created and returned
print(mc.operationQueue) // same operation queue is returned
有关详细信息,请参阅Swift文档中“属性”中的“惰性存储属性”。
在objective-c中的new不是真正的函数,它更像是init
所以在swift你可以使用
func operationQueue() -> NSOperationQueue{
if(_operationQueue == nil){
_operationQueue = NSOperationQueue()
}
return _operationQueue
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.