我公司开发了一个广告SDK,可以中介其他广告网络。在运行时,它使用来检查其他广告网络是否存在NSClassFromString
,并发送这些类消息(如果存在)。
这对于Objective-C对象工作正常,但是如何在运行时加载字符串常量?在这种情况下,我想检查仅通过字符串常量(extern NSString* VungleSDKVersion;
)可用的SDK版本。
您可以用来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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句