Swift数组:如何在索引中添加多个值

时间:2016-02-17 09:47:27

标签: arrays swift

我试图在Swift中创建一个简单的数据模型。该模型是一个列表,其中包含名称,大小,颜色和商店等项目。

struct List{

var list: [String]
var name: String
var size: String
var colour: String
var store: String

init(var list:[String], name: String, size: String, colour: String, store: String){

    self.list = list
    self.name = name
    self.size = size
    self.colour = colour
    self.store = store

    list = [name, size, colour, store]
}

如果我将list = [name, size, colour, store]放在索引0处,那么只有名称存在。如何为一个索引存储多个值

索引0:name1,size1,colour1,store1

索引1:name2,size2,colour2,store2

2 个答案:

答案 0 :(得分:5)

您需要定义一个模型来表示列表中的元素

struct Element {
    let name: String
    let size: String
    let colour: String
    let store: String
}

创建列表

var list = [Element]()

添加元素

let elm = Element(name: "name0", size: "size0", colour: "colour0", store: "store0")
list.append(elm)

let anotherElm = Element(name: "name1", size: "size1", colour: "colour1", store: "store1")
list.append(anotherElm)

提取元素

let firstElm = list[0] // "name0", "size0", "colour0", "store0"

答案 1 :(得分:1)

swift Tuples,每一个元素

struct List{
var list:  [(String, String, String, String)] = []
//    var name: String
//    var size: String
//    var colour: String
//    var store: String

init(name: String, size: String, colour: String, store: String){
    let t = (name, size, colour, store)
    self.list.append(t)
    }
}

或使用两个struct

    struct Element {
        var name: String
        var size: String
        var colour: String
        var store: String
    }


    struct List2 {
        var list:  [Element] = []

        init(name: String, size: String, colour: String, store: String){
            let t = Element(name: name, size: size, colour: colour, store: store)
            self.list.append(t)
        }
    }