1

我是 Objective-C 2.0 的新手,但对 C++ 非常熟悉。

在 C++ 中,我会在类 .h 或头文件中执行以下操作,但我似乎无法在 XCode 4.0 的 Objective-C 2.0 中执行此操作。

有没有“Objective-C 2.0”的方法来做到这一点?

例子

在头文件中:

// Header File

class MyClass
{
    private:
            float _myFloat;
    public:
           (float) getMyFloat { return _myFloat; }
};

我的想法是我不必进入 .cpp 文件来添加“getMyFloat”方法,我可以在标题中执行此操作。

当我尝试在 XCode 4.0 和 Objective-C 2.0 中执行此操作时,它给了我错误。

-(float) getMyFloat { return _myFloat; } 

感谢您的任何建议。

4

1 回答 1

1

在 Objective-C 中没有办法做到这一点,方法实现只能出现在 @implementation 块中。

虽然它可能是一个方便的语法糖,但无论如何这样做不会有任何真正的优势。在 C++ 中,它允许内联方法,但这对于 Objective-C 不起作用,原因与内联虚函数在 C++ 中通常不常用的原因相同。特别是考虑到在 Objective-C 中不能有一个实际的对象变量而不是一个指针,并且任何方法(甚至dealloc)的实际实现都可以在运行时使用class_replaceMethodmethod_exchangeImplementations或从包中加载的类别进行更改。

于 2011-03-12T18:46:18.273 回答