我正在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端没有,那么我最终会得到一个悬空指针吗?
如果是这样,有什么方法可以解决这个问题?
答案 0 :(得分:0)
所以当我说“垃圾收集”时,我应该说“自动引用计数”。似乎我正在寻找的是桥接演员(“为了将对象传入和传出ARC控制所需的这些演员阵容”):
http://clang.llvm.org/docs/AutomaticReferenceCounting.html#objects.operands.casts