Я работаю с аудио-библиотекой C ++ в приложении для iPhone. Есть ли какая-либо инфраструктура управления памятью Objective C / Cocoa, которую я могу использовать для своих объектов C ++, или мне нужно просто прочитать и изучить управление памятью C ++?
Что мне нужно знать для управления памятью в Objective C ++?
Ответы (1)
Вы можете найти моя последняя запись в блоге полезна, по крайней мере, в первой половине, поскольку я обсуждаю и сравниваю как управление памятью Objective-C, так и идиоматическое управление памятью C ++.
Резюме: большинство разработчиков C ++ используют умные указатели. .
С Objective-C ++ есть дополнительные вещи, о которых нужно беспокоиться - в частности, тот факт, что (по крайней мере, по умолчанию) типы значений C ++, хранимые как члены классов Objective-C, не имеют конструкторов или деструкторов, вызываемых автоматически для вас. Вы, конечно, можете называть их явно, но это некрасиво. Лично я стараюсь просто удерживать их с помощью навязчивых указателей (умных, с подсчетом ссылок, указателей, в которых счетчик ссылок хранится внутри самого объекта - во многом как указатели Obj-C - поэтому они хорошо подходят).
new
иdelete
и объем переменных? Вы бы купили приложение у разработчика, который не понимает основных вопросов, таких как управление памятью? Вдобавок ко всему, если он разработчик objective-c, будет легко понять управление памятью в C ++, поскольку это подмножество функций, предоставляемых объективом-c. - person stefanB   schedule 12.03.2010