iPhoneのxcodeでこのコードを使用すると、割り当てが発生します
リージョン エラー。(シミュレーター使用)
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) に失敗しました (エラー コード = 12) *エラー: 領域を割り当てられません
ただし、私のAndroid(Samsung)で(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;
}