私が取り組んでいるアプリでは、for ループでテキスト ファイルから数値を読み取り、いくつかの計算を行い、結果を結果文字列に追加しています。
ファイルには 22050 の値が含まれています。特定の数のループ/値が追加されると(〜5300)、クラッシュする傾向があることに気付きました。
おそらくメモリリークがあると思ったので、文字列の追加を取り除き、すべて正常に機能しました。文字列の追加とアプリがクラッシュした以外はすべて削除しようとしました。すべての例外にブレークポイントがあり、例外は発生しません。
確かめたかったので、新しいプロジェクトを始めました。私が入れたのは、押されたときにこのコードを呼び出すUIButtonが1つだけです。
- (IBAction)TestPressed:(id)sender
{
NSString *testString = @"";
for (int i = 0; i < 22050; i++)
{
testString = [testString stringByAppendingString:@"12.34567890\n"];
}
NSLog(@"%@", testString);
}
NSLog 行にブレーク ポイントがあります。前にアプリがクラッシュしました。
NSString の長さに制限はありますか? メモリを使いすぎていませんか?