ARC で iOS 用の Xcode 4.6 プログラミングを使用しています。
私は単純な整数の配列を使用していますが、NSMutableArray を使用すると、以下のコードですべて正常に動作します。
NSMutableArray *_array; // variable
...
_array = [[NSMutableArray alloc] initWithCapacity:capacity]; // allocation
...
[_array addObject:[NSNumber numberWithInt:int_number]]; // inserting
...
return [[_array objectAtIndex:i] integerValue]; // retrieving
ただし、配列で多くのルックアップを行っており、すべてのボックス化解除と可能な NSMutableArray 自体が少し遅いため、これはうまく機能しません。
コードの他の部分では、NSMutableArray を単純な C 配列に置き換えて大幅に改善しましたが、この部分では可変長配列を扱っており、単純な C 配列を使用できません。だから私はC++配列を試しています。Xcode でファイルの名前を .m から .mm に変更し (Objective-C++ としてコンパイルするため)、以下のコードを使用すると正常にコンパイルされますが、実行すると EXC_BAD_ACCESS エラーが発生し、理由が見つかりません。ここで手動のガベージ コレクションを行う必要がありますか?
int *_array; // variable
...
_array = new int[capacity]; // allocation
...
_array[i] = int_number; // inserting
...
return _array[i]; // retrieving