当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。