【问题标题】:Proper way to return object from autoreleasepool从自动释放池返回对象的正确方法
【发布时间】:2018-02-07 01:27:04
【问题描述】:

我正在尝试将我们的一些代码封装在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
    }
}

返回值是否合适?我在互联网上找到的大多数示例都不会从 autoreleasepool 块返回值。

【问题讨论】:

  • 您只需将dispatchQueue.async 块放入autoreleasepool。
  • @EpicPandaForce 仅用于后台DispatchQueue?我应该包括DispatchQueue.main.async吗?

标签: swift realm nsautoreleasepool


【解决方案1】:

是的,从 Swift 3 开始,您可以在传递给 autoreleasepool 的函数中返回一个值,这将是整个 autoreleasepool 调用的返回值,就像您展示的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多