Objective-C 2.0: однострочные методы внутри файла интерфейса (или заголовочного файла) - PullRequest
1 голос
/ 12 марта 2011

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

В 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; } 

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

1 Ответ

1 голос
/ 12 марта 2011

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

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

...