ПРОГРАММИРОВАНИЕ ПОД IPHONE, IPAD OBJECTIVE-C Часть 1

Что такое NSLog() и с чем его едят?

 NSLog() — это самый простой способ вывода информации на экран. Изначально эта функция была разработана для отображения ошибок. Но из-за простоты использования, большинство программистов используют ее для вывода на экран в моменты тестирования программы.

Следующий пример демонстрирует использование функции NSLog

<code data-result="[object Object]">int main ()
{
    NSLog(@"Юля - моя любимая актриса.");
    return 0;
}</code>

В результате выполнения этого кода текст «Юлия — моя любимая актриса.» будет выведен на экран. Текст между @» и » называется строкой. Кроме самой строки функция NSLog() выводит различную дополнительную информацию, текущую дату и имя приложения.

Строка может иметь длину ноль и более символов. Выражение NSLog(@»»); содержит 0 символов, это называется пустой строкой (например, строка, длина которой равна 0). Выражение NSLog(@» «); не является пустой строкой, несмотря на то, что она выглядит очень похоже. Она содержит один пробел, а значит ее длина равна 1.

Не стоит забывать о так называемых эскейп-символах. Для функции NSLog() они служат сигналом о том, что следующий символ не обычная буква, а символ, имеющий особое значение. Например:

<code data-result="[object Object]">NSLog(@"Юля - моя любимая
актриса.");</code>

Выведет на экран

Юлия — моя любимая
актриса.

В нашем примере n означает «начать новую строку». Но как быть в ситуации, когда вам понадобиться вывести символ кавычек или тот же обратный слеш? Для этого достаточно поместить еще один обратный слеш перед тем символом, который мы хотим вывести:

<code data-result="[object Object]">NSLog(@"Юля - моя "любимая" актриса.");</code>

выдаст

Юлия — моя «любимая» актриса.

Пока мы показывали только статические строки. Давайте напечатаем вычисленное значение на экран.

<code data-result="[object Object]">int x, integerToDisplay;
x = 1;
integerToDisplay = 5 + x;
NSLog(@"Целове значение:%d", integerToDisplay);</code>

Имейте в виду, что в скобках у нас стоят строка, запятая и имя переменной. Строка содержит нечто странное: %d. Как и обратный слеш , символ процента % имеет особое значение. Если после него следует d (малое десятичное число), то после выполнения кода вместо %dбудет показано то, что стоит после запятой, т.е. текущее значение переменной integerToDisplay. Запуск примера приводит к:

Целое значение — 6

Для печати вещественных значений вам следует использовать %f вместо %d

<code data-result="[object Object]">float x, floatToDisplay;
x = 12345.09876f;
floatToDisplay = x/3.1416f;
NSLog(@"Вещественное значение:%f", floatToDisplay);</code>

Для указания точности числа поставьте .2 между % и f, вот так:

<code data-result="[object Object]">float x, floatToDisplay;
x = 12345.09876f;
floatToDisplay = x/3.1416f;
NSLog(@"Вещественное значение с 2 значимыми цифрами:%.2f", floatToDisplay);</code>

Логично, что функция NSLog() умеет отображать более одного значения или любое сочетания значений. Здесь главное не напутать с указанием типа данных.

<code data-result="[object Object]">int x = 8;
float pi = 3.14159f;
NSLog(@"Целое значение:%d, вещественное значение:%f", x, pi);</code>

Следуте обратить внимание, что функция NSLog() выполняется не только в режиме отладки. Когда вы отправили свое приложении в AppStore — вывод информации в консоль будет дополнительно нагружать процессор устройства при работе приложения. Чтобы избежать этой ситуации следует или убрать вызов этой функции в проекте, или заключить ее в примерно следующее условие:

<code data-result="[object Object]">#ifdef DEBUG
    NSLog(@"Здесь можно выводить данные");
#else
    //NSLog(@"Не следует использовать NSLog");
#endif</code>

Это основные возможности функции NSLog(), которыми вы будете пользоваться в процессе создания программ.

Comments are closed.