Swift 2 array of tuples not working as in swift 1

2020-02-07 10:54发布

问题:

Array:

var rows: [(title: String, body: String, icon: String, iconColor: UIColor)] = []
rows.append(title: "Foo", body:"Bar", icon: "Bas", iconColor: UIColor(netHex: 0x4285f4))

the append line is giving me following error since I upgraded to swift 2:

Cannot invoke append with argument list of type (title: String, body: String, icon: String, iconColor: UIColor)

in swift 1 it was working fine. Any idea whats wrong?

回答1:

You're appending the parameters list, not the tuple itself: you're missing a pair of ().

rows.append((title: "Foo", body:"Bar", icon: "Bas", iconColor: UIColor(netHex: 0x4285f4)))


回答2:

Oh, OK, you need more parentheses.

At the moment you're providing a list of 4 parameters.

You need one tuple parameter like this...

rows.append((title: "Foo", body:"Bar", icon: "Bas", iconColor: UIColor(netHex: 0x4285f4)))


标签: swift swift2