Skip to content

创建StoreManager作为ObservableObject

让我们一起探索如何创建 StoreManager,并将其设置为 ObservableObject,以便在你的 SwiftUI 应用中轻松管理订阅状态!🚀

创建 StoreManager 类

首先,你需要创建一个名为 StoreManager 的类。这个类将负责处理所有与 StoreKit 相关的逻辑,例如获取产品信息、处理购买以及验证订阅状态。

swift
import StoreKit

class StoreManager: ObservableObject {
    // 在这里添加你的代码
}

遵循 ObservableObject 协议

为了让 SwiftUI 视图能够观察到 StoreManager 的状态变化,你需要让它遵循 ObservableObject 协议。这非常简单,只需在类定义中添加即可。🎉

swift
import StoreKit

class StoreManager: ObservableObject {
    // 在这里添加你的代码
}

添加 Published 属性

现在,你可以添加一些 @Published 属性来存储你的订阅相关数据。每当这些属性的值发生变化时,所有观察该 StoreManager 的 SwiftUI 视图都会自动更新。这使得 UI 能够实时反映订阅状态。

以下是一些你可以添加的属性示例:

  • @Published var products: [Product] = []:存储从 StoreKit 获取的产品列表。
  • @Published var purchasedSubscriptions: [String] = []:存储用户已购买的订阅 ID 列表。
  • @Published var isSubscribed: Bool = false:表示用户是否已订阅。
swift
import StoreKit

class StoreManager: ObservableObject {
    @Published var products: [Product] = []
    @Published var purchasedSubscriptions: [String] = []
    @Published var isSubscribed: Bool = false
}

实现初始化方法

最后,你可以添加一个初始化方法来设置 StoreManager 的初始状态。例如,你可以在这里调用 StoreKit API 来获取产品信息,或者验证用户的订阅状态。

swift
import StoreKit

class StoreManager: ObservableObject {
    @Published var products: [Product] = []
    @Published var purchasedSubscriptions: [String] = []
    @Published var isSubscribed: Bool = false

    init() {
        // 在这里添加你的初始化代码
        // 例如,获取产品信息,验证订阅状态
    }
}

通过以上步骤,你已经成功创建了一个 StoreManager 类,并将其设置为 ObservableObject。现在,你可以在 SwiftUI 视图中使用 @StateObject 来管理 StoreManager,并根据订阅状态动态显示/隐藏 UI 元素。 🥳

本站使用 VitePress 制作