Mit NSMutableData
könnte ich ein Array von Int's
oder Float
erstellen und diese auf der Festplatte speichern.Wie man Int an die neue Datenstruktur anfügt (Swift 3)
protocol BinaryConvertible
{
init()
}
extension Int : BinaryConvertible {}
struct Storage<T: BinaryConvertible>
{
let data = NSMutableData()
func append(value: T)
{
var input = value
data.append(&input, length: sizeof(T))
}
func extract(index: Int) -> T
{
var output = T()
let range = NSRange(location: index * sizeof(T), length: sizeof(T))
data.getBytes(&output, range: range)
return output
}
}
Swift 3 hat eine neue Art, die Data
NSData
unter der Haube verwendet. Wie String
und NSString
. Ich kann nicht herausfinden, wie z. a Double
mit den neuen Methoden.
Die Append-Funktion erwartet nun eine UnsafePointer<UInt8>
, aber wie erstellen Sie dies aus einer Double
oder irgendeine zufällige Struktur für diese Angelegenheit?
Mögliche Duplikat [Werfen Sie einen Swift-Struktur zu UnsafeMutablePointer] (http://stackoverflow.com/questions/29556610/cast-a-swift-struct-to-unsafemutualpointervoid) –
Alexander
Ich glaube nicht. In swift 3 Data erwartet UnsafePointer. Notieren Sie den UInt8-Typ. Alles, was ich bisher gefunden habe, beschäftigt sich mit UnsafePointer Zeigern. Ich muss die Bytes holen, damit ich sie auf die Festplatte schreiben kann, und später diese Bytes wieder lesen. –
user965972
Es kann gegossen werden – Alexander