我需要将C ++指针属性添加到我的Obj-C类中。该项目基于ARC。我想要财产有吸气剂和制定者。但据我所知,Obj-C框架无法管理该C ++指针的分配,所以我需要指定弱指针或什么?
答案 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您了解其含义和潜在危险。