我想将目标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框架。

08-17 03:15