我有一系列书籍。 书籍有标题和字符。 人物有名字和年龄。 书和字都都是结构。
当我的应用程序启动时,会创建一组默认的书籍(用户稍后也会添加自己的书籍。
这是我的基本代码:
(注意:????是我无法解决的代码的占位符。)
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]])
但是我担心处理这两个独立的阵列会在一大堆书中变得太难,更不用说用户创建的书了。
我最好如何处理这个问题?
答案 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之间的混淆。