/ / Swift 3 preview 2 linux error: uso dell'identificatore non risolto - linux, ubuntu, swift3

Anteprima di Swift 3 Errore di 2 linux: uso dell'identificatore non risolto - linux, ubuntu, swift3

Costruire la mia app su Linux ottenere un errore:

$ 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

Funziona su XCODE 8 sul mio Mac. Sto cercando Swift su Ubuntu:

$ swift --version

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

Target: x86_64-unknown-linux-gnu

risposte:

1 per risposta № 1

Due problemi:

1: Su Linux, anche fino a 3.0-PREVIEW-2, il prefisso "NS" non è ancora stato rilasciato in Foundation. Devi ancora usare NSURLSession, invece di URLSession. Questo cambierà in Foundation con 3.0-PREVIEW-3 basato sui rami di GitHub.

2: E questo è uno showstopper, URLSession / NSURLSession non funziona su Linux, ma non è ancora stato implementato. Se guardi il codice sorgente di URLSession adesso:

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

Vedrai quella chiamata sharedSession() ritorna NSUnimplemented()

A un certo punto, URLSession verrà su Linux, ma non è ancora stato implementato.

Credo che il motivo sia che su OS X, URLSessionper Swift semplicemente un ponte per l'implementazione dell'Obiettivo C che esisteva già. Su Linux, la Fondazione viene implementata interamente in Swift e non riescono ancora a riscriverlo.