Если вам нужно войти в систему и двигаться дальше, вам не нужно использовать NSAssert.
В общем, утверждения предназначены для использования разработчиками в отладочных сборках, чтобы немедленно остановить выполнение приложения, когдасерьезная ошибка была обнаружена.По умолчанию проекты XCode устанавливают NS_BLOCK_ASSERTIONS в сборках выпуска, так что вызовы NSAssert компилируются.
Для незначительных проблем, которые требуют только входа в консоль, вы должны просто использовать NSLog.(Консоль отладчика на самом деле показывает данные, отправленные на 'stdout', куда NSLog отправляет свои результаты.)
Если вам нужны отладочные версии, чтобы утверждать и выпускать сборки для регистрации, просто используйте оба.Да, это означает, что вы можете иметь одно и то же описание дважды в коде, но это нормально.Это будет легко понять любому разработчику.(Вы можете сначала создать результирующую строку, если хотите, передать ее как NSAssert, так и NSLog.)
Если вам необходимо переопределить поведение вызова NSAssert, то у вас есть 2 варианта: 1 - изменить макросопределение NSAssert, NSAssert1, NSAssert2 и т. д., чтобы изменить результат.2 - предоставьте свой собственный объект NSAssertionHandler вашим потокам и пропустите его, выбрасывая исключения.