SwiftTips

第一个

@autoclosure 写一个判断 当第一个条件不成立的时候 , 就不会去判断第二个条件

func twogothrough(_ l : Bool, _ r : @autoclosure ()->Bool) -> Bool {
        guard l else {
            return false
        }
        return r()
}
if twogothrough(true,  true ) {
         print("两个都成立")
}

第二个

DispatchSemaphore信号量

 let sema = DispatchSemaphore.init(value: 0)
 let time1 : TimeInterval = 3.0
 DispatchQueue.global().asyncAfter(deadline: DispatchTime.now() + time1) {
        sema.signal()
 }
 let time : TimeInterval = 2.0
 let result = sema.wait(timeout: DispatchTime.now() + time)
 if result == .success {
         print("success")
 }else{
         print("timeOut")
 }
        
 print("sema")

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容