我正在尝试执行以下脚本:
import Foundation class TestURLSession{ var session: NSURLSession! func run(){ session = NSURLSession.sharedSession() let url = NSURL(string: "http://www.veenex.de/tmp/json") let request = NSMutableURLRequest(URL: url!) request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") request.HTTPMethod = "GET" let getDataTask = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in // HTTP Response contains an error if let httpResponse = response as? NSHTTPURLResponse { if httpResponse.statusCode != 200 { print("response was not 200: \(response)") return } } // Error submitting Request if error != nil { print("error submitting request: \(error)") return } // print data if data != nil{ do { let json = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray for entry in json { print(entry) } } catch { print("Error printing data") } } }); getDataTask.resume() } } let testURLSession = TestURLSession() testURLSession.run()
但我收到错误消息:“错误正在运行的代码:未知的错误代码132”。 执行Xcode Playground中的代码就可以工作。
NSURLSession
纯Swift实现尚未写入。 查看Apple的GitHub基金会的NSURLSession.swift
文件。
每种方法都是NSUnimplemented()
,这意味着它还没有实现。 在这个类完成之前,它将不能在Linux和IBM的Swift Sandbox上使用。
我深入了解错误,这是由于某种原因未被发送的消息:
fatal error: sharedSession() is not yet implemented: file Foundation/NSURLSession.swift, line 87 0 swift 0x0000000002f4abf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40 1 swift 0x0000000002f493f6 llvm::sys::RunSignalHandlers() + 54 2 swift 0x0000000002f4b726 3 libpthread.so.0 0x00007fd9dae43d10 4 libswiftCore.so 0x00007fd9d0e5eac3 _TTSf4s_s_s_n___TFs16_assertionFailedFTVs12StaticStringSSS_Su_T_ + 147 5 libFoundation.so 0x00007fd9d3a5c21f 6 libFoundation.so 0x00007fd9d3b178de 7 libFoundation.so 0x00007fd9dbce10c7 8 libFoundation.so 0x00007fd9dbce1079 9 swift 0x0000000000d0da24 llvm::MCJIT::runFunction(llvm::Function*, llvm::ArrayRef<llvm::GenericValue>) + 996 10 swift 0x0000000000d1102f llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, char const* const*) + 1263 11 swift 0x0000000000bebdf8 swift::RunImmediately(swift::CompilerInstance&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, swift::IRGenOptions&, swift::SILOptions const&) + 2312 12 swift 0x000000000076656e 13 swift 0x0000000000761dfe frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 2590 14 swift 0x000000000075d513 main + 2835 15 libc.so.6 0x00007fd9da1e8a40 __libc_start_main + 240 16 swift 0x000000000075c8f9 _start + 41 Stack dump: 0. Program arguments: /usr/bin/swift -frontend -interpret /swift-execution/code-tmp.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -lFoundation -lETSocket /usr/bin/doit.sh: line 19: 10 Illegal instruction timeout 5 swift -lFoundation -lETSocket -v /swift-execution/$fileroot
所以是的,我们有一些在Swift中还没有实现的东西。 我将在我们的沙盒的下一个补丁中改进错误消息。