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

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

Жанры

Программирование на 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 как указание на вывод це-лого значения.

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

Бездна

Роллинс Джеймс
102. Книга-загадка, книга-бестселлер
Детективы:
триллеры
9.19
рейтинг книги
Бездна

Сравнительные жизнеописания

Плутарх
Документальная литература:
биографии и мемуары
8.85
рейтинг книги
Сравнительные жизнеописания

Я еще барон. Книга III

Дрейк Сириус
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще барон. Книга III

Том 10. Господа «ташкентцы». Дневник провинциала

Салтыков-Щедрин Михаил Евграфович
10. Собрание сочинений в двадцати томах
Проза:
русская классическая проза
6.25
рейтинг книги
Том 10. Господа «ташкентцы». Дневник провинциала

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

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

Газлайтер. Том 21

Володин Григорий Григорьевич
21. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.25
рейтинг книги
Газлайтер. Том 21

Посланник

Иевлев Геннадий Васильевич
2. Страж
Фантастика:
научная фантастика
космическая фантастика
5.00
рейтинг книги
Посланник

«Тихий Дон»: судьба и правда великого романа

Кузнецов Феликс Феодосьевич
Научно-образовательная:
история
литературоведение
5.00
рейтинг книги
«Тихий Дон»: судьба и правда великого романа

Набирая силу

Рокотов Алексей
2. Путь князя
Фантастика:
фэнтези
5.00
рейтинг книги
Набирая силу

М. Ю. Лермонтов в воспоминаниях современников

Сборник
Серия литературных мемуаров
Документальная литература:
биографии и мемуары
6.25
рейтинг книги
М. Ю. Лермонтов в воспоминаниях современников

Программирование для Linux. Профессиональный подход

Самьюэл Алекс
Компьютеры и Интернет:
программирование
5.00
рейтинг книги
Программирование для Linux. Профессиональный подход

Геймер. Тетралогия

Андреева Юлия Игоревна
Фантастика:
альтернативная история
6.80
рейтинг книги
Геймер. Тетралогия

О чём не пишут в книгах по Delphi

Григорьев Антон Борисович
Компьютеры и Интернет:
программирование
5.00
рейтинг книги
О чём не пишут в книгах по Delphi

Кодекс Охотника. Книга XXXIII

Винокуров Юрий
33. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIII