ios objective-c objective-c-runtime

ios - ¿Cómo busco una constante de cadena en tiempo de ejecución en Objective-C?



objective-c-runtime (1)

Puede usar CFBundleGetDataPointerForName para buscar el valor de una constante en tiempo de ejecución

NSString *lookupStringConstant(NSString *constantName) { void ** dataPtr = CFBundleGetDataPointerForName(CFBundleGetMainBundle(), (__bridge CFStringRef)constantName); return (__bridge NSString *)(dataPtr ? *dataPtr : nil); }

Ejemplo de uso:

NSString *version = lookupStringConstant(@"VungleSDKVersion"); NSLog(@"Version = %@",version);

Mi empresa desarrolla un SDK publicitario que media en otras redes publicitarias. En tiempo de ejecución, comprueba si las otras redes publicitarias están presentes mediante NSClassFromString y envía los mensajes de esas clases si están presentes.

Esto funciona bien para los objetos Objective-C, pero ¿cómo puedo cargar una constante de cadena en tiempo de ejecución? En este caso, quiero verificar la versión de un SDK que solo está disponible a través de una constante de cadena ( extern NSString* VungleSDKVersion; )