Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

Он резервирует пространство в памяти для автоматически высвобождаемого пула (autorelease pool). Мы опишем этот оператор в главе 17. Xcode помещает эту строку в вашу программу автоматически как часть соответствующего шаблона, поэтому не обращайте пока на это внимание.

Следующий оператор указывает, что должна быть вызвана (call) процедура NSLog. Параметр, или аргумент (argument), должен быть передан процедуре NSLog в виде следующей строки символов: @"Programming is fun!"

Здесь символ @ стоит непосредственно перед строкой символов, заключен-ной в кавычки. Все вместе это называется объектом-константой

типа NSString.

Примечание. Если вы программировали на С, то вам может быть непонятен смысл символа-префикса @. Без этого символа вы получаете строку-константу в стиле С; с ним вы получаете объект-строку типа NSString.

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

Вы должны заканчивать все операторы программы в Objective-C символом «точка с запятой» (;). Точка с запятой ставится непосредственно после закры-вающей круглой скобки при вызове NSLog. Прежде чем выполнить выход из про-граммы, вы должны освободить выделенный пул памяти (и связанные с ним объекты). Для этого вводится следующая строка: [pool drain];

В данном случае Xcode тоже автоматически вставляет в программу эту строку. Ее подробное описание будет приведено позже. Последний оператор программы в процедуре main имеет следующий вид: return 0;

С его помощью завершается выполнение main и возвращается (return) значе-ние состояния, равное 0, которое указывает на нормальное завершение про-граммы. Любое ненулевое значение обычно означает, что возникла проблема, например, программа не смогла найти нужный файл.

На рис. 2.8. в окне Debug Console после строки результатов NSLog было выве-дено следующее сообщение: The Debugger has exited with status 0. (Выход из отладчика со значением состояния 0)

Теперь вы понимаете, что означает это сообщение.

Теперь внесем в программу изменения. Пусть она выводит также фразу «And programming in Objective-C is even more fun!» (А программировать Objective-C еще интереснее!). Это можно сделать, добавив еще один вызов процедуры NSLog, как показано ниже в программе 2.2. Напомним, что каждый оператор программы на Objective-C должен заканчиваться символом «точка с запятой». #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog (@"Programming is fun!"); NSLog (@"Programming in Objective-C is even more fun!"); [pool drain]; return 0; }

Если ввести программу 2.2 с последующей компиляцией и выполнением, то получится следующий вывод (мы опустили текст, который обычно выводится процедурой NSLog перед результатами программы): Programming is fun! Programming in Objective-C is even more fun!

Как можно видеть из следующего примера, вы не обязаны вызывать проце-дуру NSLog для каждой строки вывода.

Рассмотрим специальный набор из двух символов. Обратный слэш в соче-тании с буквой п используются как признак новой строки. Этот символ указывает системе, что нужно перейти на новую строку. Все символы, которые выводятся после символа

новой строки, появятся в следующей строке вывода. Символ новой строки аналогичен клавише возврата каретки на пишущей машинке. Изучите листинг программы 2.3 и попытайтесь предсказать результаты, прежде чем посмотреть вывод этой программы. #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog (@"Testing...\n..1\n...2\n....3H); [pool drain]; return 0; }

Вывод программы 2.3 Testing... ..1 ...2 ....3 2.3. Вывод значений переменных

С помощью NSLog можно выводить не только простые фразы, но и значения переменных или результаты вычислений. В программе 2.4 для вывода результатов сложения двух чисел, 50 и 25, используется процедура NSLog. #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int sum; int sum; sum = 50 + 25; NSLog (@"The sum of 50 and 25 is %i", sum); [pool drain]; return 0; }

Вывод программы 2.4 The sum of 50 and 25 is 75 (Сумма 50 и 25 равна 75)

Первый оператор программы внутри main после autorelease pool определяет переменную sum типа integer. Вы должны определить все переменные программы перед использованием. Определение переменной указывает компилятору Objective-C, как переменная должна использоваться программой. Эта инфор-мация требуется компилятору, чтобы он сформировал соответствующие инст-рукции для сохранения и считывания значений в этой переменной. Переменную, которая определена с типом int, можно использовать для хранения только целых значений, то есть значений без цифр после десятичной точки. Примеры целых значений: 3, 5, -20 и 0. Числа с цифрами после десятичной точки, например, 2.14, 2.455 и 27.0, называются числами с плавающей запятой (floating-point% или вещественными числами.

В целой переменной sum сохраняется результат сложения двух целых чисел, 50 и 25. Мы преднамеренно оставили пустую строку после определения этой переменной, чтобы визуально отделить объявление переменной от операторов программы. Иногда добавление одной пустой строки в программе может сделать программу более удобной для чтения.

Соответствующий оператор программы выглядит так же, как в большинстве языков программирования: sum = 50 + 25;

Число 50 добавляется (что указано знаком «плюс») к числу 25, и результат сохраняется (что указано оператором присваивания, то есть знаком «равно») в переменной sum.

Вызов процедуры NSLog в программе 2.4 теперь содержит два аргумента, заключенных в круглые скобки. Эти аргументы разделены запятой. Первый аргу-мент при обращении к процедуре NSLog — это всегда символьная строка, которая должна быть выведена на экран. Но вместе с символьной строкой часто требуется выводить значения определенных переменных. В данном случае нужно вывести значение переменной sum после вывода следующей строки символов: The sum of 50 and 25 is

Символ процента внутри первого аргумента — это специальный символ, рас-познаваемый функцией NSLog. Символ, который следует непосредственно за символом процента, указывает тип отображаемого значения. В приведенной программе процедура NSLog интерпретирует букву i как указание на вывод це-лого значения.

Поделиться:
Популярные книги

Воронцов. Перезагрузка

Тарасов Ник
1. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Воронцов. Перезагрузка

Барон запрещает правила

Ренгач Евгений
9. Закон сильного
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Барон запрещает правила

Поводырь

Щепетнов Евгений Владимирович
3. Ботаник
Фантастика:
фэнтези
6.17
рейтинг книги
Поводырь

Я все еще не князь. Книга XV

Дрейк Сириус
15. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я все еще не князь. Книга XV

Тайны затерянных звезд. Том 1

Лекс Эл
1. Тайны затерянных звезд
Фантастика:
боевая фантастика
космическая фантастика
фэнтези
5.00
рейтинг книги
Тайны затерянных звезд. Том 1

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Я Гордый часть 7

Машуков Тимур
7. Стальные яйца
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Я Гордый часть 7

Маленькая женщина Большого

Зайцева Мария
5. Наша
Любовные романы:
эро литература
современные любовные романы
5.00
рейтинг книги
Маленькая женщина Большого

Черный Маг Императора 10

Герда Александр
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 10

Рубежник

Билик Дмитрий Александрович
1. Бедовый
Фантастика:
юмористическая фантастика
городское фэнтези
мистика
5.00
рейтинг книги
Рубежник

Я - злодейка в дораме. Сезон второй

Вострова Екатерина
2. Выжить в дораме
Фантастика:
уся
фэнтези
сянься
попаданцы
5.00
рейтинг книги
Я - злодейка в дораме. Сезон второй

Последний Паладин. Том 6

Саваровский Роман
6. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 6

Идеальный мир для Лекаря 28

Сапфир Олег
28. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 28

Учитель из прошлого тысячелетия

Еслер Андрей
6. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Учитель из прошлого тысячелетия