ios开发,如何在内存不会爆掉的情况下往字符串添加大量数据?

如题,我想往字符串中动态追加大量的数据,但是内存会爆掉,请问这种情况该怎么处理?
代码如下:

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];
        
    }
阅读 3.9k
3 个回答

可以用数组读取来然后取的时候再拼接到一起,你应该说明这个场景是怎么出现的

#####如果是像电子书的字符串,完全写入文本,或者写入NSData
#####如果是想要一个很长的字符串,加入要给服务器的话,直接把文本NSData传给服务器,服务器再次解密即可。
#####如果是像电子书显示完的话,可以分页读啊,并不一定一下子读完。

严重内存泄漏,无数个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];

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题