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)中使用推迟了。以及何时使用它是一个坏主意。

最佳答案

正确使用defer关键字应在 swift dotrycatch块内。 defer语句中的过程将始终在退出dotrycatch块的作用域之前执行。通常,它用于清理,例如关闭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/

10-14 20:26
查看更多