Closed. This question needs to be more focused。它当前不接受答案。
想要改善这个问题吗?更新问题,使它仅关注editing this post的一个问题。
5年前关闭。
Improve this question
Swift 2.0引入了一个新关键字:推迟
使用此关键字的正确方法是什么,我应该注意什么?
由于swift使用ARC,因此通常自动管理内存管理。因此,仅在使用传统的低级/非弧调用的情况下,才需要调用 defer 进行内存管理,对吗?
我想其他情况还包括文件访问。在这种情况下,将使用defer来关闭“文件指针”。
什么时候使用,我在iOS/OSX开发的“真实世界”(tm)中使用推迟了。以及何时使用它是一个坏主意。
想要改善这个问题吗?更新问题,使它仅关注editing this post的一个问题。
5年前关闭。
Improve this question
Swift 2.0引入了一个新关键字:推迟
使用此关键字的正确方法是什么,我应该注意什么?
由于swift使用ARC,因此通常自动管理内存管理。因此,仅在使用传统的低级/非弧调用的情况下,才需要调用 defer 进行内存管理,对吗?
我想其他情况还包括文件访问。在这种情况下,将使用defer来关闭“文件指针”。
什么时候使用,我在iOS/OSX开发的“真实世界”(tm)中使用推迟了。以及何时使用它是一个坏主意。
最佳答案
正确使用defer
关键字应在 swift do
,try
和catch
块内。 defer
语句中的过程将始终在退出do
,try
和catch
块的作用域之前执行。通常,它用于清理,例如关闭IO。
do {
// will always execute before exiting scope
defer {
// some cleanup operation
}
// Try a operation that throws
let myVar = try someThrowableOperation()
} catch {
// error handling
}
关于swift - 使用Swift的defer的正确方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34769694/