Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

iOS Build a Weather App with Swift (Retired) Pulling Data From the Web Fetching JSON Data

Having trouble getting past this

My answer is correct I think:

let courseData = NSDATA(string: courseURL!, options: nil , error: nil)

But tree house giving me an error to set courseData = NSDATA output

students_code.swift
import Foundation
let treehouseBaseURL = NSURL(string: "https://api.teamtreehouse.com/")
let courseURL = NSURL(string: "/course/\(courseID)", relativeToURL: treehouseBaseURL)
let courseData  = NSDATA(string: courseURL!, options: nil , error: nil)

3 Answers

Stone Preston
Stone Preston
42,016 Points

looking at the NSData class reference, we can see that it has a method that looks like this:

init?(contentsOfURL aURL: NSURL,
            options mask: NSDataReadingOptions,
              error errorPtr: NSErrorPointer)

its an init method which means you call it like so:

NSData(contentsOfURL: aURL,
            options: someOptions,
              error: someError)

you wrote NSData in all caps. it needs to be NSData not NSDATA. also the first parameter is named contentsOfURL, not string.

import Foundation
let treehouseBaseURL = NSURL(string: "https://api.teamtreehouse.com/")
let courseURL = NSURL(string: "/course/\(courseID)", relativeToURL: treehouseBaseURL)
let courseData  = NSData(contentsOfURL: courseURL!, options: nil , error: nil)

Thanks for the very quick response. Unfortunately I am still getting an error: Bummer! You need to assign the result of the NSData call to the courseData constant.

Here is my code:

import Foundation let treehouseBaseURL = NSURL(string: "https://api.teamtreehouse.com/") let courseURL = NSURL(string: "/course/(courseID)", relativeToURL: treehouseBaseURL) let courseData = NSData(string: courseURL!, options: nil , error: nil)

Stone Preston
Stone Preston
42,016 Points

also the first parameter is named contentsOfURL, not string.

you need to change the parameter name to contentsOfURL

let courseData  = NSData(contentsOfURL: courseURL!, options: nil , error: nil)

That did it - much thanks!

Stone Preston
Stone Preston
42,016 Points

no problem glad I could help!