當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Result.Publisher assign(to:on:)用法及代碼示例


實例方法

assign(to:on:)

將來自發布者的每個元素分配給對象的屬性。

聲明

func assign<Root>(
    to keyPath: ReferenceWritableKeyPath<Root, Self.Output>,
    on object: Root
) -> AnyCancellable
FailureNever 時可用。

返回值

AnyCancellable 實例。當您不再希望發布者自動分配屬性時,請在此實例上調用 Cancellable/cancel()。取消初始化此實例也將取消自動分配。

參數

keyPath

指示要分配的屬性的鍵路徑。請參閱The Swift Programming Language 中的Key-Path Expression,了解如何使用鍵路徑來指定對象的屬性。

object

包含該屬性的對象。訂閱者每次收到新值時都會分配對象的屬性。

詳述

如果您想在每次發布者生成值時設置給定屬性,請使用 Publisher/assign(to:on:) 訂閱者。

在此示例中,Publisher/assign(to:on:)MyClass 的實例上設置 anInt 屬性的值:


class MyClass {
    var anInt: Int = 0 {
        didSet {
            print("anInt was set to: \(anInt)", terminator: "; ")
        }
    }
}


var myObject = MyClass()
let myRange = (0...2)
cancellable = myRange.publisher
    .assign(to: \.anInt, on: myObject)


// Prints: "anInt was set to: 0; anInt was set to: 1; anInt was set to: 2"

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Result.Publisher assign(to:on:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。