iphone - Objective-C++ 支持多少 C++

标签 iphone objective-c cocoa boost objective-c++

我想制作一个 iPhone 应用程序,但我打算用 C++ 制作框架。是否可以在 Objective-C++ 中使用模板之类的东西。我想真正的问题是,我可以使用 boost 吗?

最佳答案

Is it possible to use things like templates in Objective-C++.

是的,但是您需要注意如何在纯 C++ 层和 Objective-C++ 代码之间混合类型和接口(interface)。请记住层与层之间的边界,您需要在其中将诸如 std::string 之类的类型转换为 NSString 等。

例如,您可以用纯 C++ 实现核心游戏引擎,而只用 Objective-C++ 实现 Controller 和 GUI 代码。那么 Obj-C++ 代码就是纯 C++ 引擎和 Cocoa 之间的粘合剂。

I guess really the question is, can I use boost?

鉴于 iPhone OS 是 OS X 的一个子集,它仍然提供完整的 POSIX 层,大多数 Boost 库应该工作得很好。它应该就像编写 Darwin 代码一样。

需要注意 Objective-C++ 中的许多限制(直接取自 Objective-C 2.0 Reference Guide ):

  • 不能使用 Objective-C 语法调用 C++ 对象
  • 您不能向 Objective-C 对象添加构造函数或析构函数
  • 您不能互换使用关键字 this 和 self
  • 类层次结构是分开的; C++ 类不能继承 Objective-C 类,Objective-C 类不能继承 C++ 类
  • 在 Objective-C 代码中抛出的异常无法在 C++ 代码中捕获,反之,在 C++ 代码中抛出的异常无法在 Objective-C 代码中捕获。

关于iphone - Objective-C++ 支持多少 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/740989/

相关文章:

ios - 在标签和边框之间添加填充

ios - 发送到释放实例的 UITextField textInputView 消息

ios - 使用日期格式化程序 objc 删除前导零

ios - 将从 PubNub 收到的消息转换为 Dictionary 对象

iphone - 如何计算 NSButton 的中心?

iphone - OpenGL,具有不透明度且没有可见重叠的图元

ios - swift 3 : PerformSegue WithIdentifier Not Displaying View Controller, 没有错误

ios - 在多个部分重用 UITableViewCell

objective-c - Cocoa osx NSCombobox 对齐项目中心

macos - 在内存中 mergeChangesFromContextDidSaveNotification 并保存内存泄漏