Автоматическая переменная в Objective-C - PullRequest
0 голосов
/ 09 ноября 2010

Есть ли способ создать переменную / объект с областью действия с помощью конструктора / деструктора (в стеке) в Objective-C или мне нужно будет добавить C ++ для этого?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010

Вам не нужно никуда добавлять C / C ++, поскольку Objective-C равен уже C или C ++ .

YouВы можете использовать переменные области видимости в любом сообщении (функции):

-(void) myMessage
{
    // default constructor will be called
    MyCPPClass myCPPClassInstance;  // scoped variable of type MyCPPClass class
    myCPPClassInstance.Method(); // using MyCPPClassInstance
    return;
    // destructor will be called after returning
}

Обратите внимание, что вам придется использовать имя файла, заканчивающееся .mm , чтобы использовать C ++ в Objective-C.Если вам просто нужна C , то вы просто переменные, как в любой другой функции C .

1 голос
/ 09 ноября 2010

Есть ли способ создать переменную / объект с областью видимости с помощью конструктора / деструктора (в стеке) в Objective-C

Нет.

Вы можете создавать переменные C в области видимости в стеке (очевидно!), Но не классы Objective-C. Понятие конструктор / деструктор не существует в Objective-C.

или мне нужно будет добавить C ++ для этого?

Да.

Но он будет работать только с объектами C ++. Я полагаю, вы могли бы создать класс C ++, чтобы обернуть объект Objective-C, который размещает объект Objective-C в его конструкторе и освобождает (заметьте , а не deallocs) его в деструкторе. Однако, если вы сделаете это, вы можете выполнить автоматический выпуск, как только выделите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...