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 2.0 Enumerations and Optionals Introduction to Optionals Initializing Optional Values

JUNSEI TEI
JUNSEI TEI
2,055 Points

Guard Statements in Initializer

CODE CHALLENGE... HELP ME

optionals.swift
struct Book {
    let title: String
    let author: String
    let price: String?
    let pubDate: String?

    init?(dict: [String: String]) {
        guard  self.title = dict["title"], self.author = dict["author"]
            else{ return nil }
          self.price = dict["price"]
          self.pubDate = dict["pubDate"]

    }

}

1 Answer

Michael Reining
Michael Reining
10,101 Points

Hi there,

You are very close. You don't actually need the guard statement to complete the code challenge.

struct Book {
    let title: String
    let author: String
    let price: String?
    let pubDate: String?

    init?(dict: [String: String]) {
        if dict["title"] == nil { return nil }
        if dict["author"] == nil { return nil }

        self.title = dict["title"]!
        self.author = dict["author"]!
        self.price = dict["price"]
        self.pubDate = dict["pubDate"]
    }
}

Since the title and author are required, you have to check that they exist first or return nil.

I hope that helps,

Mike

PS: If you found the above helpful, be sure to check out my app which breaks code challenges down and really explains things so you can learn faster.

Code! Learn how to program with Swift

https://itunes.apple.com/app/code!-learn-how-to-program/id1032546737?mt=8

PPS: I could not have developed the above app without going through the awesome resources on Team Treehouse. Stick with it. It is so worth it!

r5
r5
2,416 Points

Hey, Is it possible with this code to assign the struct Book to a constant an assign your values to title, author etc.? And if so what is the right syntax?

Thanks!