0
JSONまたはREST APIに関係なく、ウェブサイトのコンテンツをポーリングしようとすると、動作しないようです。同じコードがiOS Appで動作しますが、Swift macOS Terminalアプリケーションで使用されてもコンテンツは取得されません。主な理由は何ですか?Xcode Swift macOS、端末アプリケーションがNSURLSessionを実行していない
プロジェクトにはInfo.plistファイルがありません。
ここでは、iOSアプリケーションでは動作するが、macOS端末アプリケーションでは動作しないコード例を示します。簡単なjsonParser()を使って関数を呼び出します。これはNSURLSessionを開始し、到着時にJSONを出力します。
enum JSONError: String, ErrorType {
case NoData = "ERROR: no data"
case ConversionFailed = "ERROR: conversion from JSON failed"
}
func jsonParser() {
let urlPath = "https://api.coindesk.com/v1/bpi/currentprice.json"
guard let endpoint = NSURL(string: urlPath) else {
print("Error creating endpoint")
return
}
let request = NSMutableURLRequest(URL:endpoint)
NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in
do {
guard let data = data else {
throw JSONError.NoData
}
guard let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary else {
throw JSONError.ConversionFailed
}
print(json)
} catch let error as JSONError {
print(error.rawValue)
} catch let error as NSError {
print(error.debugDescription)
}
}.resume()
}
実行時に問題を再現して投稿する[スモール、自蔵、コンパイル可能](http://www.sscce.org/)Swiftファイルを作成できますか? – zneak
http://stackoverflow.com/questions/25126471/cfrunloop-in-swift-command-line-programの重複はありますか? –
サンプルコードを提供するために編集されました。 –