Ich muss Bilder aus der Fotobibliothek über den Draht senden - in Stücke von 5 MB.Teilen von Daten in Stücke in Swift 3
Ich lese ein Bild aus der Bibliothek mit: PHImageManager.requestImageData (für: Optionen: resultHandler :) und ein Datenobjekt zu bekommen. Ich möchte dann die Daten effizient in Stücke teilen (ohne den Speicher zu kopieren). Was wäre der beste Weg, das zu tun?
Dies ist, was ich bisher:
imageData.withUnsafeBytes { (unsafePointer: UnsafePointer<UInt8>) -> Void in
let totalSize = data.endIndex
var offset = 0
while offset < totalSize {
let chunkSize = offset + uploadChunkSize > totalSize ? totalSize - offset : uploadChunkSize
let chunk = Data(bytesNoCopy: unsafePointer, count: chunkSize, deallocator: Data.Deallocator.none)
// send the chunk...
offset += chunkSize
}
}
Jedoch habe ich diesen Fehler bei der Kompilierung erhalten:
Wert kann nicht vom Typ ‚UnsafePointer‘ zu erwarteten Argumenttyp ‚UnsafeMutableRawPointer‘ konvertieren
Wenn ich mutableBytes:
data.withUnsafeMutableBytes { (unsafePointer: UnsafeMutablePointer<UInt8>) -> Void in... }
Dann erhalte ich die compi le-Zeitfehler:
Kann nicht auf unveränderlichen Wert verwenden mutiert Mitglied: ‚data‘ ist ein ‚lassen‘ konstant
Was ist richtig, da ich wirklich nicht zu Änderungen an den Bilddaten wollen. Ich möchte nur einen Teil davon auf einmal senden.
Gibt es einen besseren Weg, dies zu tun?
wäre schön, wenn Sie Ihre Lösung markieren. Vielen Dank – John