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 trialkevin11
2,535 PointsCallback methods with closure?
I have been struggling with this challenge for a while now and can't seem to find a way to do it. This is the objective:
We're writing an app to fetch the most recent blog posts from the Treehouse blog. This requires making a network request using asynchronous methods that execute in the background. For that we need a closure. Create a method called fetchTreehouseBlogPosts, that has a single parameter - a completion handler. The closure has three parameters: a data object containing the results of the request as type NSData!, the HTTP response object from our request as type NSURLResponse!, an error object as type NSError!, and a return type of void. Note: If you prefer to use a typealias to make the method signature clear, name it BlogPostCompletion
It is really long and a little confusing. I can't figure out how to do it but I gave it my best shot. Please help solve the challenge. Here is my code:
import Foundation
// Add your code below
func fetchTreehouseBlogPosts(completion: (NSURLResponse! -> Void)) (completionHandler {
let data, let response, let error) in
}
alipayne
1,902 Pointsalipayne
1,902 Pointsbut jut in case:
import Foundation
// Add your code below typealias BlogPostCompletion = ((NSData!, NSURLResponse!, NSError!) -> Void)
// Add your code below func fetchTreehouseBlogPosts (completion: BlogPostCompletion) { let blogURL = NSURL(string: "http://blog.teamtreehouse.com/api/") let requestURL = NSURL(string: "get_recent_summary/?count=20", relativeToURL: blogURL)
let request = NSURLRequest(URL: requestURL!)
let config = NSURLSessionConfiguration.defaultSessionConfiguration() let session = NSURLSession(configuration: config)
// Add your code between the comments let dataTask: NSURLSessionDataTask = session.dataTaskWithRequest(request) {(data, response, error) in return completion(data, response, error)
} dataTask.resume() }