如何在ARC环境中为C ++指针指定属性?

时间:2013-09-24 08:00:07

标签: c++ objective-c automatic-ref-counting

我需要将C ++指针属性添加到我的Obj-C类中。该项目基于ARC。我想要财产有吸气剂和制定者。但据我所知,Obj-C框架无法管理该C ++指针的分配,所以我需要指定弱指针或什么?

2 个答案:

答案 0 :(得分:1)

C / C ++指针,包括那些指向C ++对象的指针,不受ARC的约束,并且与其他基本类型(如整数)的处理方式类似。对于属性,这意味着您使用assign。 E.g:

@property (assign) int *intPtrValuedProperty

您必须手动管理引用内存的分配和释放,就像在C / C ++中一样。

答案 1 :(得分:0)

请尝试以下操作:

NSObject* arcObject = [[NSObject alloc] init];
void* arcObjectPointer = (__bridge void*)arcObject;

void* cObjectPointer = NULL;
NSObject* cObject = (__bridge NSObject*)cObjectPointer;

__bridge对象的行为与非ARC对象的行为相同。使用__bridge,您告诉ARC您了解其含义和潜在危险。