五、SwiftUI之属性装饰器:@State、@Binding、@ObservedObject、@Published、@EnvironmentObject

  • Post author:
  • Post category:其他


@属性装饰器

@State、@Binding、@ObservedObject、@EnvironmentObject这些都是属性装饰器,就像在java中的注解一样。

熟悉Swift语法的同学,不知在Swift开发过程中,有没有自己封装过

@属性装饰器

呢?若没有,不知有没有使用过

@discardableResult

等这类系统已提供的装饰器呢?有没有想过是如何实现的?

其实是通过

@propertyWrapper

来包装的,具体如何包装这里不再赘述,可自行百度,相对比较简单,这里的重点主要介绍以上4个的含义以及使用方式,关于它们的实现原理,会放在下个章节。

@State

/// A property wrapper type that can read and write a value managed by SwiftUI.
///
/// SwiftUI manages the storage of any property you declare as a state. When the
/// state value changes, the view invalidates its appearance and recomputes the
/// body. Use the state as the single source of truth for a given view.

翻译为

/// 一种属性包装器类型,可以读取和写入 SwiftUI 管理的值。
///
/// SwiftUI 管理您声明为状态的任何



版权声明:本文为xinshoubbs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。