如题,我想往字符串中动态追加大量的数据,但是内存会爆掉,请问这种情况该怎么处理?
代码如下:
NSString *pointSum = [[NSString alloc]init];
//faceNum大约为20000
for (int x = 0; x < faceNum ; x++) {
NSLog(@"运行到%d行",x);
NSString *sumString;
if (sumString == nil) {
sumString = [[NSString alloc]init];
}
//假设字符串等于入选
sumString = @"3213213213gdsdsgdsgdsfdsfewewfdsfdsggfewfewf21321";
// NSLog(@"%@",sumString);
pointSum = [NSString stringWithFormat:@"%@%@",pointSum,sumString];
}
NSMutableString *pointSum = [[NSMutableString alloc]init];
//faceNum大约为20000
for (int x = 0; x < 20000 ; x++) {
NSLog(@"运行到%d行",x);
NSString *sumString;
if (sumString == nil) {
sumString = [[NSString alloc]init];
}
//假设字符串等于入选
sumString = @"3213213213gdsdsgdsgdsfdsfewewfdsfdsggfewfewf21321";
// NSLog(@"%@",sumString);
[pointSum appendString:sumString];
}
严重内存泄漏,无数个sumString
初始化的地址没有被访问
可以用数组读取来然后取的时候再拼接到一起,你应该说明这个场景是怎么出现的
#####如果是像电子书的字符串,完全写入文本,或者写入NSData
#####如果是想要一个很长的字符串,加入要给服务器的话,直接把文本NSData传给服务器,服务器再次解密即可。
#####如果是像电子书显示完的话,可以分页读啊,并不一定一下子读完。