ARC слабый ивар выпущен до возвращения - при сборке для выпуска, не отладки

У меня есть класс, который лениво создает объект и сохраняет его как слабое свойство. Другие классы могут запрашивать этот объект, но, очевидно, должны сохранять строгую ссылку на него, чтобы предотвратить освобождение объекта:

// .h
@interface ObjectManager
@property(nonatomic, weak, readonly) NSObject *theObject;
@end

// .m
@interface ObjectManager ()
@property(nonatomic, weak, readwrite) NSObject *theObject;
@end

@implementation ObjectManager
- (NSObject *)theObject
{
    if (!_theObject) {
        _theObject = [[NSObject alloc] init];
        // Perform further setup of _theObject...
    }
    return _theObject;
}
@end

Когда схема Xcode настроена на сборку для отладки, все работает отлично - объект может вызватьobjectManagerInstance.theObject и вернутьсяtheObject.

Когда схема настроена на сборку для Release,theObject возвращаетсяnil:

// Build for Debug:
NSObject *object = objectManagerInstance.theObject;
// object is now pointing to theObject.

// Build for Release:
NSObject *object = objectManagerInstance.theObject;
// object is now `nil`.

Я предполагаю, что компилятор оптимизирует мой код, видя, что_theObject далее не используется в самом методе доступа, поэтому для слабой переменной задано значениеnil перед возвращением. Кажется, мне нужно создать сильную ссылку, прежде чем на самом деле вернуть переменную, что я могу только сделать, используя блок, но было бы грязно, и я бы предпочел этого избежать!

Есть ли какое-то ключевое слово, которое я могу использовать с типом возврата, чтобы предотвратить обнуление ивара в ближайшее время?