大家好我是swift的新手,我在尝试将字典存储到数组中时遇到错误
在游乐场中运行代码时,它工作正常但是当我将代码放入我的Model类时,我收到错误“实例成员'album1'不能用于'Model'类型”
let album1:[String:String] = ["artist":"michael jackson", "title":"thriller"]
let album2:[String:String] = ["artist":"linkin park", "title":"hybrid theory"]
let album3:[String:String] = ["artist":"of monsters and men", "title":"beneath the skin"]
var albums = [album1,album2,album3]
感谢您的帮助
答案 0 :(得分:1)
您需要声明数组属性而不使用其他属性
var albums = [[String:String]]()
并将初始化代码移动到类的某个init
方法
init() {
albums = [album1,album2,album3]
}
答案 1 :(得分:1)
我将此代码添加到viewDidLoad并且没有收到任何错误消息,也许您需要将其移动到某种类型的初始化方法。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let album1:[String:String] = ["artist":"michael jackson", "title":"thriller"]
let album2:[String:String] = ["artist":"linkin park", "title":"hybrid theory"]
let album3:[String:String] = ["artist":"of monsters and men", "title":"beneath the skin"]
let albums = [album1,album2,album3]
print(albums)
}
答案 2 :(得分:0)
你可以创建struct并存储你的数据。例如:
struct Album {
// MARK: - Properties
let artist: String
let title: String
// MARK: - Lifecicle
init(withArtist artist: String, andTitle title: String) {
self.artist = artist
self.title = title
}
}
接下来,您可以将此作为示例:
let album1 = Album(withArtist: "MJ", andTitle: "Thriller")
...
let albums: [Album] = [album1, ...]
与在字典中使用字符串文字相比,它更不容易出错。