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 ;
// ?
}
}
猜猜我不得不遇到上一个问题的相反情况: - )
答案 0 :(得分:2)
在ARC下,当SomeCppClass的实例被销毁时,someLock将自动释放。无论您是否定义自己的析构函数,都会发生这种情况。
您不需要在析构函数中为该成员分配nil / null。