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 Functions and Optionals Optionals What is an Optional?

Zachary Goforth
Zachary Goforth
748 Points

How do I pass Challenge Task 2 on optionals?

I've asked for help on this before but the code recommended didn't work. I tried: if let result = search(name:"Doc"). When I placed this code in I got this error...

swift_lint.swift:15:39: error: expected '{' after 'if' condition if let result = search(name:"Doc")

What am I doing wrong and what is the right code?

search.swift
func search(#name: String) -> String? {
    let names = ["Doc","Grumpy","Happy","Sleepy","Bashful","Sneezy","Dopey"]
    for n in names {
        if n == name {
            return n
        }
    }
    return nil 
    if let result = search(name:"Doc") 
}

1 Answer

Enrique Munguía
Enrique Munguía
14,311 Points

There are two issues here, first the last line of the method (if let statement) is incomplete, you must add a pair of curly braces {} to complete the block. Second even when you fixed that, there is still a logic error, because you try to use the function within the function. The solution is to get rid of the if let statement and put it outside the function.

func search(#name: String) -> String? {
    let names = ["Doc","Grumpy","Happy","Sleepy","Bashful","Sneezy","Dopey"]
    for n in names {
        if n == name {
            return n
        }
    }
    return nil
}

if let result = search(name:"Doc") {
    println(result)
}
Zachary Goforth
Zachary Goforth
748 Points

I put in the code and received this error...

Bummer! You used println() to output the string "Doc", instead of Found?