从autoreleasepool返回对象的正确方法

Squ*_*Box 2 realm nsautoreleasepool swift

我正在尝试在中包装一些代码autoreleasepool。但是我偶然发现了一个返回值的方法。我计划包装所有内容,autoreleasepool但是如何返回值?我有以下代码:

func get(withId id: String) -> Student? {
    return autoreleasepool { () -> Student? in
        let realm = try! Realm()
        let results = realm.objects(Student.self).filter("id = %s", id)
        return results.first
    }
}
Run Code Online (Sandbox Code Playgroud)

返回值是否合适?我在互联网上找到的大多数示例都没有从代码autoreleasepool块中返回值。

new*_*cct 5

是的,自Swift 3起,您可以在传递给的函数中返回一个值,autoreleasepool它将成为整个autoreleasepool调用的返回值,如您所显示的。