Управление памятью в C ++? (Есть ли в C ++ команда типа релиза, которую мне нужно использовать?)
c ++ использует new
и delete
. в частности, программы на c ++ предпочитают использовать управление ресурсами, связанными с областью действия (SBRM). управлять динамическими распределениями очень просто, когда вы используете эти контейнеры. однако подсчет ссылок в настоящее время не встроен в язык - вы можете использовать boost www.boost.org для более сложных контейнеров указателей, включая те, которые предлагают подсчет ссылок.
Смешивание C ++ и кодирование Objective-C? (Или даже, я должен?)
Вы можете легко сделать это, используя расширение .mm
или .M
, или используя флаг компилятора. обратите внимание, что вы не должны просто включать все как objc ++ - это повредит вашему времени сборки. Также обратите внимание, что есть несколько ограничений, в том числе невозможность подклассировать типы c ++ как типы objc и наоборот. Еще один важный флаг, который включил бы любой здравомыслящий разработчик c ++, - это тот, который генерирует вызовы конструктора / деструктора c ++, когда вы используете типы c ++ в качестве переменных в ваших классах objc. в противном случае вы просто потерпите крах, будете вынуждены использовать pimpl или вам придется вручную создавать / уничтожать все ваши экземпляры c ++ (как ivars в типах objc). это означает, что все используемые вами типы будут нуждаться в конструкторах по умолчанию. Вы можете смешивать языки, это хорошо, если вы предпочитаете это. Есть еще несколько примечаний по их смешиванию в документах Apple, но они являются важными ... о, и будьте осторожны, чтобы изолировать ваши исключения (что вы также должны сделать с objc).
Взять объект C ++, например строку, и преобразовать его в строку NSString?
см. Ответ Джона Калсбека
удачи