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 Build a Playlist Browser with Swift Building the Music Library and Playlist Models Struct Initialization

Still getting tons of errors in the init method, can't fix it?

I am using XCode 6.4 and I added the code that's in the video:

let musicLibrary = MusicModel().library let playlistDictionary = musicLibrary[index] title = playlistDictionary["title"] as String!

That didn't work, I checked the other questions and everyone said to change AS to AS! , so I did this:

let musicLibrary = MusicModel().library let playlistDictionary = musicLibrary[index] title = playlistDictionary["title"] as! String!

That gave me this error: Cannot assign a value of type ‘String!’ to a value of type ‘String?’

as well as this warning on the playlistDictionary line: Constant ‘playlistDictionary’ inferred to have type ‘AnyObject?’, which may be unexpected

I've tried all of the suggestions and can't get this to work. Would be great if someone from Treehouse could updated this code being that I'm paying a monthly fee for this.

1 Answer

When you change the "as" to an "as!", you need to take the ! operator off of the type that you are casting to. Ex: let musicLibrary = MusicModel().library let playlistDictionary = musicLibrary[index] title = playlistDictionary["title"] as! String

However the best way to do this now is actually using "as?", which will not trigger a runtime error if the value you are accessing is nil.

let musicLibrary = MusicModel().library let playlistDictionary = musicLibrary[index] title = playlistDictionary["title"] as? String