SwiftTask中的方法链接是如何工作的?

SwiftTask中的方法链接是如何工作的?,swift,Swift,我不熟悉斯威夫特。我想了解当涉及到方法链接时对象所有权是如何工作的 让我们以SwiftTask为例。其中一个问题是将“成功”和“失败”联系起来 success和failure的实现都返回一个新的任务对象。那么,这两个调用返回的任务对象是否由某人保留 请帮助我了解这两个任务对象发生了什么。谢谢 找到一篇解释简单承诺实现的帖子:对于SwiftTask实现,调用任务捕获成功闭包:调用success时返回的任务对象允许我们将其链接到另一个任务。(虽然我不知道为什么要用一个新的任务对象而不是self)你是

我不熟悉斯威夫特。我想了解当涉及到方法链接时对象所有权是如何工作的

让我们以SwiftTask为例。其中一个问题是将“成功”和“失败”联系起来

success
failure
的实现都返回一个新的任务对象。那么,这两个调用返回的任务对象是否由某人保留


请帮助我了解这两个任务对象发生了什么。谢谢

找到一篇解释简单承诺实现的帖子:对于SwiftTask实现,调用任务捕获成功闭包:调用
success
时返回的任务对象允许我们将其链接到另一个任务。(虽然我不知道为什么要用一个新的任务对象而不是
self
)你是对的。并且需要为
的每次调用创建一个新任务,然后再为
相关方法创建一个新任务。否则,“第一根任务”必须处理所有连续的任务,这在技术上是一个糟糕的体系结构,正如在
    task.success { (value: String?) -> Void in

        XCTFail("Should never reach here.")

    }.failure { (error: NSError?, isCancelled: Bool) -> Void in

        XCTAssertTrue(error != nil, "Should receive non-nil error.")
        expect.fulfill()

    }