The Swift Package Index logo.Swift Package Index

跟踪 Swift 6 严格并发检查在数据竞争安全性方面的采用情况。有多少个包准备好用于 Swift 6

当使用 Xcode 项目时

当使用 Swift Package Manager 清单时

选择一个包版本

2.0.0

main


一个用于 SwiftUI ObservableObject 的新属性包装器。




SwiftUI SharedObject 🍱

@SharedObject@StateObject@ObservedObject@EnvironmentObject 的替代方案,用于处理 ObservableObject。 如果你需要让同一个类的多个对象在多个视图实例之间持久化,其他包装器很难处理这种情况:使用 @StateObject,对象会随着视图一起销毁,并且只为特定的视图实例生成;使用 @EnvironmentObject,你只能为每个 Environment 绑定同一个类的一个实例;使用 @ObservedObject,很难在嵌套视图中传播对象。

@SharedObject 简单地使用标识符存储对象,因此你可以随时检索它。

用法

使用给定的 ID 检索共享对象,如果不存在,则使用初始值创建共享对象

@SharedObject("A") var letterA = Letter()

如果你确定该对象已经创建,你可以直接检索共享对象

@SharedObject("A") var letterA: Letter

你可以为该类提供一个默认的初始值,这样你就不需要在你认为会创建该对象的每个视图中都指定它

final class Letter: SharableObject {

  var value: String
		
  init(_ value: String) {
	self.value = value
  }
		
  static var initialValue: Self {
	.init("A")
  }
}

安装

  1. 在 Xcode 中,打开你的项目并导航到 FileSwift PackagesAdd Package Dependency...
  2. 粘贴仓库 URL (https://github.com/lorenzofiamingo/swiftui-shared-object) 并单击 Next
  3. 单击 Finish

其他项目

SwiftUI VariadicViews 🥞

SwiftUI AsyncButton 🖲️

SwiftUI MapItemPicker 🗺️

SwiftUI PhotosPicker 🌇

SwiftUI CachedAsyncImage 🗃️

SwiftUI VerticalTabView 🔝