如何使用 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
。
我有以下结构:
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
。