Tengo un objeto que está en un gran NSMutableDictionary, y necesito saber qué clave tiene. Así que quiero buscar esa "tabla" de ambas columnas. No solo con teclas, sino también con objetos (para obtener claves). ¿Es eso posible?¿Cómo obtener la clave para un objeto dado desde un NSMutableDictionary?
Respuesta
mirada a la clase padre (NSDictionary)
- (NSArray *)allKeysForObject:(id)anObject
que devolverá un NSArray de todas las claves para un valor determinado de objetos. PERO lo hace enviando un mensaje isEqual a cada objeto del diccionario, por lo que para su gran conjunto de datos esto puede no ser el mejor rendimiento.
Tal vez usted necesita para mantener algún tipo de estructura (s) estructura de indexación adicional para permitir a localizar los objetos sobre algunos valores críticos dentro de ellos, relacionado con la llave sin comparación objeto directo
Tome un vistazo a:
- (NSArray *)allKeysForObject:(id)anObject
contestarle pregunta en de forma más concreta, utilice el siguiente para conseguir una llave para un objeto concreto:
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
Eso es definitivamente posible con el método de bloqueo del NSDictionary
- (NSSet *)keysOfEntriesPassingTest:(BOOL (^)(id key, id obj, BOOL *stop))predicate;
Debe devolver objetos que satisfagan alguna condición (predicado).
utilizar de esta manera:
NSSet *keys = [myDictionary keysOfEntriesPassingTest:^BOOL(id key, id obj, BOOL *stop) {
BOOL found = (objectForWhichIWantTheKey == obj);
if (found) *stop = YES;
return found;
}];
Salida esta respuesta para más detalles
How do I specify the block object/predicate required by NSDictionary's keysOfEntriesPassingTest?
- 1. Cómo obtener un objeto URI desde Bitmap
- 2. Obtener la clave de un elemento en un objeto Collection
- 3. Dado un WPF DependencyObject con estilo, ¿cómo puedo obtener la clave de estilo en el código?
- 4. WCF: Cómo obtener un objeto de enlace desde la configuración
- 5. cómo obtener un objeto CSSStyleSheet desde un elemento HTMLStyleElement
- 6. Claves de objeto con NSMutableDictionary (Objective-C)
- 7. ¿Cómo obtener el objeto para la clave de NSDictionary?
- 8. Cómo reemplazar un objeto en un NSMutableArray en un índice dado con un nuevo objeto
- 9. ¿Cómo obtener UIView dado un CGPoint?
- 10. ¿Cómo obtener un inflador de diseño dado un contexto?
- 11. Usando un objeto como clave para NSDictionary
- 12. Ordenar un NSMutableDictionary
- 13. Cómo obtener el carácter para un valor de ascii dado
- 14. Cómo obtener la clave de un TDictionary?
- 15. Dado un objeto javascript arbitrario, ¿cómo puedo encontrar sus métodos?
- 16. ¿Cómo puedo usar un valor entero como 'clave' para establecer el valor en NSMutableDictionary?
- 17. Cómo obtener System.IO.Stream desde un objeto de cadena
- 18. ¿[NSMutableDictionary setValue: value forKey: key] retiene la clave NSString?
- 19. Cómo agregar un objeto de NSMutableDictionary a NSMutableArray en un bucle
- 20. cómo insertar un (BOOL *) en NSMutableDictionary
- 21. ¿Copiando el contenido de un NSMutableDictionary en otro NSMutableDictionary?
- 22. ¿Cómo obtener un tiempo desde la cadena de un objeto NSDate?
- 23. Importación de un submódulo dado un objeto de módulo
- 24. Cómo crear el objeto CommonsMultipartFile dado solo un archivo
- 25. ¿Cómo cambiar el nombre de una clave en NSMutableDictionary?
- 26. ¿Cómo uso el método writeToFile en un NSMutableDictionary?
- 27. ¿Cómo puedo obtener un objeto HDC de un objeto CDC?
- 28. Subclase NSMutableDictionary
- 29. ¿Cómo llamar al método genérico con un objeto Tipo dado?
- 30. Obtener hash string/guid desde un objeto jQuery