NSAssert не работает - PullRequest
2 голосов
/ 31 мая 2011

Я пытаюсь использовать NSAssert в своем коде, но это ничего не делает.

В этом фрагменте кода утверждение должно завершиться неудачей, но не:

    MSLog(@"cross.obj = %@",[cross obj]);
    NSAssert([cross obj]!=nil,@"[cross obj] == nil");

Вывод этого:

cross.obj = (ноль)

В чем может быть проблема?

Ответы [ 3 ]

3 голосов
/ 31 мая 2011

NS_BLOCK_ASSERTIONS блокирует утверждения от функционирования.Попробуйте удалить определение.

1 голос
/ 17 октября 2012

Причина этого заключается в том, что существует разница между значением nil и null.

Поэтому, пожалуйста, проверьте это с другими примерами.

Это будет работать.

0 голосов
/ 31 мая 2011

Причиной может быть то, что результат [cross obj] равен [NSNull null], а не nil.

Выход, вероятно, равен <null>, что не означает NULL или nil, ноNSNull одиночный объект.Этот объект используется как заполнитель, где nil не является опцией (например, в NSArray s).

Другая причина может заключаться в том, что определен макрос препроцессора NS_BLOCK_ASSERTIONS, который отключает NSAssert.

...