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 trialWilliam Humphrey
5,543 PointsWhere did I go wrong?
No runtime errors however I know that there is a better way of doing this I just can't figure it out.
struct Tag {
let name: String
}
let tagX = Tag(name: "x")
struct Post {
var title: String
var author: String
var tagX: Tag
init(title: String, author: String, tagX: Tag){
self.title = title
self.author = author
self.tagX = tagX
}
}
let firstPost = Post(title: "Apple", author: "IOS", tagX: Tag(name: "APPLE"))
1 Answer
Jonathan Ruiz
2,998 PointsHi William from the code above it looks like you wanted to solve the second part of the code challenge. Structs issue member wise initializers so you don't need to create one. They ask for a instance method for the Post struct, always think of methods as special functions that exist in a struct or class. In addition they want you to use some string interpolation, the instance method will have no parameters and return a string. When you access a stored property in a struct you use dot notation, this would have to be done for the name stored property in the Tag struct.
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: "iOS Development", author: "Apple", tag: Tag(name: "Swift"))
let postDescription = firstPost.description()