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 Simple iPhone App with Swift Getting Started with iOS Development Swift Recap Part 1

Swift Recap Part 1: can not pass the challenge but works fine in playgrounds

Can anyone please tell me what am I doing wrong here? '''swift struct Post { let title: String let author: String let tag: Tag func description() -> String { return "(title) by (author). filed under (tag.name)" }

}

let firstPost = Post(title: "SomeTitle", author: "Some Guy", tag: Tag(name: "TAGTAG")).description()

let postDescription = firstPost

'''

structs.swift
struct Tag {
  let name: String
}
struct Post {
    let title: String
    let author: String
    let tag: Tag
    func description() -> String {
        return "\(title) by \(author). filed under \(tag.name)"
    }

}

let firstPost = Post(title: "SomeTitle", author: "Some Guy", tag: Tag(name: "TAGTAG")).description()

let postDescription = firstPost

1 Answer

andren
andren
28,558 Points

There are two issues:

  1. You are calling the description method on the line where you create the firstPost constant, that causes that constant to be assigned the description string, rather than an instance of the Post struct like it is supposed to.

  2. You have not capitalized the word "Filed" in your string, challenges tend to be very picky about strings so even capitalizing the string wrong will often cause your code to not pass.

If you fix those two issues:

struct Tag {
  let name: String
}
struct Post {
    let title: String
    let author: String
    let tag: Tag
    func description() -> String {
        // Changed filed to Filed
        return "\(title) by \(author). Filed under \(tag.name)" 
    }

}

// Store Post instance in firstPost 
let firstPost = Post(title: "SomeTitle", author: "Some Guy", tag: Tag(name: "TAGTAG"))

// Store result of description method in postDescription 
let postDescription = firstPost.description()

Then your code will work.

it works , Thank you so much