如何将这行代码从C ++转换为Objective-C

时间:2017-06-16 15:36:37

标签: c++ objective-c

我需要将这一行从C ++转换为Objective-C 但我真的不明白这一行

IntVar* MakeIntVar(int64 vmin, int64 vmax, const std::string& name);

这对我来说似乎是一个没有返回值的函数?

IntVar就是一个类

class IntVar;

1 个答案:

答案 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