通过传递值来找到NSArray的索引

| 是否可以在NSArray中找出数组中是否存在给定值(无需使用for循环进行搜索)?任何默认的随机方法。我浏览了文档,但没有发现太多相关性。 还请告诉我有关
valueForKey
方法的信息(我无法从doc中获得该信息)。     
已邀请:
containsObject:
方法通常会给您您要的内容-当它的名称听起来像您在查询特定实例时(即,两个具有相同语义值的对象将不匹配),它实际上在对象上调用了
isEqual:
,因此它正在测试按价值。 如果您想要项目的索引(如标题所示),请使用
indexOfObject:
,它还会调用
isEqual:
来找到匹配项。 “ 5”是指当您有多个字典时;它在每个字典中查找键,并返回结果和数组。     
我相信您想使用
indexOfObject
方法。从文档中:   indexOfObject:      返回其索引的最低索引   对应的数组值等于   给定的对象。
- (NSUInteger)indexOfObject:(id)anObject
  参量      
anObject
An object.
     返回值      其对应的最低索引   数组值等于
anObject
。如果   数组中的任何对象都不是   等于
anObject
,返回
NSNotFound
。      讨论区      如果对象相等   
isEqual:
返回
YES
。      重要事项:如果
anObject
nil
,则   引发异常。     
您可以使用 :
NSInteger idx = [myArray indexOfObject:obj]; 
查找对象的索引。 要检查数组中是否存在对象,可以使用:
- (BOOL)containsObject:(id)anObject 
    
使用
NSPredicate
根据
NSDictionary
过滤
NSArray
array = [dictionary filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@\"(key == %@)\", value]];

if([array count]>0)
{
value exists;
}
    
像这样组合
objectAtIndex
indexOfObject
[tmpArray objectAtIndex:[tmpArray indexOfObject:yourObject]];
    

要回复问题请先登录注册