所以有一个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解决了问题,无论它是什么。