2016-08-05 83 views
-2

大家好我是新来的迅速和我越来越想字典的存储到一个数组斯威夫特存储辞典阵列

当运行在操场上的代码,它工作正常,当一个错误,但是当我把代码进入我的模型类,我得到一个错误

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

你得到什么类型的错误? –

+0

你的Model类的代码是什么? – Shades

回答

1

,需要在不使用其他属性

声明数组属性“实例成员‘album1’不能型‘模式’中使用”
var albums = [[String:String]]() 

和初始化代码将它移动到你的类的一些init方法

init() { 
    albums = [album1,album2,album3] 
} 
+1

这工作很好。谢谢 – Phill360

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) 


} 
0

您可以创建结构并在那里存储您的数据。例如:

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, ...] 

这是不容易出错比字典使用字符串文字。

+0

你没有解决问题。您提出了其他数据结构(未提及),并且您在OP环境中编写的示例将导致相同的错误。 –