我有一个temp.mm类,其中包含测试类和实现的实现。 extern“C”级。我试图在extern“c”类(即testMethod& testMethod1)中调用objective-c方法。 如何在extern“C”类函数中调用objective-c方法?。
我是Objective-c
的新手我提到下面的示例代码..
import<test.h>
@implement test
-(void)testMethod
{
//code
}
-(NSString*)testMethod1:(NSString *)value
{
//code
return value;
}
void callMethod()
{
how to call testMethod & testMethod1 in this also?
}
@end
extern "C"
{
how to call testMethod & testMethod1?
}
答案 0 :(得分:1)
C代码部分是(并且必须)在您的类实现之外,因此您必须创建一个test
的对象,然后调用它的方法,如下所示:
void callMethod()
{
test *test = [[test alloc] init];
[test testMethod];
const char *yourCString = "yourCString";
[test testMethod1:[NSString stringWithCString:yourCString encoding:NSUTF8StringEncoding]];
}
在实现(extern "C"
或.m
文件)中不需要.mm
部分,当您在标题(.h
文件)中只需要它时想把它们标记为“普通的旧c代码”(不是C ++)。
答案 1 :(得分:-1)
也在最初调用方法..... 使用: [自我测试方法]; [self testmethod1]; 如果你想将这个方法继承到另一个类,只需导入.m文件。