Daniel
Daniel

Reputation: 3864

Create a dictionary out of an array in Swift

I want to create a dictionary out of an array and assign a new custom object to each of them. I'll do stuff with the objects later. How can I do this?

var cals = [1,2,3] 
// I want to create out of this the following dictionary
// [1:ReminderList() object, 2:ReminderList() object, 3:ReminderList() object]

let calendarsHashedToReminders = cals.map { ($0, ReminderList()) } // Creating a tuple works!

let calendarsHashedToReminders = cals.map { $0: ReminderList() } // ERROR: "Consecutive statements on a line must be separated by ';'"

Upvotes: 2

Views: 529

Answers (1)

Eendje
Eendje

Reputation: 8883

map() returns an Array so you'll either have to use reduce() or create the dictionary like this:

var calendars: [Int: ReminderList] = [:]
cals.forEach { calendars[$0] = ReminderList() }

You can also use reduce() to get a oneliner but I'm not a fan of using reduce() to create an Array or a Dictionary.

Upvotes: 6

Related Questions