在 xcode for iphone 中使用此代码时,我得到一个分配
区域错误。(使用模拟器)
NSString* str =@"Sommetext";
for (int i =1; i < 50 ; i++) {
str = [[[str stringByAppendingString:@"\n"]
stringByAppendingString:str] stringByAppendingString:@""];
NSLog([NSString stringWithFormat:@"%d",i]);
}
监控日志显示从1增加到26然后
崩溃并出现以下错误。
Appname(239,0xac5c9a28) malloc: * mmap(size=805306368) failed (error code=12) * error: can't allocate region
但是在我的android(三星)上运行相同的代码(在java中)
Galaxy S2) 即使循环 1000 次也没有问题。
更新 1:
使用 GCD 在后台运行代码会返回相同的错误,因此它不是主线程过载问题。
更新 2:
运行良好的Android java代码
String MsgText = "Some text";
for(i = 0 ; i < amount; i++)
{
////Works on amount < 10000
//Tested on Galaxy S2 **1GB Ram**
MsgText = MsgText + MsgText;
}