我需要将这一行从C ++转换为Objective-C 但我真的不明白这一行
IntVar* MakeIntVar(int64 vmin, int64 vmax, const std::string& name);
这对我来说似乎是一个没有返回值的函数?
IntVar就是一个类
class IntVar;
答案 0 :(得分:1)
Objective-C是C的扩展。您应该习惯于调用Objective-C方法和C函数。
对于您在@interface
中定义它们的方法,通常用.h
文件编写,并在@class
文件中用.m
实现。
您可能不会编写许多C函数但使用它们:例如NSLog()
,sin()
,等。 C函数是独立的,不像C中那样是类的一部分,但是你通常在.h
中有一个定义(或 prototype ),并且在.c
中有一个实现。 / p>
如果上面的C部分不熟悉,那么在Objective-C代码中写一个对NSLog
(或sin
等)的调用,然后查找其定义(在Xcode中选择NSLog
,右/控制点击并选择"跳转到定义")。你会看到一行与你问题中的一行非常相似。
你所拥有的是一个函数(MakeIntVar
)的定义,它接受三个参数并返回一个值。函数的第三个参数具有C ++类型并且是C ++引用参数(&
位),您需要了解C ++以了解如何调用此函数。
从您的问题/评论中不清楚您是将C ++转换为Objective-C还是尝试从Objective-C调用C ++。如果是后者,您可能需要在 Objective-C ++ (用.mm
文件编写)中编写一些桥接代码。您将需要学习如何编写Objective-C ++并从Objective-C等中调用它。
HTH