AIDefer 是一个受 Go 语言中的 defer 语句 启发的代码执行延迟系统。
使用 defer
将块执行推迟。这在处理需要在以后某个时间点释放的资源时很有用。以下是一个使用锁的示例
- (Person*)personAtIndex:(NSUInteger)index {
[_lock lock];
defer(^() {
[_lock unlock];
});
return [_array objectAtIndex:index];
}
锁在方法开始时获取,解锁则推迟到方法返回。更多详情请参阅 博客文章。
要在项目中使用,只需将 AIDefer.h
和 AIDefer.m
文件复制到您的项目中。如果您正在使用 CocoaPods,请在 Podfile 中添加以下内容
pod "AIDefer", "~> 1.0"