Ced*_*che 27 iphone split nsdata
我有一个大约1000kB的NSData对象.现在我想通过蓝牙传输.如果我拥有10个100kB的物体,那会更好.我想到我应该使用-subdataWithRange:
NSData 的方法.
我没有真正使用过NSRange.好吧,我知道它是如何工作的,但我无法弄清楚如何从一个给定位置读取长度:'到文件末尾'......我不知道该怎么做.
有关如何将其拆分为多个100kB NSData对象的一些代码将真正帮助我.(它可能涉及-length
查看应该制作多少个对象的方法..?)
先感谢您.
Nik*_*uhe 37
以下代码片段在不复制数据的情况下进行碎片处理:
NSData* myBlob;
NSUInteger length = [myBlob length];
NSUInteger chunkSize = 100 * 1024;
NSUInteger offset = 0;
do {
NSUInteger thisChunkSize = length - offset > chunkSize ? chunkSize : length - offset;
NSData* chunk = [NSData dataWithBytesNoCopy:(char *)[myBlob bytes] + offset
length:thisChunkSize
freeWhenDone:NO];
offset += thisChunkSize;
// do something with chunk
} while (offset < length);
Run Code Online (Sandbox Code Playgroud)
旁注:我应该补充一点,在myBlob
释放(或以其他方式修改)后,块对象无法安全使用.chunk
片段指向所拥有的内存myBlob
,因此除非您保留,否则不要保留它们myBlob
.
归档时间: |
|
查看次数: |
13240 次 |
最近记录: |