質問

私はNSMutableArrayのを持っています:

NSMutableArray *temp = //get list from somewhere.

ここで指定されたインデックスでオブジェクトを返す一つの方法objectAtIndexがある。

私は何をしたい、私が最初に指定されたインデックスにあるオブジェクトが存在するかどうかを確認したい、ということです。それは私がそのオブジェクトを取得したいよりも、存在している場合。ような何かます:

if ([temp objectAtIndex:2] != nil)
{
     //fetch the object
}

しかし、私はバウンドを超えて、そのインデックスを言ってif文で例外を取得します。

誰もがこれを達成する方法を教えてくださいます。

役に立ちましたか?

解決

あなたはNSArrayの中に「空」のスロットを持つことができません。 [myarrayの数] == 2すなわち配列は、2つの要素を持っているなら、あなたはインデックス0のオブジェクトとインデックス1のオブジェクトはこれが常にそうであることを確かに知っています。

他のヒント

countメソッドを使用して第1の長さを確認してください。

if ([temp count] > indexIWantToFetch)
    id object = [temp objectAtIndex:indexIWantToFetch];

あなたがこの方法を行うことができます:

あなたが初期化すると、のような何かをします:

NSMutableArray *YourObjectArray = [[NSMutableArray alloc] init];
for(int index = 0; index < desiredLength; index++)
{
   [YourObjectArray addObject:[NSNull null]];
}

次に追加、それが既に存在するかどうかを確認したい、このような何かをするときます:

YourObject *object = [YourObjectArray objectAtIndex:index];
if ((NSNull *) object == [NSNull null]) 
{
    /// TODO get your object here..

    [YourObjectArray replaceObjectAtIndex:index withObject:object];
}

ただ、インデックスが> = 0および<数

であることを確認してください

現在受信中のオブジェクトの数を返します。

- (NSUInteger)count

int arrayEntryCount = [temp count];

あなたは、配列の長さをチェックまず第一に -

NSMutableArrayの* TEMP = //どこからリストを取得します。

今check- IF(一時長さ) {

あなたのオブジェクトクラス* OBJ = [一時objectAtIndex:indexnumber];

// indexnumberは0,1,2、3か誰です...

}

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top