2016-07-17 12 views
2

Linux上で私のアプリを構築するには、エラーを取得:スウィフト3プレビュー2 Linuxのエラー:未解決の識別子を使用

$ swift build 

Compile Swift Module 'finder' (1 sources) 

main.swift:24:15: error: use of unresolved identifier 'URLSession' 

let session = URLSession.shared 

$ swiftc main.swift 

main.swift:24:15: error: use of unresolved identifier 'URLSession' 

let session = URLSession.shared 

それは私のMac上でXCODE 8で働いています。 私はUbuntuでスウィフトをしようとしている:

$ swift --version 

Swift version 3.0 (swift-3.0-PREVIEW-2) 

Target: x86_64-unknown-linux-gnu 
+0

どうやら間違っています。それについてあなたのコードを見ることなく。 –

+1

私は思う*「NSプレフィックスを削除する」という名前変更はまだLinuxでは行われていない、つまりNSURLSessionである。 –

+0

あなたはIBMのlibcurl https://github.com/dmcyk/SwiftyCurl/の周りにこの豪華なラッパーを調べることをお勧めします – johndpope

答えて

1

2つの問題:

1: Linuxでは、さえ3.0-PREVIEW-2まで、 "NS" プレフィックスがで削除されていませんまだ財団。それでもURLSessionではなくNSURLSessionを使用する必要があります。これは、GitHubブランチに基づいた3.0-PREVIEW-3のFoundationで変更されます。

2:これはショーストップですが、URLSession/NSURLSessionはLinuxでは動作しません。まだ実装されていません。あなたが今URLSessionのソースコードを見れば: - それはされていない

https://github.com/apple/swift-corelibs-foundation/blob/93d0018a0891f876065651c3ee8c63f256a38de4/Foundation/NSURLSession/NSURLSession.swift#L200

あなたはいくつかの点でsharedSession()戻りNSUnimplemented()

を呼び出し、URLSessionは、Linuxに来ることがわかりますまだ実装されていない

OS Xでは、SwiftのURLSessionは、既に存在していたObjective Cの実装への単純なブリッジだと思います。 Linuxでは、Foundationは完全にSwiftで実装されており、まだこれを書き直すことはできません。

関連する問題