菊花链式NSMutableData容器

时间:2012-10-04 20:11:57

标签: ios xcode nsmutabledata

我正在从网页中检索相当大量的文本,我想用它构建多个NSMutableData实例,每个实例都有一定的大小。我不确定的是在第一个NSMutableData对象填满之后如何转移到第二个NSMutableData对象。我想做的是这样的:

NSInteger dataSize = 1000;
data1 = [[NSMutableData alloc] initWithCapacity:dataSize];
data2 = [[NSMutableData alloc] initWithCapacity:dataSize];
data2 = [[NSMutableData alloc] initWithCapacity:dataSize];

if (//data3 is full) {
    [data2 appendData:data];
} else if (// Data2 is full) {
    [data1 appendData:data];
} else {
    [data3 appendData:data];
}

或者其他一些事情。关于我如何做到这一点的任何建议?如何确定NSMutableData对象是否处于容量状态?

2 个答案:

答案 0 :(得分:0)

NSMutableData会在“满”时自动分配更多空间,因此您不必担心它会填满。它更像是一个列表而不是一个数组。

除非我遗漏了你想要完成的事情,否则你不应该这样做。

答案 1 :(得分:0)

initWithCapacity方法立即分配请求的内存,如果需要则分配额外的内存。这里datasize是初始需要的内存,如果分配的内存不足则会自动分配更大的空间。

请查看NSMutableDataDocumentation。 ;)