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 trialRyan Maneo
4,342 PointsI don't get it... "no accessible initializers"?
Error: Playground execution failed: /var/folders/t7/v5kxmbvn2kbdzkmf59rqlpnh0000gn/T/./lldb/4546/playground24.swift:32:87: error: 'Tag' cannot be constructed because it has no accessible initializers let firstPost = Post(title: "A random title", author: "A random author", tag: Tag(name: "A random tag")) ^
struct Tag {
let name: String
struct Post {
let title: String
let author: String
let tag: Tag
}
let firstPost = Post(title: "A random title", author: "A random author", tag: Tag(name: "A random tag"))
}
2 Answers
Zachary Betz
10,413 PointsRyan, you are close. Just move the Post
struct outside the curly braces of the Tag
struct. You were getting an error because you cannot have a struct
within a struct
.
struct Tag {
let name: String
}
struct Post {
let title: String
let author: String
let tag: Tag
}
let firstPost = Post(title: "A random title", author: "A random author", tag: Tag(name: "A random tag"))
jcorum
71,830 PointsThe problem is that you are trying to create firstPost inside the struct. Try this instead:
struct Post {
let title: String
let author: String
let tag: Tag
} // end of struct
let firstPost = Post(title: "A random title", author: "A random author", tag: Tag(name: "A random tag"))