Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Swift Basics (retired) Collections What is a Dictionary?

Won't accept the right answer.

Why is this wrong?

dictionaries.swift
let currencies = ["US": "Dollar", "UK": "Pound", "JP": "Yen"]
let ukCurrency = currencies.removeValueForKey("UK")

3 Answers

Hi George!

removeValueForKey actually removes the value from the dictionary. Instead, what the challenge is asking you to do is to assign the value to a new constant:

You can find reference for dictionaries in the official Apple documentation, here

Greg Kaleka
Greg Kaleka
39,021 Points

Hi George!

currencies is a constant, since you declared it with let. Therefore, it is immutable and you can't call removevalueforkey() on i.

What you want to do here is retrieve (not remove!) the value for the key "UK" from currencies. The easiest way to do that is with subscripting:

let ukCurrency = currencies["UK"]

What this says is "look in the dictionary currencies for the key "UK", and store the value it's attached to in the constant ukCurrency."

It's a lot like array subscripting, where you might say "look in the array myArray for the item at index 3, and store the item there in the constant myConstant."

let myConstant = myArray[3]

You're attempting to remove a value from a constant which will cause an error. You instead need to just retrieve the value for "UK" from currencies.