Каковы Некоторые Причуды/Неожиданности с Использованием .mm Файлы в Objective C?

Что-то вроде этого?

var NoQ = "1234, 4321, 6789";

var i = 1;

console.log('Number: ' + NoQ.split(', ')[i]);
5
задан smorgan 5 May 2009 в 04:14
поделиться

4 ответа

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

7
ответ дан 18 December 2019 в 12:01
поделиться

Вы будете удивлены, насколько хорошо это работает. На самом деле я не сталкивался с проблемами смешивания Obj-C и C ++ в файле .mm.

1
ответ дан 18 December 2019 в 12:01
поделиться

Файлы будут скомпилированы с помощью компилятора Objective-C ++, поэтому все будет вести себя больше как g ++, чем gcc, но поскольку это то, что вам нужно, это, вероятно, не будет сюрпризом. Со стороны Objective-C я не знаю ни о каких хитах, и я работал над несколькими крупными проектами, которые в значительной степени использовали Objective-C ++. Просто имейте в виду, что зарезервированные слова Objective-C также зарезервированы в Objective-C ++, так что вы можете время от времени сталкиваться с проблемами со сторонними библиотеками C ++ (например, если они используют «id» в качестве параметра в общедоступном интерфейсе).

2
ответ дан 18 December 2019 в 12:01
поделиться

Основная особенность Objective-C ++ заключается в том, что если вы не передадите -fobjc-call-cxx-cdtors в g ++, он не вызовет конструктор и деструктор переменных экземпляра C ++ в объектов ObjC. Так что не забудьте включить эту опцию, и все будет хорошо.

5
ответ дан 18 December 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: