通过defer
关键字去写,这样代码干净,逻辑简洁。
比如:
func performLocked<T>(_ action: () -> T) -> T {
self.lock(); defer { self.unlock() }
return action()
}
func foo() {
objc_sync_enter(lock)
defer {
objc_sync_exit(lock)
}
// do something...
}
defer
几个场景使用参考链接