首页 > 解决方案 > 快速将变量添加到静态数组

问题描述

我在 swift 中有一个静态数组,我想向它附加变量。它工作正常,如果我只有一个非静态的普通数组,但如果我将变量更改为静态,它就不起作用。有没有办法将项目附加到 Swift 中的静态数组?

这是一个示例代码:此示例工作正常,直到您注释 3 个非静态版本并取消注释 3 个静态版本,然后它不起作用。

import SwiftUI

struct ContentView: View {
    
    //Static Version:
    //@State static var arr = [String]()
    
    //non static Version:
    @State var arr = [String]()
    
    
    func appendToArray() {
        //Static Version:
        //ContentView.arr.append("Test")
    
        //non static Version:
        arr.append("Test")
    }
    func testArray() {
        //Static Version:
        //print(ContentView.arr[0])

        //non static Version:
        print(arr[0])
    }
    
    var body: some View {
        VStack {
                    
            Spacer()
            Button(action: {
                appendToArray()
            }){
                Text("Add something!!")
            }
            Spacer()
            Button(action: {
                testArray()
            }) {
                Text("Show Array Data")
            }
            Spacer()
                        
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

标签: swift

解决方案


您可以使用没有 @state 关键字的静态数组

    static var arrS = [String]()

推荐阅读