iOS Build a Simple iPhone App with Swift Getting Started with iOS Development Swift Recap Part 1

What is the problem with my code here?

The challenge tells me: "Bummer: Make sure the implementation of description matches the directions. Hint: Use string interpolation!"

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)"
  }
}

let swift = Tag(name: "swift")
let firstPost = Post(title: "Spike Game", author: "Mathieu Monat", tag: swift)
let postDescription = firstPost.description()

2 Answers

KRIS NIKOLAISEN
KRIS NIKOLAISEN
54,370 Points

You need to use the name property of tag in your string. Instead of \(tag) try \(tag.name).

Thank you. I made the change but I am still getting the same error message.

KRIS NIKOLAISEN
KRIS NIKOLAISEN
54,370 Points

Strange. I tried the following which only has that change and it passed:

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 swift = Tag(name: "swift")
let firstPost = Post(title: "Spike Game", author: "Mathieu Monat", tag: swift)
let postDescription = firstPost.description()

May be a caching issue?

Never-mind, it works. Thanks for the help!