0

NSMutableArray に問題があるようです。

これが私のコードです:

NSMutableArray *returnArray = [[NSMutableArray alloc] init];

while(condition) {
    NSInteger temp = someNumber;
    [returnArray addObject: temp];

}

しかし、addObject メッセージに到達するとすぐに、プログラム セグメント フォールトが発生します。何かアドバイス?

4

3 に答える 3

0

整数などのプリミティブを配列に追加することはできません。オブジェクトのみを追加できます(したがって、addObject :という名前が付けられています)。数値を追加する場合は、NSNumberまたは関連するクラスの1つに変換する必要があります。

于 2012-11-15T03:49:13.030 に答える
0

NSIntegerなどのプリミティブをNSNumberクラスにラップする必要があります。次のことができます。

while(condition)
{
    NSInteger temp = someNumber;
    [returnArray addObject:@(temp)];
}

または、コンパイラがその構文をサポートしていない場合:

while(condition)
{
    NSInteger temp = someNumber;
    [returnArray addObject:[NSNumber numberWithInteger:temp]];
}
于 2012-11-15T04:09:07.627 に答える
0

オブジェクトは配列にのみ追加でき、NSInteger は配列ではありません。

NSMutableArray *returnArray = [[NSMutableArray alloc] init];

while(condition) {
    [returnArray addObject: [NSNumber numberWithInt: someNumber]];
}
于 2012-11-15T04:03:16.627 に答える