如何解决通过传递值来找到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]];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。