Когда я запускаю этот код внутри вызова, сделанного из SenTest's STAssertThrowsSpecificNamed
:
@throw [[NSException alloc] initWithName:NSInvalidArchiveOperationException
reason:@"---some reason----"
userInfo:nil];
, я получаю (с NSZombieEnabled=YES
):
*** -[NSException reason]: message sent to deallocated instance 0x100a81d60
Исключение как-то освобождаетсядо того, как STAssertThrowsSpecificNamed
завершит его обработку.
Я могу избежать этой ошибки, заменив строку @throw
выше следующим кодом:
NSException *exception = [NSException exceptionWithName:NSInvalidArchiveOperationException
reason:@"---some reason----"
userInfo:nil];
@throw exception;
Я получаю точно такое же поведение с или безARC.Без ARC этот код также позволяет избежать ошибки:
@throw [[[NSException alloc] initWithName:NSInvalidArchiveOperationException
reason:@"---some reason----"
userInfo:nil] retain];
Это ошибка в SenTest?Или ошибка в компиляторе?Или мой первый @throw
просто неверен?