c++ - Objective-C 垃圾回收和 C++

标签 c++ objective-c memory-management garbage-collection objective-c++

我正在使用启用了垃圾收集的 Objective-C 编写程序。它依赖于某个第三方 C++ 库,但它的头文件不能编译为 Objective-C++,所以我有大量纯 C++ 代码和一些 Objective-C++ 来弥补差距。

我在桥中做了这种事情,允许将 Objective-C 对象传递给 C++:

#ifdef __OBJC__
  @class NSManagedObjectID;
#else
  typedef void NSManagedObjectID;
#endif

我的猜测是这不是正确的做法,因为 C++ 对 Objective-C 的垃圾收集一无所知。如果 C++ 端持有一个引用(我希望如此),而 Objective-C 端什么都没有,我最终会得到一个悬空指针吗?

如果是这样,处理这个问题的正确方法是什么?

最佳答案

所以当我说“垃圾收集”时,我真的应该说“自动引用计数”。而且我正在寻找的似乎是桥接 Actor (“这些 Actor 是必需的,以便将对象传入和传出 ARC 控制”):

http://clang.llvm.org/docs/AutomaticReferenceCounting.html#objects.operands.casts

关于c++ - Objective-C 垃圾回收和 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9303750/

相关文章:

python - 异或移位数生成

c++ - 如何使用两个构造函数?

c++ - 计算一组字符的出现次数并从字符串中减去空格

objective-c - UIViewController 加载 UISplitViewController

ios - 替换 GoogleService-Info.plist 是否足以让其他人的应用程序使用我的包标识符?

c - linux 上的 malloc 特定地址或页面(指定一个 "minimum offset")

c++ - Qt - 为什么第一个和第二个 QKeyEvent 之间有 500 毫秒的延迟?

objective-c - cell.image 已弃用

c - 使用 strlen() 时内存泄漏

c++ - 使用 boost singleton_pool 的自定义分配比默认慢