我需要将 C++ 指针属性添加到我的 Obj-C 类中。该项目基于ARC。我想拥有 getter 和 setter 的属性。但是据我了解,该 C++ 指针的分配不能由 Obj-C 框架管理,所以我需要指定弱指针或什么?
问问题
848 次
2 回答
1
C/C++ 指针,包括指向 C++ 对象的指针,不受 ARC 约束,其处理方式与其他基本类型(如整数)类似。对于属性,这意味着您使用assign
. 例如:
@property (assign) int *intPtrValuedProperty
您必须手动管理引用内存的分配和释放,就像在 C/C++ 中一样。
于 2013-09-24T09:14:01.760 回答
0
尝试以下操作:
NSObject* arcObject = [[NSObject alloc] init];
void* arcObjectPointer = (__bridge void*)arcObject;
void* cObjectPointer = NULL;
NSObject* cObject = (__bridge NSObject*)cObjectPointer;
__bridge 对象的行为与非 ARC 对象的行为相同。使用 __bridge 您告诉 ARC 您了解其中的含义和潜在危险。
于 2013-09-24T08:15:00.030 回答