hikki hikki - 1 year ago 93
Swift Question

NSJSONSerialization not working as expected in a Playground

I have to get football game schedule via JSON and extract date of each game of one of the specific universities.

I tried:

let url = NSURL(string: "SCHOOL URL")
let request = NSURLRequest(URL: url!)

let session = NSURLSession.sharedSession()

let task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in

let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)

if let schedule = jsonData["schedule"] as? [[String: AnyObject]]{
for game in schedule{
if let date = game["date"] as? String{

} catch let error as NSError{
print("something bad happened!")


I am trying it in Xcode playground, but it does not print any at print line.
And I have appropriate url at SCHOOL URL.

Answer Source

In order to use asynchronous operations in an Xcode Playground, you need to set needsIndefiniteExecution to true.

Add this at the top of your code:

Swift 2

import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

Swift 3

import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download