Questo è qualcosa che i doc Swift sono silenziosi e volevo sapere di più su così ho esaminato.
C'è un protocollo, si chiama Streamable
:
protocol Streamable {
func writeTo<Target : OutputStream>(inout target: Target)
}
OutputStream
:
protocol OutputStream {
func write(string: String)
}
write
permette un oggetto da scrivere.
String
conforme ad entrambi, la rende facile da scrivere da e verso:
var target = String()
"this is a message".writeTo(&target)
println(target)
// this is a message
scrittura di un file:
var msg = "this will be written to an output file"
msg.writeToFile("output.txt", atomically: false, encoding: NSUTF8StringEncoding, error: nil)
// creates 'output.txt' in the same folder as the executable
C'è anche writeToUrl
.
Presumo quelle funzioni sono tutti costruiti in cima cacao corsi d'acqua, che hanno funzionalità simili:
var os = NSOutputStream(toFileAtPath: "output.txt", append: true)
os.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
var msg = "a truly remarkable message"
var ptr:CConstPointer<UInt8> = msg.nulTerminatedUTF8
os.open()
os.write(ptr, maxLength: msg.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
os.close()
fonte
2014-06-12 13:02:54
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Streams/ Articoli/CocoaStreamsOverview.html –
Sembra strano che tu non abbia qualcosa di base come parte della libreria standard. L'NSStream in realtà non è come lo faresti se lo scrivessi in fretta. – sanz
Concordo sul fatto che in questo momento Swift manchi in questo settore, ma è stato progettato per funzionare con i framework Cocoa. c'è qualcosa di specifico che stai cercando di fare? –