我想将目标C代码转换为目标CPP,并在我的应用程序中使用它。给出以下代码:
CFTypeRef dynamicValue = (__bridge CFTypeRef)([[NSBundle bundleWithPath:aStr] objectForInfoDictionaryKey: @"CFPlugInDynamicRegistration"]);
BOOL removeFlag = NO;
if(dynamicValue == nil)
{
removeFlag = NO;
}
else if( CFGetTypeID(dynamicValue) == CFBooleanGetTypeID() )
{
removeFlag = CFBooleanGetValue(dynamicValue);
}
else if( CFGetTypeID(dynamicValue) == CFStringGetTypeID() )
{
removeFlag = ( [[(__bridge NSString*)dynamicValue lowercaseString] isEqualToString:@"yes"] ? YES:NO);
}
if( removeFlag )
{
[unloadedArray addObject:aStr];
[sortedArray removeObjectAtIndex:hoge];
}
将文件名从file.m更改为file.mm并构建时出现错误:“无匹配函数可调用'CFBooleanGetValue'”
我尝试
#include <CoreFoundation/CFNumber.h>
,但遇到相同的错误(我想这是ifdef
问题)。您知道我可以在没有缺少功能的情况下进行投射的任何方式吗?我是否应该尝试使用相同的功能?
最佳答案
Objective-C ++没有自动框架链接。
您需要#include <CoreFoundation/CoreFoundation.h>
并手动链接CoreFoundation框架。