在我的應用程序中,我使用NSArray來存放NSDictionary的對象。 在每個字典中,有一個「Primary」保存存儲「YES」或「NO」(布爾值)的NSNumber類型的值。並且只有數組中的字典對象可以具有值「YES」。 不使用循環如何獲得「主」鍵爲YES的字典對象?iPhone - 迭代字典數組並獲取對象
1
A
回答
1
您可以調用NSArray
上的便捷方法來查找該對象,但請注意,此類方法仍在內部使用循環來查找對象。
NSUInteger indexOfPrimary = [array indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
return [[obj objectForKey:@"Primary"] boolValue];
}];
NSDictionary *primary = nil;
if (indexOfPrimary != NSNotFound) {
primary = [array objectAtIndex:indexOfPrimary];
}
另一種選擇是-[NSArray filteredArrayUsingPredicate:]
。
0
你是什麼意思的「不使用循環」?意思你不寫一個for循環,或者你的意思是說,你使用的任何程序不會使用循環?如果你想在「恆定時間」而不是「線性時間」的答案,你應該保持一個指向記錄的指針。如果你沒有自己的元素到數組的插入/缺失,則沒有,沒有比線性時間查找等方式,要麼自己做一個循環,或使用NSArray的
- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate
相關問題
- 1. 迭代對象並獲取名稱
- 2. NodeJS對象數組的迭代迭代
- 3. PHP:迭代對象數組
- 4. javascript迭代對象數組
- 5. Jquery迭代對象數組
- 6. 迭代對象數組
- 7. 迭代字典(不可迭代)和合並字典,python
- 8. iPhone JSON - 迭代NSArray並獲取值
- 9. 如何迭代對象數組並調用對象的方法?
- 10. 迭代對象數組,並將每個對象保存到MongoDB
- 11. 如何從迭代器對象中獲取數字。 (Python2.7)
- 12. 迭代字典
- 13. 迭代和地圖JSON字典建立對象數組 - 目標C
- 14. 合併兩個對象數組並獲取唯一對象PHP
- 15. 從plist中獲取字典對象的問題iphone sdk
- 16. 迭代通過子對象,並獲取所有的值與JavaScript
- 17. 如何從集合中獲取json對象鍵名並迭代
- 18. 通過嵌套對象/數組迭代
- 19. 通過數組對象迭代陣營
- 20. 迭代對象的嵌套數組
- 21. 迭代通過jQuery對象數組
- 22. 迭代選定的jQuery對象數組?
- 23. 迭代數組和對象在車把
- 24. 通過JSON對象數組迭代
- 25. 如何迭代數組中的對象?
- 26. 問題迭代MongoDB對象數組
- 27. Angular2:ngFor通過對象數組迭代
- 28. JQuery的$。每()JSON對象數組迭代
- 29. 在jade上迭代對象數組
- 30. delphi字典迭代
你能解釋一下我關於你寫的代碼的一點點? (不要'介意我是新的iphone編碼) – Satyam 2011-02-09 12:44:11