如何使用 Swift 中的结构组件初始化字典

How to initialize a Dictionary with structure components in Swift

我有以下结构:

struct song {
var songnum: Int = 0
var name = "not defined"
var lyrics_wo_chords = NSMutableAttributedString()
var lyrics_w_chords = NSMutableAttributedString()
var favorite = false
}

我正在尝试制作字典var songs = [String: [song]]()

其中 String 是歌曲集的名称,[song] 是一个名为 song 的结构数组,其中包含各个结构成员

我试过 songs["SongBook name"] = song.self as? [song] 向词典添加新键。但除此之外,我不知道如何初始化它。

此外,当我附加键的数组时:

songs["SongBook name"]?.append(song(
songnum: 1, 
name: "Name", 
lyrics_o_chords: NSMutableAttributedString(string:"No Chords"), 
lyrics_w_chords: NSMutableAttributedString(string: "With Chords"), 
favorite: 
false))`             

返回的字典为nil

非常感谢任何帮助,谢谢

你的字典中的值是一个song的数组(即[song]),所以你需要在你的值周围加上[ ]来使它成为进入 song:

的数组
songs["SongBook name"] = [song(
    songnum: 1,
    name: "Name",
    lyrics_wo_chords: NSMutableAttributedString(string:"No Chords"),
    lyrics_w_chords: NSMutableAttributedString(string: "With Chords"),
    favorite: false)
]

结构和 class 名称应大写,因此在定义结构时使用 Song 而不是 song