是否可以在NSArray中查找給定值是否存在於數組中(不使用for循環搜索它)?任何默認的隨機方法。我經歷了documentation,但沒有發現太多相關。通過傳遞值查找NSArray的索引
請同時告訴我關於valueForKey
方法(我無法從doc中獲取)。
是否可以在NSArray中查找給定值是否存在於數組中(不使用for循環搜索它)?任何默認的隨機方法。我經歷了documentation,但沒有發現太多相關。通過傳遞值查找NSArray的索引
請同時告訴我關於valueForKey
方法(我無法從doc中獲取)。
的containsObject:
方法通常會給你什麼你問 - 雖然它的名字聽起來像你要查詢特定實例(即兩個對象具有相同的語義值將不匹配)它實際上調用isEqual:
上的對象,所以它正在測試值。
如果您希望項目的索引(如標題所示)使用indexOfObject:
,它還會調用isEqual:
來查找匹配項。
valueForKey:
適用於有字典數組的情況;它會在每個字典中查找關鍵字並返回結果數組。
我相信你想使用indexOfObject
方法。從the documentation:
indexOfObject:
返回最低索引其 相應的數組值等於 給定的對象。
- (NSUInteger)indexOfObject:(id)anObject
參數
anObject
An object.
返回值
最低索引,其相應的 陣列值等於噸
anObject
。如果 陣列中沒有任何對象是 等於anObject
,則返回NSNotFound
。討論
的對象被認爲是相等的,如果
isEqual:
返回YES
。重要:如果
anObject
是nil
的 異常。
使用NSPredicate
來過濾NSArray
基於NSDictionary
array = [dictionary filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(key == %@)", value]];
if([array count]>0)
{
value exists;
}
您可以使用:
NSInteger idx = [myArray indexOfObject:obj];
找對象的索引。
並檢查對象是有或沒有在數組你可以使用:
- (BOOL)containsObject:(id)anObject
結合objectAtIndex
和indexOfObject
這樣的:
[tmpArray objectAtIndex:[tmpArray indexOfObject:yourObject]];
感謝您的最快準確的響應和編輯(+1爲),但正如我所問,CRD也描述了valueForKey。 – rptwsthi 2011-05-26 05:34:13