【发布时间】:2011-10-12 06:08:52
【问题描述】:
给定一个 Cocoa NSLocking 对象(如 NSLock)和一些在持有锁时要执行的重要代码:
为确保始终释放锁,是否应始终使用以下成语?
NSLock *mutex = // get lock from somewhere
@try {
[mutex lock];
// do non-trivial stuff
}
@finally {
[mutex unlock];
}
这似乎很谨慎(在 Java 中很常见),但我还没有看到任何 Cocoa 代码这样做。
应该使用这个成语吗?为什么或为什么不?
【问题讨论】:
标签: objective-c cocoa exception-handling locking