You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 4:如何在全局类中创建存储productID、quantity、price的多维数组?

在Swift 4中实现全局关联商品数组的方案

嘿,这个需求挺常见的,我来帮你一步步搞定!

首先,咱们别直接用三个独立数组分别存productID、quantity和price——那样后期维护很容易出现数据错位的问题(比如改了数量数组却忘了同步价格)。最合理的做法是先定义一个数据模型,把这三个关联字段封装在一起,用Swift的struct就非常合适:

// 定义商品数据模型,把三个关联字段打包
struct ProductItem {
    let productID: Int  // 产品ID设为let,因为一般不会随便修改
    var quantity: Int   // 数量和价格可能变动,用var
    var price: Double
}

接下来,你要的全局数组有两种实现方式,看你偏好哪种:

方式1:直接声明文件级别的全局数组

在你的Swift文件最顶部(所有类、结构体的外面)声明这个数组,这样整个项目里的代码都能访问到它:

// 全局商品数组,初始化为空
var globalProducts: [ProductItem] = []

方式2:用全局管理类的静态属性存储

如果你希望把这类全局数据统一放在一个专门的类里管理(更规范,方便后续扩展),可以写一个全局类,用静态属性来存数组:

// 全局数据管理类,专门存放全局共享的数据
class GlobalDataManager {
    // 静态属性,全局可访问,初始为空数组
    static var products: [ProductItem] = []
}

怎么添加示例数据?

现在你可以把你给出的示例数据(productID=1,quantity=3,price=1.00)添加到数组里:

// 方式1的添加方式
let sampleProduct = ProductItem(productID: 1, quantity: 3, price: 1.00)
globalProducts.append(sampleProduct)

// 方式2的添加方式
GlobalDataManager.products.append(ProductItem(productID: 1, quantity: 3, price: 1.00))

如何访问数组里的数据?

之后在项目的任何地方,你都可以轻松访问这些关联数据,比如:

// 方式1的访问示例
if let firstProduct = globalProducts.first {
    print("产品ID:\(firstProduct.productID),数量:\(firstProduct.quantity),价格:\(firstProduct.price)")
}

// 方式2的访问示例
if let firstProduct = GlobalDataManager.products.first {
    print("产品ID:\(firstProduct.productID),数量:\(firstProduct.quantity),价格:\(firstProduct.price)")
}

这种用结构体封装的方式,能保证每个productID始终和对应的quantity、price绑定在一起,代码可读性和维护性都比分散数组高得多,推荐你用这种方案~

内容的提问来源于stack exchange,提问作者Utku Dalmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:26:11