嗨,我有NSArray的id對象。 而且我知道對象描述NSString。 我如何找到對象並避免數組枚舉? p.s.我不喜歡使用NSDictionary中,BCS這是做代碼更難NSArray - 快速查找已知描述的對象索引
回答
如果這是您計劃查詢要更頻繁地執行並且速度是一個問題,您可能不應將對象存儲在NSArray中,而應將其存儲在NSDictionary中,其中鍵是對象的描述字符串,值是對象本身。然後可以使用objectForKey:
和描述字符串作爲參數,這是O(1)查找。
我的理由,以避免字典,BCS我需要更清晰的代碼 – user170317
字典比數組更清晰... –
@ user170317:字典導致更乾淨的代碼。這就是他們被髮明的原因。抽象。我們可以一起取消複雜的數據結構,並用普通列表進行所有編程。但很快,人們無法看到樹木的森林。當需要字典時(按鍵存儲和檢索對象)使用字符串,在需要數組(存儲唯一對象)時設置何時以及在需要數組(排序對象)時設置數組。 – Regexident
試試這個:
[myArray containsObject:yourObject];
或者你可以將其過濾:
[myArray filterUsingPredicate:predicate];
請仔細閱讀,我沒有對象,我只有描述字符串。請註明謂詞 – user170317
對象說明??? NSLog(@「%@」,[myObject description]);打印對象...你是指這個描述? –
是的,我有,[myObject描述]保存在另一個地方,我喜歡找到這個描述對象內數組 – user170317
- 1. 如何快速知道對象是否從NSArray中的對象引用?
- 2. 通過ID快速查找索引
- 3. 查找對象的快速方法已更新
- 4. 「查找」已知類的對象實例?
- 5. 快速搜索JAXB對象
- 6. 如何刪除xtext索引中的多餘對象描述
- 7. 查找NSArray/NSMutableArray更改的索引
- 8. OpenCV FREAK:快速Retina KeyPoint描述符
- 9. 評估查找已知對象
- 10. 從NSArray獲取對象的索引?
- 11. 爲什麼選擇索引範圍掃描通過快速全索引掃描
- 12. NSArray找到值的索引
- 13. 對象的八度描述
- 14. 索引範圍掃描VS索引跳躍式掃描VS索引快速全掃描
- 15. MySQL:快速DISTINCT查詢的索引?
- 16. 使用索引號獲取NSArray對象
- 17. 通過NSArray對象循環索引
- 18. 快速查找
- 19. 快速查找
- 20. 關聯的NSDictionary的快速查找爲NSArray的元素
- 21. 檢查NSArray中的自定義對象具有哪個索引
- 22. 的Xcode迅速對[[[視圖類]描述]
- 23. NSArray和快速枚舉,總是按索引順序?
- 24. 從浮點索引到數組的快速查找
- 25. 用於範圍查找的快速表索引
- 26. 查找元素索引的快速方法
- 27. 已檢索產品描述錯誤
- 28. 按字符串查找對象索引
- 29. Visual Studio和快速查找引用
- 30. 搜索NSArictionary對象的NSArray
試着從一開始就以正確的方式學習東西,並讓自己在稍後放棄錯誤/劣等的方法。如果你需要通過一個給定的鍵來存儲和檢索對象,這就是說使用字典。使用'[dict setObject:object forKey:@「key」]'和'[dict objectForKey:@「key」]'不僅僅比使用謂詞過濾數組更容易掌握,它通常也會更快更好的方式來做到這一點。 – Regexident
@Regexident:我不知道他的要求是什麼我回答謂詞將解決你的問題,但他需要別的東西...請檢查我的回答與評論。 –
此外,對象描述的目的不是用作任何類型的關鍵/謂詞。它的主要目的是調試/日誌記錄。其他一切(通常)都表示某種[代碼氣味](http://en.wikipedia.org/wiki/Code_smell)。 – Regexident