-1

我正在附加字符串,我循环运行了很多次应用程序崩溃了。它显示错误消息我如何管理错误消息是 malloc: * mmap(size=16777216) failed (error code=12) 错误:无法分配区域 在 malloc_error_break 中设置断点以调试 *由于未捕获的异常“NSMallocException”而终止应用程序,原因:“内存不足。我们建议重新启动应用程序。如果您有未保存的文档,请在 Finder 中创建一个备份副本,然后尝试保存。我的代码是` NSMutableString * str = [NSMutableString stringWithCapacity:100000];

int i;
for(i=0;i<1000000;i++){
    [str appendString:@"abcd"];

}`

4

1 回答 1

4

不知道你实际在做什么的细节,是不可能说的。

一般来说,当你用完内存时,答案是使用更少的内存。

对于涉及大量数据的操作,您需要转移到通过磁盘缓冲的某些操作。这可以通过任何数量的手段来完成。使用哪一个取决于您尝试做的任何事情的细节。

如果您真的只是将文本附加到缓冲区,则打开文件描述符(或NSFileHandle)并改为写入。

于 2013-04-05T04:57:42.667 回答