Потокобезопасный ленивый метод доступа в Objective-C
Документация Apple гласит,
Если вам нужно написать собственный метод доступа для свойства, которое использует переменную экземпляра, вы должны получить доступ к этой переменной экземпляра непосредственно из метода. Например, обычно откладывают инициализацию свойства до его первого запроса, используя "ленивый метод доступа", например так:
- (XYZObject *)someImportantObject { if (!_someImportantObject) { _someImportantObject = [[XYZObject alloc] init]; } return _someImportantObject; }
Но, похоже, это не относится к безопасности потоков. Каков наилучший способ сделать ленивый аксессуар, как этот поток, безопасным?