我有一个对象,它在一个大的NSMutableDictionary中,并且需要找出它具有哪个键。所以我想从两列中查找“表”。不仅有键,还有对象(获取键)。那可能吗?如何从NSMutableDictionary获取给定对象的键?
29
A
回答
67
看向父类(的NSDictionary)
- (NSArray *)allKeysForObject:(id)anObject
将返回所有键的NSArray的给定对象的价值。 但是它通过向字典的每个对象发送一个isEqual消息来完成此操作,因此对于您的大型数据集,这可能不是最佳性能。
也许你需要保持某种形式的额外的索引结构结构(S)的,让你找到关于在其中一些临界值的对象,联系到没有直接对象比较关键
6
看看:
- (NSArray *)allKeysForObject:(id)anObject
19
要回答你的问题更具体的方式,使用以下方法来获取特定对象的关键:
NSString *knownObject = @"the object";
NSArray *temp = [dict allKeysForObject:knownObject];
NSString *key = [temp objectAtIndex:0];
//"key" is now equal to the key of the object you were looking for
6
这是绝对有可能与NSDictionary中的块法
- (NSSet *)keysOfEntriesPassingTest:(BOOL (^)(id key, id obj, BOOL *stop))predicate;
您需要返回满足某些条件的对象(谓词)。
使用方法如下:
NSSet *keys = [myDictionary keysOfEntriesPassingTest:^BOOL(id key, id obj, BOOL *stop) {
BOOL found = (objectForWhichIWantTheKey == obj);
if (found) *stop = YES;
return found;
}];
退房这个答案详细信息
How do I specify the block object/predicate required by NSDictionary's keysOfEntriesPassingTest?
相关问题
- 1. Objective-C:使用自定义对象键从NSMutableDictionary获取值
- 2. 从的NSMutableDictionary获取对象和UITableView的
- 3. 从对象获取对象的键值
- 4. 如何从给定的代码中获取JSON对象?
- 5. 如何从给定的UIImage对象获取文件名?
- 6. 从NSMutableDictionary中移除特定的对象
- 7. 如何从关键的NSMutableDictionary中获取所有值?
- 8. NSMutableDictionary不采取键/值对
- 9. 如何获取数组对象的键?
- 10. 如何获取JSON对象中的键
- 11. 如何从NSMutableDictionary中获取NSmutable数组?
- 12. 对象的NSMutableDictionary
- 13. 如何获取与另一个给定值匹配的JSON对象的键值?
- 14. 如何从CheckboxTreeViewer获取对象/对象?
- 15. 如何从对象链获取对象
- 16. 如何取值从的NSMutableDictionary
- 17. 带有NSMutableDictionary的对象键(Objective-C)
- 18. 如何从特定对象ID获取核心数据对象?
- 19. 获取对象分配给的对象,如何?
- 20. 如何获取特定键的JSON对象值
- 21. Pygame,从角色获取关键对象
- 22. 如何从JSON对象中的键获取值?
- 23. 如何在javascript中获取给定类型的所有对象
- 24. 给定一个HtmlUnit HtmlPage对象,如何获取其Document的URI?
- 25. 从给定对象的所有站点获取Django评论
- 26. 如何获取给定emacs命令的键盘快捷键?
- 27. 如何从我的executorService获取对象?
- 28. 如何从args.getDataKeyValue获取对象的值
- 29. 从给定一个对象的对象
- 30. 如何访问NSMutableDictionary的键?