Articles of introspección

Cree objects dinámicamente en Swift

En Objective-C tenía una categoría: @implementation NSObject (Entity) + (instancetype)entity{ Class cl = self.class; NSObject *obj = [[cl alloc] init]; return obj; } @end Supongamos que hay classs A y B: @interface A : NSObject @end @interface B : NSObject @end Y luego puedo usar el método de entity estática para crear objects como: NSObject […]

Obtenga el nombre de propiedad del object como cadena en Objective-C

Supongamos que tiene una class "Foo" con la propiedad "testProperty". El objective es get el nombre de propiedad (no valor) como NSString . La pregunta probablemente sea duplicada del nombre de la propiedad Get como una cadena . Pero esas respuestas no me ayudaron porque: No necesito todas las properties. Solo necesito uno particular. Para […]

Swift Metatyping Inconsistencia

Dado el siguiente código … protocol MyProtocol {} enum MyEnum: MyProtocol {} struct MyStruct: MyProtocol {} class MyClass: MyProtocol {} func MyFunction(parameter: MyProtocol.Type) -> String { return "Hi" } ¿Por qué tengo que usar .self al asignar una variable …? var variable: MyProtocol.Type = MyStruct.self y no cuando estoy pasando un metatype como un parámetro […]

¿Es posible realizar una introspección del tipo de array en Objective-C Generics – Xcode 7+

Yo uso esto para get la class para un nombre de propiedad: – (Class)gm_classForPropertyName:(NSString *)propertyName { objc_property_t prop = class_getProperty([self class], propertyName.UTF8String); const char * attr = property_getAttributes(prop); NSString *attributes = [NSString stringWithUTF8String:attr]; NSArray *components = [attributes componentsSeparatedByString:@"\""]; Class propertyClass; for (NSString *component in components) { Class class = NSClassFromString(component); if (class) { propertyClass = […]

¿Cómo puedo determinar si un TextField contiene una cadena numérica?

Obtengo un valor de un TextField y necesito verificar si hay un número en él. Si realmente es un flotante o un integer, realmente no importa, pero definitivamente un "Número" ¿Cómo puedo atrapar esto? Esto es lo que estoy haciendo hasta ahora, incluso si el obj es 123 (en realidad un número), la condición es […]

Llamar a un selector con un número desconocido de arguments usando reflexión / introspección

Últimamente escribí una aplicación en Java (para Android) que usaba la reflexión para invocar methods de algunos objects. El número de argumento y el tipo eran desconocidos, es decir, tenía un mecanismo unificado que recibía un nombre de object, un nombre de método y una matriz de parameters (usando JSON) e invocaba el método especificado […]

Comprobar la existencia de la function global en Swift

¿Es posible detectar si se define alguna function global (no el método de class) (en iOS)? Algo así como respondsToSelector en una class …

iOS bloquea la introspección

Me gustaría saber dos cosas: 1- Es posible mediante el uso de la introspección objetiva-c para conocer el tipo de retorno de un bloque. Por ejemplo: int (^CountBlock)(NSArray *array) Me gustaría saber el tipo que retornará es int . La segunda pregunta es: 2- ¿Puedo tener una reference a un bloque genérico? Lo que quiero […]