ARC / ObjC ++:ObjC对象作为C ++成员变量

时间:2012-01-19 01:06:04

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

ARC / ObjC ++:ObjC对象为C ++成员变量

考虑

class SomeCppClass {
    NSLock * someLock ;
    public:
    SomeCppClass() {
        someLock = [[NSLock alloc] init] ;
    }
    void atomicInsert(SomeOtherCppClass * c) {
        [someLock lock] ;
        // do atomic C++ stuff
        [someLock unlock] ;
    }

    ~SomeCppClass() {
        // ? Huh ?
        // ? can I just say:
        someLock = 0 ;
        // ?
    }
}

猜猜我不得不遇到上一个问题的相反情况: - )

1 个答案:

答案 0 :(得分:2)

在ARC下,当SomeCppClass的实例被销毁时,someLock将自动释放。无论您是否定义自己的析构函数,都会发生这种情况。

您不需要在析构函数中为该成员分配nil / null。