2014-11-12 3 views
9

Swift REPL è ottimo, ma sarebbe ancora meglio se potessi importare le classi da un progetto Xcode. Ho provato il passaggio alla mia directory del progetto e l'esecuzionePosso importare il mio codice progetto in Swift REPL?

$ swift 
> import ProjectName 

ma ho avuto:

error: no such module 'ProjectName' 

E 'possibile fare questo?

risposta

13

Swift REPL include un numero di opzioni differenti. Usa swift -help per vederli. Per il vostro caso, se avete definito ProjectName come bersaglio quadro e l'obiettivo che hai dichiarato 'definisce Module' allora si può accedere con:

$ swift -F <install path with subdirectory ProjectName.framework> 
> import ProjectName 

Ecco un esempio:

$ swift -F /Users/.../Library/Developer/Xcode/DerivedData/Opus-bsjennhdtvmqrhejuabovdyxlqte/Build/Products/Debug/ 
Welcome to Swift! Type :help for assistance. 
    1> import OpusOSX 
    2> version     // var from framework 
$R0: String = "Opus 1.0" 
    3> any([1,3]) { 0 == $0 % 2 } // 'any()' in framework 
$R1: Bool = false 
    4> any([1,2,3]) { 0 == $0 % 2 } 
$R2: Bool = true 
    4> any([1,2,3,4], conjoin ({ 0 == $0 % 2 }, { $0 >= 3 })) 
$R3: Bool = true 
+0

Può funzionare per un progetto di app per iOS, piuttosto che per un framework? – Bill

+1

Probabilmente no, per due motivi. Innanzitutto, il programma 'swift' non ha opzioni a riga di comando per importare progetti e, in secondo luogo, il programma' swift' non è un cross-compiler e quindi funziona solo per MacOSX. Nota: si ottiene un 'cross-compiler' usando un IOS Playground in Xcode solo non con la riga di comando tramite 'Swift'. – GoZoner

+1

per utilizzare REPL per iOS, consultare: http://stackoverflow.com/questions/24385734/starting-swift-repl-for-ios-vs-osx/24388630#24388630 – Ultrasaurus