8

私は配列を持っています。特定のインデックスにオブジェクトが存在するかどうかを確認したい。これを行う方法?助けてください。

4

8 に答える 8

15

オブジェクトがあるかどうかを確認したいだけの場合

if (myIndex < [array count])

特定のオブジェクトを検索する場合

[array indexOfObject:myObject];

あるインデックスのオブジェクトがあるクラスのものであるかどうかを知りたい場合

[[array objectAtIndex:myIndex] isKindOfClass:[TheClassToCompareTo class]];
于 2012-06-27T11:47:53.277 に答える
10

BOOL exists = index < [array count] ? YES : NO;

于 2012-06-27T11:48:27.683 に答える
3

メソッドを使用containsObjectして、配列に特定のオブジェクトが含まれているかどうかを確認できます。indexOfObjectが含まれている場合は、メソッドでインデックスを取得します

if ([yourArrayArray containsObject:yourObject]) 
{
    NSLog(@"Found");
    int index = [yourArray indexOfObject:yourObject];     
}
于 2012-06-27T11:54:40.810 に答える
1

これが古いスレッドであることは知っていますが、助けようとしています。

NSArrayこのようなものにカテゴリを追加できます

@implementation NSArray (Safe)

- (id)safeObjectAtIndex:(NSUInteger)index {
    if (index >= [self count]) return nil;
    return [self objectAtIndex:index];
}

@end
于 2016-11-14T14:50:05.347 に答える
0

このように確認してください

if([array objectAtIndex:i]!= nil)
{
NSLog("Object present");
}
else{
NSLog("Object Not Present")
}

変更:このようにする必要があります

if(i<=[array count]){
    if([array objectAtIndex:i]!= nil)
    {
    NSLog("Object present");
    }
    else{
    NSLog("Object Not Present")
    }
}

これは例外を発生させず、配列内のオブジェクトはnil値と比較する必要があります

于 2012-06-27T11:48:19.690 に答える
0

count(メソッドを使用して)配列の長さを確認する必要があります。与えられた配列をNSArray含めることはできないため、何かnilを含める必要があります。

- (BOOL)arrayContainsSomethingAtIndex:(NSUInteger) index
{
    return [_myArray count] > index;
}
于 2012-06-27T11:48:33.590 に答える
0

最初に、そのオブジェクトのインデックスが配列のサイズよりも小さいかどうかを確認する必要があります。次に、そのインデックスで配列をクエリします。

if (index < [array count] && [array objetAtIndex:index]){
/* Your code*/
}
于 2012-06-27T11:51:15.843 に答える
0

indexOfObject:メソッド を使用します。

if ([Array indexOfObject:object]==index) {
        //code
    }
于 2012-06-27T11:56:55.507 に答える