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 Weather App with Swift Interacting with Data From the Web Constructing a URL

Lukas Smith
Lukas Smith
4,026 Points

What should i do here in my second task

How can i build absolute URL ? To access information about a course we can use a URL like: https://api.teamtreehouse.com/course/COURSE_ID. Given the variable treehouseCourseID, create an absolute URL, named courseURL, to retrieve information about a user's progress on a certain course. It should have a path that's relative to the treehouseBaseURL.

urls.swift
import Foundation

let treehouseCourseID = 25

// Add your code below
let baseURL = NSURL(string: "https://api.teamtreehouse.com/")
let treehouseBaseURL = NSURL(string: "", relativeToURL: baseURL)
let courseURL = NSURL(treehouseBaseURL, "https://api.teamtreehouse.com/course/\(treehouseCourseID)")

2 Answers

Nathan F.
Nathan F.
30,773 Points

First, remove the added treehouseBaseURL var, as you already have what you need there in the baseURL var. This current code won't compile as you are trying to pass an NSURL object into the relativeToURL parameter, which expects another string (just as its first parameter). Even if it did work, you'd end up with what you have in the baseURL var.

Still, you want to use the method from treehouseBaseURL in courseURL. Here's a start.

import Foundation

let treehouseCourseID = 25
// Add your code below
let baseURL = NSURL(string: "https://api.teamtreehouse.com/")
let courseURL = NSURL(string: "[you need something here]", relativeToURL: baseURL)

Remember that baseURL contains a URL of https://api.teamtreehouse.com/. So the string parameter in courseURL will be added to that. Currently this code would result in a url of "https://api.teamtreehouse.com/[you need something here]".

Lukas Smith
Lukas Smith
4,026 Points

Thank You, they wants treehouseBaseURL, below is correct code. Thx for help

import Foundation

let treehouseCourseID = 25

// Add your code below
let treehouseBaseURL  = NSURL(string: "https://api.teamtreehouse.com/")
let courseURL  = NSURL(string: "course/\(treehouseCourseID)", relativeToURL: treehouseBaseURL )