繁体   English   中英

如何在Objective-C中在运行时查找字符串常量?

[英]How do I lookup a string constant at runtime in Objective-C?

我公司开发了一个广告SDK,用于调解其他广告网络。 在运行时,它使用NSClassFromString检查其他广告网络是否存在,并在它们存在时发送这些类消息。

这适用于Objective-C对象,但如何在运行时加载字符串常量? 在这种情况下,我想检查只能通过字符串常量提供的SDK版本( extern NSString* VungleSDKVersion;

您可以使用CFBundleGetDataPointerForName在运行时查找常量的值

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

使用示例:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM