ARC / ObjC ++: объекты ObjC как переменная-член C ++ - PullRequest
1 голос
/ 19 января 2012

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 Ответ

2 голосов
/ 19 января 2012

В ARC, когда экземпляр SomeCppClass уничтожен, someLock будет выпущен автоматически. Это произойдет независимо от того, определите ли вы свой собственный деструктор.

Вам не нужно присваивать nil / null этому члену в вашем деструкторе.

...