Ich lese eine sehr große Datei mit einem NSInputStream und sende sie an ein Gerät in Paketen. Wenn der Empfänger kein Paket erhält, kann ich mit einer Paketnummer zum Absender zurücksenden, die den Startort in Bytes des fehlenden Pakets darstellt.
Ich weiß, dass ein NSInputStream das Paket nicht zurückspulen und greifen kann, aber gibt es eine andere Möglichkeit, den angeforderten Bytebereich zu erfassen, ohne die gesamte große Datei in den Speicher zu laden?
Wenn es eine Methode [NSData dataWithContentsOfFileAtPath: inRange] gäbe, wäre sie perfekt.
Ich denke nicht, dass es eine Standardfunktion gibt, die das tut, aber Sie könnten selbst eine schreiben, indem Sie eine Kategorie und die C stdio API verwenden:
%Vor%Dann kannst du das:
%Vor%Tags und Links objective-c iphone file nsdata