0

我需要将 C++ 指针属性添加到我的 Obj-C 类中。该项目基于ARC。我想拥有 getter 和 setter 的属性。但是据我了解,该 C++ 指针的分配不能由 Obj-C 框架管理,所以我需要指定弱指针或什么?

4

2 回答 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 回答