Что такое NSAssert1? - PullRequest
       9

Что такое NSAssert1?

7 голосов
/ 31 марта 2011

Я разрабатываю приложение на iOS. Я вижу, что есть макрос с именем NSAssert1. Для чего это? Каковы различия в использовании между NSLog и NSAssert1?

Пожалуйста, помогите мне или предложите учебник, где я могу прочитать об этом.

Ответы [ 2 ]

28 голосов
/ 31 марта 2011

NSAssert варианты принимают условие и сообщение. Если условие не выполнено / истина, то утверждение не выполняется, и NSAssert вызывает исключение с предоставленным сообщением. Например, NSAssert((a == b), @"Error message"); вызовет исключение, когда a не равно b. NSAssert1 - это вариант, который принимает дополнительный аргумент и вставляет его в предоставленную строку формата, например: NSAssert1((a == b), @"Error message: %@", someErrorString);

NSLog просто что-то напишет на консоль.

Документация для всех этих макросов на сайте разработчиков Apple .

5 голосов
/ 31 марта 2011

NSAssert, NSParameterAssert, NSAssert1 и друзья являются макросами утверждения. Утверждения - это проверки условий, которые кричат, когда что-то не так:

- (void) doSomethingWithPointer: (Foo*) foo
{
    NSAssert(foo != NULL, @"The Foo pointer must not be NULL!");
    foo->something;
}

См. вопросов с пометкой «утверждения» здесь для переполнения стека для получения дополнительной информации.

...