Что мне нужно знать, чтобы управлять памятью в Objective C ++? - PullRequest
3 голосов
/ 12 марта 2010

Я работаю с аудио библиотекой C ++ в приложении для iPhone. Есть ли какая-либо инфраструктура управления памятью Objective C / Cocoa, которую я могу использовать для своих объектов C ++, или мне нужно просто прочитать и изучить управление памятью C ++?

1 Ответ

3 голосов
/ 12 марта 2010

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

Резюмечто большинство разработчиков C ++ используют интеллектуальные указатели .

В Objective-C ++ есть дополнительные моменты, о которых следует беспокоиться, в частности тот факт, что (по крайней мере по умолчанию) типы значений C ++ хранятся как членыКлассы Objective C не имеют конструкторов или деструкторов, вызываемых автоматически.Вы можете назвать их явно, конечно - но это некрасиво.Лично я склонен удерживать их с помощью навязчивых указателей (умных, подсчитанных ссылок, указателей, где счетчик ссылок находится внутри самого объекта - во многом как указатели Obj-C - вот почему они хорошо подходят).

...