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