使用数组中的数组 - Swift

时间:2015-06-01 04:45:24

标签: arrays swift struct

我有一系列书籍。 书籍有标题和字符。 人物有名字和年龄。 书和字都都是结构。

当我的应用程序启动时,会创建一组默认的书籍(用户稍后也会添加自己的书籍。

这是我的基本代码:
(注意:????是我无法解决的代码的占位符。)

struct Character {
    var name: String
    var age: Int
}

struct Book {
    var title: String
    var characters: [Character]
}

var books: [Book] = []

func createBooks() {
    books.append(Book(title: "My Book1", characters: ????)

}

我知道我可能会创建一个字符数组并使用

进行分配
books.append(Book(title: "My Book1", characters: [character[0], character[3]])

但是我担心处理这两个独立的阵列会在一大堆书中变得太难,更不用说用户创建的书了。

我最好如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

你的问题有点不清楚,但我会这样做。

struct Character {
    var name: String
    var age: Int
}

struct Book {
    var title: String
    var characters: [Character]
}

var books: [Book] = []

func createBooks() {
    let character1 = Character(name: "John", age: 24)
    let character2 = Character(name: "Sarah", age: 18)
    books.append(Book(title: "My Book1", characters: [character1, character2]))
}

这样你就是一个定义良好的结构,你就可以这样循环你的书:

for book in books {
    // Do something with book
}

你可以循环遍历每本书的所有字符:

for book in books {
    for character in book.characters {
        // Do something with character
    }
}

此外,我非常同意Leo Dabus的评论,你应该将你的Character结构的名称更改为其他类似BookCharacter的名称,以避免代码中char和Character之间的混淆。