You need to enable JavaScript to run this app. SwiftUI中如何修改ObservableObject内数组的指定索引元素值
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中如何修改ObservableObject内数组的指定索引元素值

这是一个同主题的高赞参考内容,但它没有解决我的问题,因为我们的数组查询逻辑存在差异。

假设我定义了如下数组结构:

final class SomeClass: ObservableObject {
   @Published var myArray = ["cat","dog","mouse"]

   func changeValueFor(index: Int, to newName: String) {
     // 暂未编写实现逻辑,可参考下方我原本计划使用的方法截图
   }

}

我需要在视图层访问上述类的属性并完成数组元素的修改,视图结构如下:

struct MyView: View {
   @ObservedObject var vm: SomeClass 
   index: Int
   var body: some View { 
       Text(vm.myArray[index])

       Button("Change Name To") {vm.changeValueFor(index: index, to: "goat" }
   }
}

常规SwiftUI视图中访问数组并展示内容的场景,通常是直接从ForEach这类迭代器获取Int类型的索引传入逻辑,但当前场景不适用该模式,我不清楚该如何实现。

我原本计划使用截图所示的方法,但发现该方法已被弃用,无法满足需求:

已弃用的Swift方法

以上描述尽量清晰说明我的问题,若仍有歧义可随时补充说明,期待获得适配当前场景的数组指定索引元素修改的实现方案。


内容的提问来源于stack exchange,提问作者Sergio Bost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 02:06:02