Какой смысл в NSAssert, на самом деле?

Я должен спросить это, потому что: Единственное, что я узнаю, это то, что, если утверждение не выполняется, приложение падает. Это причина, почему использовать NSAssert? Или какая еще польза от этого? И правильно ли ставить NSAssert чуть выше любого предположения, которое я делаю в коде, например,...