Objective-C 2.0: однострочные методы внутри файла «Интерфейс» (или файла заголовка)

Я новичок в Objective-C 2.0, но хорошо знаком с C++.

В С++ я бы сделал следующее внутри файла классов .h или заголовка, но я не могу сделать это в Objective-C 2.0 в XCode 4.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; } 

Спасибо за любой совет.


person Cullen    schedule 12.03.2011    source источник


Ответы (1)


В Objective-C это невозможно сделать, реализации методов могут появляться только в блоке @implementation.

Хотя это может быть удобным синтаксическим сахаром, в любом случае не будет никакого реального преимущества в этом. В C++ это позволяет встраивать метод, но это не будет работать для Objective-C по тем же причинам, что и встроенные виртуальные функции не часто бывают полезны в C++. Особенно с учетом того, что у вас не может быть фактической объектной переменной, а не указателя в Objective-C, и что фактическая реализация любого метода (даже dealloc) может быть изменена во время выполнения с использованием class_replaceMethod, method_exchangeImplementations или категорий, загруженных из пакета.

person Anomie    schedule 12.03.2011