iOS:从Objective-C ++文件中调用C函数

时间:2014-09-11 17:15:50

标签: ios objective-c c objective-c++

所以有一个C头文件(someFile.h),它实际上只包含两行......

#include <stdio.h>
char* aFunctionThatTakesACharStarAndReturnsACharStar(char *jdata);

..我有一个实现文件(someFile.c)和该方法的实现。

我想从Objective-C ++文件(ShinyObjCPlusPlusFile.mm - 调用此方法 - 因为显然无法从纯ObjC类调用C函数。)

问题,如果我在ShinyObjCPlusPlusFile.mm ...

中执行此操作
#import "someFile.h"

- (void)doSomethingCoolWithThisString:(NSString *)aString {
    char *awesomeChar = aFunctionThatTakesACharStarAndReturnsACharStar([aString UTF8String]);
    // doing smthng cool
}

... XCode在该行上抛出一个错误,说“没有匹配函数来调用”aFunctionThatTakesACharStarAndReturnsACharStar“”。

我该怎么做?

这是我第一次处理纯C,请原谅我的愚蠢

------ 修改

显然任何一个都没有错,正如Paul Griffiths指出的那样,你实际上可以从Obj-C文件中调用C函数。 将ShinyObjCPlusPlusFile.mm重命名为简单的ShinyObjCPlusPlusFile.m解决了问题,无论它是什么。

0 个答案:

没有答案