objective-c - ios开发,如何在内存不会爆掉的情况下往字符串添加大量数据?
怪我咯
怪我咯 2017-04-17 17:24:09
[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)
阿神

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

#####如果是像电子书的字符串,完全写入文本,或者写入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];

}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号