1.一次性代码 disptach_once(以及dispatch_once_t) 取消了
OC中常见的一次性代码,比如OC经典的单例写法
+(id) getInstance{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc]init];
});
return instance;
}
一次性代码在OC中比较多就是单例,当然也还有一些其他的用处,不一一列举,在Swift3.0的一次性代码的替代写法如下
class Foo {
private static let sharedInstance = Foo()
class var sharedFoo {
return sharedInstance
}
}
或者更为简洁的写法
class Foo {
static let shared = Foo()
}
2. 重复性代码 dispatch_apply
dispatch_apply(size_t iterations, dispatch_queue_t queue, void(^ block)(size_t))
三个参数分别是 执行次数
,执行队列
,执行的具体操作(代码块)
在Swift 简化为
DispatchQueue.concurrentPerform(iterations: 5) { (index) in
print("----- \(index)")
}
相比OC的代码,Swift去掉了队列的参数,并且通过打印结果可以看出,Swift 默认就是并发队列
打印结果
----- 0
----- 3
----- 2
----- 4
----- 1
网友评论