Swift 加锁

来源:互联网 发布:淘宝上传图片 编辑:程序博客网 时间:2024/05/18 20:46
 let str = "a"
 func operation(a:String){
       objc_sync_enter(a)   // 没有objc_asyn_xxxx
       print("做一些操作,在这个操作的过程中,a保持不被修改")
       objc_sync_exit(a)
 }

// 封装
Lock.swift
func Lock(object:AnyObject, callBack:()->()){
   
 print("开始执行,加锁!")
   
 objc_sync_enter(object)
   
 print("执行中...")
    callBack()
   
 objc_sync_exit(object)
   
 print("执行完毕,解锁")
}

// 实例:
// let object = "aaa"
// Lock(object) { () -> () in
//     print("
锁住\(object)")
// }

// 编译会报错:
// var object:String = "aaa"
// Lock(object) { () -> () in
//    print("
锁住\(object.insert("A", atIndex: 0))")
// }
0 0
原创粉丝点击