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")

你可能感兴趣的:(SwiftTips)